Установка LEMP [NGINX + PHP] сервера на Ubuntu 24.04: Подробное руководство
В этом руководстве мы установим LEMP стек сервер (Linux, Nginx, MariaDB, PHP) на Ubuntu 24.04. Настроим веб-сервер Nginx, базу данных MariaDB, и PHP, включая SSL сертификат с помощью Certbot. Это идеальное руководство для всех, кто хочет запустить свой сайт на собственном сервере.
Что можно разместить на таком сервере:
- Веб-сайты: личные и корпоративные сайты.
- Блоги: идеально под Wordpress.
- Интернет-магазины: Платформы для электронной коммерции.
- Веб-приложения: Приложения на PHP, такие как CRM и CMS.
- Базы данных: Хранение и управление данными с помощью MariaDB.
Шпаргалка
Logs
nano /var/log/nginx/error.log
nano /var/log/nginx/access.log
Nginx config
nano /etc/nginx/nginx.conf
nano /etc/nginx/sites-available/cpmdealer
Php Config
nano /etc/php/8.3/fpm/pool.d/www.conf
systemctl stop php8.3-fpm
systemctl reload nginx
service php-fpm status
systemctl status nginx
systemctl restart php8.3-fpm
systemctl restart nginx
Files
sudo chown -R cpmdealer:cpmdealer /var/www/
sudo chmod -R 755 /var/www/
Шаг 1: Создание нового пользователя и настройка прав
Работа под root на сервере опасна, так как root имеет полный доступ ко всем системным файлам и функциям.
Например, если злоумышленник получит root-доступ через уязвимость в веб-приложении, он сможет удалить все файлы (rm -rf /) или установить вредоносное ПО. Использование ограниченных учетных записей снижает риски, ограничивая потенциальный ущерб от ошибок и атак.
Обновляемся:
sudo apt update && sudo apt upgrade -y
Добавление нового пользователя:
sudo adduser cpmdealer
Эта команда создает пользователя cpmdealer.
Добавление пользователя в группу sudo:
sudo usermod -aG sudo cpmdealer
Это дает пользователю cpmdealer права на выполнение команд с привилегиями суперпользователя.
Шаг 2: Установка и настройка временной зоны
Настройка временной зоны:
sudo dpkg-reconfigure tzdata
Следуйте инструкциям на экране для выбора нужной временной зоны.
Шаг 3: Установка и настройка компонентов LEMP
Установка необходимых пакетов:
sudo apt install -y nginx mariadb-server mariadb-client php-fpm php-cli php-zip php-xml php-mysql php-json php-curl php-imagick php-mbstring certbot python3-certbot-nginx
Эти пакеты включают в себя веб-сервер nginx, базу данных MariaDB и PHP с необходимыми расширениями.
Добавляем пользователя в группу www-data:
sudo usermod -aG www-data cpmdealer
Проверка версии PHP:
php -v
Убедитесь, что PHP установлен и работает.
Шаг 4: Настройка веб-сервера Nginx
Создаем директории для нашего проекта:
sudo mkdir /var/www/cpmdealerfolder
Назначаем права на эти директории:
sudo chown cpmdealer:cpmdealer /var/www/cpmdealerfolder
Создание конфигурационного файла для сайта:
sudo nano /etc/nginx/sites-available/cpmdealer
Приведенный ниже конфигурационный файл настраивает сервер для вашего сайта (замените server_name, root, и listen на ваши значения):
server {
listen 80;
server_name cpmdealer.com www.cpmdealer.com;
root /var/www/cpmdealercom;
index index.php index.html index.htm;
# Logs
access_log /var/log/nginx/cpmdealercom.access.log;
error_log /var/log/nginx/cpmdealercom.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Путь к PHP-FPM сокету, проверьте версию PHP на вашем сервере
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\. {
deny all;
}
}
Активация сайта:
sudo ln -s /etc/nginx/sites-available/cpmdealer /etc/nginx/sites-enabled/
Перезагрузка Nginx:
sudo systemctl reload nginx
Шаг 5: Установка SSL сертификата
Установка SSL сертификата с помощью Certbot:
sudo certbot -d cpmdealer.com -d www.cpmdealer.com
Запускаем только после привязки домена к серверу.
Шаг 6: Настройка MariaDB
Запускаем и включаем службу MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Проверяем статус MariaDB:
sudo systemctl status mariadb
Первоначальная настройка безопасности MariaDB. Этот скрипт предложит вам ряд вопросов для повышения безопасности вашего MariaDB сервера.
sudo mysql_secure_installation
Вход в MariaDB (вместо пароля enter):
sudo mariadb -u root -p
Создание базы данных и пользователя:
CREATE DATABASE bdname;
Создайте нового пользователя и предоставьте ему права доступа к новой базе данных:
CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль_пользователя';
GRANT ALL PRIVILEGES ON имя_базы_данных.* TO 'имя_пользователя'@'localhost';
FLUSH PRIVILEGES;
Выходим из бд:
EXIT;
Как улучшить сервер
Поздравляю! Вы успешно установили и настроили LEMP сервер на Ubuntu 24.04. Теперь у вас есть полностью функционирующий веб-сервер, готовый к приему ваших веб-приложений.
На таком сервере можно размещать различные виды сайтов и приложений, включая блоги на WordPress, корпоративные сайты, интернет-магазины, портфолио, и многое другое.
Как можно улучшить сервер:
- CDN: Подключите сеть доставки контента на примере Cloudflare.
- Резервное копирование: Настройте автоматические резервные копии для защиты данных.
- Мониторинг: Внедрите системы мониторинга, такие как Prometheus или Grafana, чтобы следить за производительностью сервера.
- Оптимизация безопасности: Настройте файрволы (например, UFW), используйте Fail2Ban для защиты от брутфорс-атак и обновляйте ПО.
- Скорость: Кэширование с помощью Varnish или Redis, сжатие Gzip или Brotli.