Установка LEMP · 8 min read · Sep 10, 2025
Как установить стек LEMP (Linux, Nginx, PHP и MariaDB) на Ubuntu 24.04

Стек LEMP (Linux, Nginx, MySQL/MariaDB и PHP) — это группа бесплатных и открытых программных приложений для хостинга и разработки веб-приложений на PHP. Стек LEMP может использоваться для развертывания как статических, так и динамических веб-приложений.
Этот гид покажет вам, как установить стек LEMP (Linux, Nginx, MySQL/MariaDB и PHP) на Ubuntu 24.04 “Noble Numbat”. Мы также покажем, как защитить сервер MariaDB и создать конфигурацию блока сервера Nginx для хостинга веб-сайтов или доменных имен.
Предварительные требования
Перед тем как начать, убедитесь, что у вас есть Ubuntu 24.04 “Noble Numbat” с правами root или не-root с правами sudo/администратора. Также убедитесь, что UFW (Uncomplicated Firewall) работает и включен.
Установка веб-сервера Nginx
Nginx или engine-x — это самый популярный веб-сервер в интернете. Он стал популярным, потому что Nginx может обрабатывать высокий трафик одновременно с минимальными системными ресурсами. На этом первом этапе вы будете устанавливать веб-сервер Nginx на сервер Ubuntu.
Перед установкой пакетов обновите и обновите список пакетов Ubuntu с помощью следующей команды.
sudo apt update
Установите веб-сервер Nginx на вашу машину Ubuntu с помощью команды ниже. Введите Y, чтобы подтвердить установку, когда будет предложено.
sudo apt install nginx
После завершения установки служба Nginx должна работать и быть включенной в вашей системе. Проверьте службу Nginx с помощью команды ниже.
sudo systemctl is-enabled nginx
sudo systemctl status nginxВы должны увидеть, что служба Nginx “ включена “ и текущее состояние “ активно (работает) “.

Перед доступом к Nginx вам нужно открыть порты HTTP и HTTPS на вашем сервере Ubuntu через UFW (Uncomplicated Firewall).
Выполните следующую команду ‘ ufw ‘, чтобы включить профиль ‘ Nginx Full ‘, который позволит доступ по HTTP и HTTPS к вашему серверу Ubuntu.
sudo ufw allow 'Nginx Full'Теперь проверьте правила UFW с помощью следующей команды. Убедитесь, что профиль ‘ Nginx Full ‘ включен со статусом ‘ALLOW’.
sudo ufw status
Наконец, посетите http://192.168.5.30/ из вашего предпочтительного веб-браузера, чтобы получить доступ к вашей установке Nginx. Если все прошло успешно, вы должны увидеть страницу по умолчанию ‘ index.html ‘, как показано ниже:

Установка сервера MariaDB
После установки Nginx вы установите сервер MariaDB на Ubuntu. В этом примере вы установите MariaDB через репозиторий Ubuntu, а затем защитите установку MariaDB с помощью утилиты ‘ mariadb-secure-installation ‘.
Чтобы установить сервер MariaDB на Ubuntu, выполните следующую команду ‘ apt install ‘. Введите Y и нажмите ENTER, чтобы продолжить процесс.
sudo apt install mariadb-server
После завершения установки проверьте службу MariaDB с помощью команды ниже. Это покажет вам статус службы MariaDB.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbСлужба MariaDB “ включена “ с текущим статусом “ активно (работает) “.

После установки сервера MariaDB вы должны защитить его с помощью ‘ mariadb-secure-installation ‘. Это позволит вам настроить пароль root для MariaDB, отключить удаленную аутентификацию для пользователя root, а также удалить ненужные базы данных и привилегии из вашей установки сервера MariaDB.
Запустите команду ‘ mariadb-secure-installation ‘ ниже, чтобы защитить сервер MariaDB.
sudo mariadb-secure-installationТеперь вам будет предложено ответить на следующие конфигурации сервера MariaDB:
Нажмите ENTER, когда будет предложено ввести пароль root для MariaDB.
Введите текущий пароль для root (введите для отсутствия):
Хорошо, пароль успешно использован, продолжаем...Введите ‘ n ‘, когда вас спросят о переключении на аутентификацию unix_socket.
Переключить на аутентификацию unix_socket [Y/n] n
... пропускаем.Введите Y, чтобы настроить пароль root для MariaDB. Затем введите ваш новый пароль и повторите его.
Изменить пароль root? [Y/n] Y
Новый пароль:
Повторите новый пароль:
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
... Успех!Введите Y, чтобы удалить пользователя по умолчанию анонимного пользователя из вашей установки сервера MariaDB.
Удалить анонимных пользователей? [Y/n] Y
... Успех!Введите Y, чтобы отключить удаленный вход для пользователя root MariaDB. Пользователь root всегда должен подключаться с localhost.
Запретить удаленный вход для root? [Y/n] Y
... Успех!Теперь снова введите Y, чтобы удалить тестовую базу данных по умолчанию и ее привилегии из вашего сервера MariaDB.
Удалить тестовую базу данных и доступ к ней? [Y/n] Y
- Удаление тестовой базы данных...
... Успех!
- Удаление привилегий на тестовую базу данных...
... Успех!Введите Y, чтобы перезагрузить таблицы привилегий и применить все изменения, которые вы сделали до сих пор.
Перезагрузить таблицы привилегий сейчас? [Y/n] Y
... Успех!Когда все будет завершено, вы увидите следующее сообщение:
Все готово! Если вы завершили все вышеперечисленные шаги, ваша установка MariaDB
должна быть теперь защищена.
Спасибо за использование MariaDB!Установка PHP-FPM
PHP-FPM (FastCGI Process Manager) — это альтернатива реализации FastCGI для PHP. Он в основном используется для сайтов с высоким трафиком с Nginx в качестве веб-сервера. В этом разделе вы установите PHP-FPM с некоторыми дополнительными расширениями, такими как mysqli для драйвера MySQL/MariaDB, opcache и APCu для кэширования.
Установите PHP-FPM на ваш сервер Ubuntu с помощью следующей команды. Когда будет предложено, введите Y и нажмите ENTER, чтобы продолжить.
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
После завершения установки служба PHP-FPM должна быть запущена и работать. Проверьте статус службы PHP-FPM с помощью следующей команды.
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpmКак вы можете видеть ниже, PHP-FPM “ активно (работает) “ и “ включен “ при загрузке системы:

На Ubuntu по умолчанию PHP-FPM работает через сокетный файл. Знание пути к сокетному файлу PHP-FPM важно, так как он будет использоваться для интеграции с веб-сервером Nginx.
Проверьте путь к сокетному файлу PHP-FPM с помощью следующей команды.
ss -pl | grep phpВ следующем выводе вы можете увидеть, что сокетный файл PHP-FPM находится по адресу ‘ /run/php/php8.3-fpm.sock ‘.
Интеграция Nginx с PHP-FPM
Итак, вы установили PHP-FPM, теперь пришло время интегрировать его с веб-сервером Nginx. Для этого вы должны точно знать путь к сокетному файлу PHP-FPM, а затем изменить файл конфигурации блока сервера по умолчанию Nginx.
Откройте конфигурацию блока сервера ‘ /etc/nginx/sites-available/default ‘ с помощью следующей команды редактора nano.
sudo nano /etc/nginx/sites-available/defaultРаспакуйте следующие строки и убедитесь, что вы изменили путь к сокетному файлу PHP-FPM на новое местоположение.
# передать PHP-скрипты на сервер FastCGI
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # С php-fpm (или другими unix-сокетами):
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
# # С php-cgi (или другими tcp-сокетами):
# fastcgi_pass 127.0.0.1:9000;
}Сохраните файл и выйдите из редактора.
Теперь выполните команду ‘ nginx ‘ ниже, чтобы проверить синтаксис вашего Nginx. Вы должны выполнить эту команду после внесения изменений в конфигурацию Nginx.
sudo nginx -tЕсли у вас правильный синтаксис Nginx, вы должны получить подтверждение, подобное следующему:

Затем выполните команду ниже, чтобы перезапустить службу Nginx и применить вашу интеграцию между Nginx и PHP-FPM.
sudo systemctl restart nginxС перезапущенным Nginx вы можете проверить вашу интеграцию через файл PHPINFO. Выполните команду ниже, чтобы создать файл PHPINFO ‘ info.php ‘ в каталоге веб-корня по умолчанию ‘ /var/www/html/ ‘.
echo "" > /var/www/html/info.phpНаконец, вернитесь в ваш веб-браузер и посетите http://192.168.5.30/info.php. Если ваша интеграция Nginx и PHP-FPM успешна, вы должны увидеть следующее:
Вы можете увидеть ниже, что PHP 8.3 работает с серверным API PHP-FPM под веб-сервером Nginx.

Прокрутите вниз по странице, и вы увидите, что расширение PHP mysqli/mysqlnd также установлено.

Наконец, вы также увидите кэширование через APC, включенное в вашу установку PHP.

Создание блока сервера Nginx (виртуальный хост)
Блок сервера — это просто другое название для “виртуального хоста” для веб-сервера Nginx. Он используется для хостинга нескольких веб-сайтов или доменных имен на одном сервере. В этом разделе вы узнаете, как создать блок сервера Nginx.
Перед созданием конфигурации блока сервера выполните команду ниже, чтобы создать новый каталог веб-корня ‘/var/www/newsite/public_html’ и пользовательскую страницу ‘index.html’.
mkdir -p /var/www/newsite/public_html
echo "Добро пожаловать на newsite.com" > /var/www/newsite/public_html/index.htmlТеперь выполните команду ниже, чтобы изменить владельца директории ‘ /var/www/newsite ‘ на пользователя ‘ www-data ‘. В системе Ubuntu веб-сервер Nginx работает от имени пользователя ‘ www-data ‘.
sudo chown -R www-data:www-data /var/www/newsiteЗатем выполните следующую команду редактора nano, чтобы создать новую конфигурацию блока сервера ‘/etc/nginx/sites-available/newsite’.
sudo nano /etc/nginx/sites-available/newsiteВставьте приведенную ниже конфигурацию, убедитесь, что вы изменили опцию server_name на ваше доменное имя, а каталог веб-корня на новый путь, такой как ‘ /var/www/newsite/public_html ‘.
server {
listen 80;
server_name newsite.com;
root /var/www/newsite/public_html;
index index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
try_files $uri $uri/ =404;
}
}Когда закончите, сохраните и выйдите из файла.
Теперь выполните команду ниже, чтобы активировать конфигурацию блока сервера ‘ newsite ‘. С помощью этой команды вы создадите новую символическую ссылку файла ‘ /etc/nginx/sites-available/newsite ‘ в директории ‘ /etc/nginx/sites-enabled/ ‘.
sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/После активации блока сервера выполните команду ‘ nginx ‘ ниже, чтобы проверить синтаксис вашего Nginx.
sudo nginx -tЕсли ошибок нет, вы должны получить вывод ‘ … синтаксис в порядке / … тест успешен ‘.
Наконец, выполните команду ниже, чтобы перезапустить веб-сервер Nginx и применить вашу новую конфигурацию блока сервера. С этим ваша конфигурация блока сервера должна быть доступна с вашего локального компьютера.
sudo systemctl restart nginx
Тестирование конфигурации блока сервера
Чтобы убедиться, что конфигурация блока сервера Nginx успешна, вы получите доступ к доменному имени вашей конфигурации блока сервера с вашего локального компьютера. Если вы используете публичное доменное имя, посетите доменное имя напрямую. Но для пользователей локального домена отредактируйте файл ‘hosts’ на вашем локальном компьютере.
- Для пользователей Linux и MacOS отредактируйте файл ‘ /etc/hosts ‘ с правами root/администратора.
- Для пользователей Windows отредактируйте файл ‘ C:\Windows\System32\drivers\etc\hosts ‘ с правами администратора.
Добавьте ваш IP-адрес сервера и доменное имя, как показано ниже:
192.168.5.30 newsite.comСохраните файл и выйдите.
Теперь откройте ваш веб-браузер и посетите http://newsite.com/. Если ваша конфигурация блока сервера Nginx успешна, вы должны увидеть пользовательскую страницу ‘index.html’, которую вы создали, как показано ниже:

Заключение
Поздравляем! Вы теперь установили стек LEMP (Linux, Nginx, MySQL/MariaDB и PHP) на Ubuntu 24.04 “Noble Numbat”. Вы также защитили установку сервера MariaDB и создали блок сервера Nginx для хостинга нескольких веб-сайтов.
Get new posts in your inbox
No spam. Unsubscribe anytime.