Установка 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 мб, и Вы получаете рабочий сервер