Для тех из вас, кто не знает, что такое LEMP – это комбинация программных пакетов – Linux, Nginx (произносится как EngineX), MariaDB и PHP.
Вы можете использовать LEMP как для тестирования, так и в реальной производственной среде для развертывания веб-приложений с использованием PHP-фреймворков, таких как Laravel или Yii, или систем управления контентом, таких как WordPress, Drupal или Joomla
Возможно, вас интересует, в чем разница между LAMP и LEMP. Ну, единственное отличие заключается в том, какой веб-сервер включен – Apache (в LAMP) и Nginx (в LEMP). Оба веб-сервера довольно хороши, и хотя Apache самый часто используемый, Nginx ни в чем не уступает.
Еще одно широко используемое приложение, обычно устанавливаемое наряду со стеком LEMP, – это PhpMyAdmin – это веб-инструмент на PHP для администрирования сервера базы данных MySQL/MariaDB из веб-браузера.
Если вы ищете настройку LAMP для вашего Ubuntu 20.04, то вам следует прочитать наше руководство по настройке LAMP на Ubuntu 20.04.
Предпосылки:
В этой статье вы узнаете, как установить и настроить стек LEMP с PhpMyAdmin на сервере Ubuntu 20.04.
Шаг 1: Установка Nginx на Ubuntu 20.04
1. Nginx – это быстрый современный веб-сервер, разработанный для обслуживания множества одновременных подключений без излишнего потребления серверных ресурсов. Поэтому он часто является предпочтительным выбором в корпоративных средах.
NGINX также часто используется в качестве балансировщика нагрузки и кэша веб-контента. Он поддерживает виртуальные серверы на основе имени и IP-адреса (аналогично виртуальным хостам в Apache).
Вы можете установить Nginx на ваш Ubuntu 20.04 рабочего стола или сервера, выполнив следующую команду.
$ sudo apt update $ sudo apt install nginx

Конфигурационные файлы Nginx хранятся в каталоге /etc/nginx, а его основной конфигурационный файл – /etc/nginx/nginx.conf. Важно, что его корневой каталог для хранения ваших веб-файлов – /usr/share/nginx/html/. Но вы можете использовать стандартный /var/www/html, который должен быть настроен в конфигурационном файле блока сервера вашего веб-сайта или приложения.
2. Установщик пакетов Ubuntu запускает systemd, чтобы запустить сервис Nginx и включить его автоматический запуск при каждой перезагрузке сервера. Используйте следующие команды systemctl, чтобы подтвердить, что служба работает и включена.
$ sudo systemctl status nginx $ sudo systemctl is-enabled nginx

3. Теперь пришло время проверить успешность установки Nginx, вызвав страницу Nginx через браузер, используя IP-адрес сервера.
http://SERVER_IP
Если вы не знаете IP-адрес вашего сервера, вы можете найти его, используя команду IP, как показано.
$ ip addr show
Страница веб-сервера NGINX по умолчанию должна загрузиться, как показано на следующем снимке экрана, подтверждая правильность установки и работы.

Шаг 2: Установка базы данных MariaDB на Ubuntu 20.04
4. MariaDB – это относительно новая система управления реляционными базами данных, созданная в качестве сообщественного форка MySQL после его приобретения Oracle.
Установка MariaDB проста и может быть запущена с помощью команды:
$ sudo apt install mariadb-server mariadb-client

5. Служба MariaDB также автоматически запускается и включается для постоянного запуска при загрузке системы, и вы можете подтвердить это, используя следующие команды.
$ sudo systemctl status mariadb $ sudo systemctl is-enabled mariadb

6. Если вы хотите улучшить безопасность MariaDB, вы можете выполнить команду mysql_secure_installation
, которая предоставит несколько базовых, но важных опций для настройки:
$ sudo mysql_secure_installation
Затем выберите опцию установки пароля для корневого пользователя базы данных (или администратора) и следуйте инструкциям, внимательно читая вопросы. Чтобы обеспечить безопасность вашего сервера баз данных, отвечайте на вопросы, как показано на скриншоте.
- Введите текущий пароль для root (введите для отсутствия): Введите
- Установить пароль для root? [Y/n]
y
- Удалить анонимных пользователей? [Y/n]
y
- Запретить удаленный вход для root? [Y/n]
y
- Удалить тестовую базу данных и доступ к ней? [Y/n]
y
- Перезагрузить таблицы привилегий сейчас? [Y/n]
y

7. Для создания, управления и выполнения операций с базой данных вам нужна команда оболочки mysql с флагом -u
, чтобы указать имя пользователя базы данных и -p
, чтобы предоставить пароль пользователя.
Чтобы подключиться как пользователь root, используйте команду sudo (даже без флага -p
), в противном случае вы получите ошибку, выделенную на следующем скриншоте.
$ mysql -u root -p $ sudo mysql -u root

Шаг 3: Установка PHP в Ubuntu 20.04
8. PHP – это популярный open-source, гибкий и динамический скриптовый язык для создания веб-сайтов и веб-приложений. Он поддерживает различные методики программирования. Важно, что сообщество PHP большое и разнообразное, состоящее из бесчисленных библиотек, фреймворков и других полезных компонентов.
NGINX использует FPM (FastCGI Process Manager) или PHP-FPM для обработки PHP-скриптов. PHP-FPM – это широко используемая альтернативная реализация PHP FastCGI, которая поставляется с множеством дополнительных функций и используется для обеспечения работы сайтов и веб-приложений с высокой нагрузкой.
Для установки PHP и PHP-FPM выполните следующую команду, которая также установит необходимые дополнительные пакеты.
$ sudo apt install php php-mysql php-fpm

Поскольку PHP 7.4 является версией по умолчанию PHP в Ubuntu 20.04, файлы конфигурации PHP находятся в /etc/php/7.4/, а файлы конфигурации PHP-FPM хранятся в /etc/php/7.4/fpm.
9. Затем проверьте, работает ли служба php7.4-fpm и включена ли она с помощью следующей команды.
$ sudo systemctl status php7.4-fpm $ sudo systemctl is-enabled php7.4-fpm

Шаг 4: Настройка Nginx для работы с PHP-FPM
10. Теперь вам нужно настроить NGINX для проксирования запросов клиентов к PHP-FPM, который по умолчанию настроен на прослушивание UNIX-сокета, как определено параметром listen в конфигурационном файле пула по умолчанию /etc/php/7.4/fpm/pool.d/www.conf.
$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf

11. В конфигурационном файле серверного блока по умолчанию (/etc/nginx/sites-available/default) раскомментируйте директиву расположения для обработки запросов PHP, чтобы она выглядела как на скриншоте ниже.
$ sudo vi /etc/nginx/sites-available/default

Сохраните файл и выйдите.
12. Затем проверьте синтаксис конфигурации NGINX на корректность. Если все в порядке, перезапустите службу Nginx, чтобы применить новые изменения.
$ sudo nginx -t $ sudo systemctl restart nginx

13. Теперь проверьте, может ли NGINX работать совместно с PHP-FPM для обработки запросов PHP. Создайте простую страницу info.php в корневом каталоге документов.
$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
14. В вашем браузере перейдите по следующему адресу. Страница конфигурации PHP должна загрузиться, как показано на скриншоте ниже.
http://SERVER_IP/info.php

Шаг 5: Установка PhpMyAdmin в Ubuntu 20.04
15. PhpMyAdmin – бесплатное и открытое веб-приложение на PHP, специально созданное для администрирования серверов баз данных MySQL/MariaDB через веб-браузер. Оно предоставляет интуитивно понятный графический интерфейс и поддерживает широкий спектр распространенных функций для задач администрирования баз данных.
$ sudo apt install phpmyadmin

16. Во время установки пакета вам будет предложено настроить несколько аспектов пакета PhpMyAdmin. Сначала вас попросят выбрать сервер по умолчанию для его запуска. Нажмите Esc, потому что NGINX отсутствует в предоставленном списке.

17. Далее, PhpMyAdmin требует базу данных для работы. В этом окне настройки пакета выберите Yes
, чтобы настроить базу данных для PhpMyAdmin с использованием пакета dbconfig-common.

18. На следующем экране вам потребуется указать пароль для PhpMyAdmin, чтобы он зарегистрировался в базе данных MariaDB. Введите надежный пароль и нажмите Enter.

Шаг 6: Настройка NGINX для обслуживания сайта PhpMyAdmin
19. Чтобы включить NGINX для обслуживания сайта PhpMyAdmin, расположенного по адресу /usr/share/phpmyadmin, создайте символическую ссылку для этого каталога в корневом каталоге документов, а затем установите правильные разрешения и владельца для каталога PHPMyAdmin следующим образом.
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin $ sudo chmod 775 -R /usr/share/phpmyadmin/ $ sudo chown root:www-data -R /usr/share/phpmyadmin/
20. Кроме того, убедитесь, что директива index в файле конфигурации блока сервера по умолчанию (/etc/nginx/sites-available/default) включает index.php, как показано на следующем скриншоте.

21. Затем перезапустите службу Nginx еще раз, чтобы применить вышеприведенные изменения.
$ sudo systemctl restart nginx
22. Теперь получите доступ к сайту PhpMyAdmin из браузера, используя следующий адрес.
http://SERVER_IP/phpmyadmin
На странице входа произведите аутентификацию с именем пользователя и паролем PHPMyAdmin. Помните, что удаленный вход в систему с корневым пользователем отключен, если вы не обращаетесь к PHPMyAdmin на локальном хосте, где установлена база данных MariaDB, доступ к корневому пользователю не будет работать.


Установите защиту для вашей установки PhpMyAdmin, следуя нашему руководству: 4 полезных совета по обеспечению безопасности веб-интерфейса PhpMyAdmin.
Заключение
Ваша настройка LEMP завершена, и вы можете начать создавать ваши веб-приложения или просто экспериментировать с сервисами Nginx и MariaDB, которые вы только что установили. Эти сервисы широко используются, и приобретение большего опыта в их использовании крайне рекомендуется для системных администраторов.
Source:
https://www.tecmint.com/install-lemp-with-phpmyadmin-in-ubuntu-20-04/