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