Как установить стек LEMP с PhpMyAdmin в Ubuntu 20.04

Для тех из вас, кто не знает, что такое LEMP – это комбинация программных пакетов – Linux, Nginx (произносится как EngineX), MariaDB и PHP.

Вы можете использовать LEMP как для тестирования, так и в реальной производственной среде для развертывания веб-приложений с использованием PHP-фреймворков, таких как Laravel или Yii, или систем управления контентом, таких как WordPress, Drupal или Joomla

Возможно, вас интересует, в чем разница между LAMP и LEMP. Ну, единственное отличие заключается в том, какой веб-сервер включен – ApacheLAMP) и NginxLEMP). Оба веб-сервера довольно хороши, и хотя Apache самый часто используемый, Nginx ни в чем не уступает.

Еще одно широко используемое приложение, обычно устанавливаемое наряду со стеком LEMP, – это PhpMyAdmin – это веб-инструмент на PHP для администрирования сервера базы данных MySQL/MariaDB из веб-браузера.

Если вы ищете настройку LAMP для вашего Ubuntu 20.04, то вам следует прочитать наше руководство по настройке LAMP на Ubuntu 20.04.

Предпосылки:

  1. Руководство по установке сервера 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
Install Nginx on Ubuntu 20.04

Конфигурационные файлы 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
Check Nginx Service Status

3. Теперь пришло время проверить успешность установки Nginx, вызвав страницу Nginx через браузер, используя IP-адрес сервера.

http://SERVER_IP

Если вы не знаете IP-адрес вашего сервера, вы можете найти его, используя команду IP, как показано.

$ ip addr show

Страница веб-сервера NGINX по умолчанию должна загрузиться, как показано на следующем снимке экрана, подтверждая правильность установки и работы.

Test Nginx Installation

Шаг 2: Установка базы данных MariaDB на Ubuntu 20.04

4. MariaDB – это относительно новая система управления реляционными базами данных, созданная в качестве сообщественного форка MySQL после его приобретения Oracle.

Установка MariaDB проста и может быть запущена с помощью команды:

$ sudo apt install mariadb-server mariadb-client
Install MariaDB on Ubuntu 20.04

5. Служба MariaDB также автоматически запускается и включается для постоянного запуска при загрузке системы, и вы можете подтвердить это, используя следующие команды.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb
Check MariaDB Service

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
Secure MariaDB Server

7. Для создания, управления и выполнения операций с базой данных вам нужна команда оболочки mysql с флагом -u, чтобы указать имя пользователя базы данных и -p, чтобы предоставить пароль пользователя.

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

$ mysql -u root -p
$ sudo mysql -u root
Access MariaDB Shell

Шаг 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
Install PHP and PHP-FPM on Ubuntu 20.04

Поскольку 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
Check PHP-FPM Status

Шаг 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 
Configure PHP-FPM Socket

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

$ sudo vi /etc/nginx/sites-available/default
Configure Nginx Block to Use PHP-FPM Socket

Сохраните файл и выйдите.

12. Затем проверьте синтаксис конфигурации NGINX на корректность. Если все в порядке, перезапустите службу Nginx, чтобы применить новые изменения.

$ sudo nginx -t
$ sudo systemctl restart nginx
Check Nginx Configuration

13. Теперь проверьте, может ли NGINX работать совместно с PHP-FPM для обработки запросов PHP. Создайте простую страницу info.php в корневом каталоге документов.

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

14. В вашем браузере перейдите по следующему адресу. Страница конфигурации PHP должна загрузиться, как показано на скриншоте ниже.

http://SERVER_IP/info.php
Check PHP and PHP-FPM Info

Шаг 5: Установка PhpMyAdmin в Ubuntu 20.04

15. PhpMyAdmin – бесплатное и открытое веб-приложение на PHP, специально созданное для администрирования серверов баз данных MySQL/MariaDB через веб-браузер. Оно предоставляет интуитивно понятный графический интерфейс и поддерживает широкий спектр распространенных функций для задач администрирования баз данных.

$ sudo apt install phpmyadmin
Install PhpMyAdmin in Ubuntu 20.04

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

Choose Web Server to Configure PHPMyAdmin

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

Configure Database for PhpMyAdmin

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

Create a Password for PhpMyAdmin

Шаг 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, как показано на следующем скриншоте.

Configure Nginx Index Directive

21. Затем перезапустите службу Nginx еще раз, чтобы применить вышеприведенные изменения.

$ sudo systemctl restart nginx

22. Теперь получите доступ к сайту PhpMyAdmin из браузера, используя следующий адрес.

http://SERVER_IP/phpmyadmin

На странице входа произведите аутентификацию с именем пользователя и паролем PHPMyAdmin. Помните, что удаленный вход в систему с корневым пользователем отключен, если вы не обращаетесь к PHPMyAdmin на локальном хосте, где установлена база данных MariaDB, доступ к корневому пользователю не будет работать.

PhpMyAdmin Login
PhpMyAdmin Dashboard

Установите защиту для вашей установки PhpMyAdmin, следуя нашему руководству: 4 полезных совета по обеспечению безопасности веб-интерфейса PhpMyAdmin.

Заключение

Ваша настройка LEMP завершена, и вы можете начать создавать ваши веб-приложения или просто экспериментировать с сервисами Nginx и MariaDB, которые вы только что установили. Эти сервисы широко используются, и приобретение большего опыта в их использовании крайне рекомендуется для системных администраторов.

Source:
https://www.tecmint.com/install-lemp-with-phpmyadmin-in-ubuntu-20-04/