🌐

Установка LEMP [NGINX + PHP] сервера на Ubuntu 24.04: Подробное руководство

установка LEMP сервера на 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

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

Добавление нового пользователя:

sudo adduser cpmdealer

Эта команда создает пользователя cpmdealer.

Добавление пользователя в группу sudo:

sudo usermod -aG sudo cpmdealer

Это дает пользователю cpmdealer права на выполнение команд с привилегиями суперпользователя.

Шаг 2: Установка и настройка временной зоны

Настройка временной зоны:

sudo dpkg-reconfigure tzdata

Следуйте инструкциям на экране для выбора нужной временной зоны.

Шаг 3: Установка и настройка компонентов LEMP

Установка необходимых пакетов:

sudo apt install 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 установлен и работает.

Перезапуск PHP-FPM:

sudo systemctl restart php8.3-fpm

Применение изменений конфигурации PHP-FPM.

Шаг 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;
    root /var/www/cpmdealer;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Активация сайта:

sudo ln -s /etc/nginx/sites-available/cpmdealer /etc/nginx/sites-enabled/

Перезагрузка Nginx:

sudo systemctl reload nginx

Применение изменений конфигурации Nginx.

Шаг 5: Установка SSL сертификата

Установка SSL сертификата с помощью Certbot:

sudo certbot -d cpmdealer.com

Запускаем только после привязки домена к серверу.

Шаг 6: Настройка MariaDB

Запускаем и включаем службу MariaDB:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Проверяем статус MariaDB:

sudo systemctl status mariadb

Первоначальная настройка безопасности MariaDB.
Этот скрипт предложит вам ряд вопросов для повышения безопасности вашего MariaDB сервера.

1) Enter current password for root (enter for none) нажмите Enter.
2) Switch to unix_socket authentication y.
3) Change the root password? n.
4) Remove anonymous users? y.
5) Remove test database and access to it? y.
6) Disallow root login remotely? y.
7) Reload privilege tables now? y.

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.
  • Поделись в соц-сетях
    To top