Метка: nginx

  • Установка LEMP + phpMyAdmin + Let’s Encrypt на Ubuntu 22.04

    Установка LEMP + phpMyAdmin + Let’s Encrypt на Ubuntu 22.04

    1. Обновление системы

    «`bash

    sudo apt update && sudo apt upgrade -y

    sudo apt install -y curl wget software-properties-common

    «`

    2. Установка Nginx

    «`bash

    sudo apt install -y nginx

    sudo systemctl start nginx

    sudo systemctl enable nginx

    «`

    3. Установка MariaDB

    «`bash

    sudo apt install -y mariadb-server mariadb-client

    sudo systemctl start mariadb

    sudo systemctl enable mariadb

    «`

    Настройка безопасности MariaDB

    «`bash

    sudo mysql_secure_installation

    «`

    Ответьте на вопросы:

    · Enter current password for root (enter for none): Enter

    · Set root password? [Y/n]: Y

    · New password: ваш_пароль

    · Remove anonymous users? [Y/n]: Y

    · Disallow root login remotely? [Y/n]: Y

    · Remove test database and access to it? [Y/n]: Y

    · Reload privilege tables now? [Y/n]: Y

    4. Установка PHP 8.1

    «`bash

    sudo apt install -y php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd php-bcmath

    «`

    Проверка версии PHP

    «`bash

    php -v

    «`

    5. Настройка Nginx для PHP

    «`bash

    sudo nano /etc/nginx/sites-available/default

    «`

    Замените содержимое на:

    «`nginx

    server {

        listen 80;

        listen [::]:80;

        server_name ваш_домен.com www.ваш_домен.com;

        root /var/www/html;

        index index.php index.html index.htm;

        location / {

            try_files $uri $uri/ =404;

        }

        location ~ \.php$ {

            include snippets/fastcgi-php.conf;

            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include fastcgi_params;

        }

        location ~ /\.ht {

            deny all;

        }

    }

    «`

    Проверка конфигурации Nginx

    «`bash

    sudo nginx -t

    sudo systemctl reload nginx

    «`

    6. Создание тестового PHP-файла

    «`bash

    echo «<?php phpinfo(); ?>» | sudo tee /var/www/html/info.php

    «`

    7. Установка phpMyAdmin

    «`bash

    sudo apt install -y phpmyadmin

    «`

    Во время установки выберите:

    · Веб-сервер: apache2 (выберите пробелом) → OK

    · Настройка базы данных для phpmyadmin: Да

    · Пароль для phpmyadmin: ваш_пароль

    Создание символической ссылки для Nginx

    «`bash

    sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

    «`

    Настройка прав доступа

    «`bash

    sudo chown -R www-data:www-data /usr/share/phpmyadmin

    sudo chmod -R 755 /usr/share/phpmyadmin

    «`

    8. Установка Certbot для Let’s Encrypt

    «`bash

    sudo apt install -y certbot python3-certbot-nginx

    «`

    9. Получение SSL сертификата

    «`bash

    sudo certbot —nginx -d ваш_домен.com -d www.ваш_домен.com

    «`

    Следуйте инструкциям:

    · Email для уведомлений: ваш_email

    · Принять условия: Y

    · Подписка на рассылку: N (или Y)

    · Перенаправление HTTP → HTTPS: 2

    10. Автоматическое обновление сертификатов

    «`bash

    sudo certbot renew —dry-run

    «`

    11. Финальная проверка

    «`bash

    sudo systemctl status nginx

    sudo systemctl status mariadb

    sudo systemctl status php8.1-fpm

    «`

    12. Дополнительные настройки безопасности

    Настройка MariaDB для phpMyAdmin

    «`bash

    sudo mysql -u root -p

    «`

    «`sql

    CREATE USER ‘phpmyadmin’@’localhost’ IDENTIFIED BY ‘ваш_пароль’;

    GRANT ALL PRIVILEGES ON *.* TO ‘phpmyadmin’@’localhost’ WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    EXIT;

    «`

    Настройка брандмауэра

    «`bash

    sudo ufw allow ‘Nginx Full’

    sudo ufw allow OpenSSH

    sudo ufw enable

    «`

    Проверка установки

    1. Nginx: Откройте в браузере http://ваш_домен.com

    2. PHP: Откройте http://ваш_домен.com/info.php

    3. phpMyAdmin: Откройте https://ваш_домен.com/phpmyadmin

    4. SSL: Проверьте наличие зеленого замка в адресной строке

    Важные команды для управления

    Перезагрузка служб:

    «`bash

    sudo systemctl reload nginx

    sudo systemctl restart php8.1-fpm

    sudo systemctl restart mariadb

    «`

    Просмотр логов:

    «`bash

    sudo tail -f /var/log/nginx/error.log

    sudo tail -f /var/log/php8.1-fpm.log

    «`

    Обновление сертификатов вручную:

    «`bash

    sudo certbot renew

    «`

    В итоге данный пакет вместе с сертификатами весит 542 мб, и Вы получаете рабочий сервер