Установка стека LEMP в Ubuntu 20.04

В этой инструкции мы установим стек LEMP на Ubuntu 20.04.

LEMP  это аббревиатура от Linux, NGINX (произносится как Engine X), MySQL и PHP. Все это популярные инструменты с открытым исходным кодом, обычно используемые в веб-разработке. Стек LEMP обычно используется для размещения динамических веб-сайтов. Например систем управления контентом, таких как WordPress, Drupal, Joomla, Moodle и другие.

Когда приходит запрос, сервер запускает PHP-код для создания HTML-версии и запрашивает внутреннюю базу данных, чтобы получить контент для вставки в HTML.

Требования к установки

  • Рабочий сервер Ubuntu 20.04 Linux
  • Пользователь с привилегиями sudo

Установка веб-сервера NGINX

Для установки LEMP нам нужно установить и настроить NGINX.

Чтоб установить NGINX на Ubuntu 20.04 воспользуйтесь этой командой.

$ sudo apt install nginx

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

$ sudo systemctl status nginx

Проверка статуса NGINX

Вы должны увидеть сообщение, подтверждающее, что NGINX активен (работает.) Если вдруг сервер NGINX не работает, тогда требуется его включить. Сделать это можно командой:

$ sudo systemctl start nginx

После того как NGINX  в Ubuntu заработал, можно открывать веб-браузер и вводить ip-адрес сервера. Вы должны увидеть страницу NGINX по умолчанию.

Примечание: Вы можете получить ip-адрес вашего сервера, выполнив вот такую команду.

$ curl ifconfig.me

Или просто введите localhost в своем веб-браузере.

Веб-страница NGINX по умолчанию

Измените корень документа NGINX по умолчанию

Веб-страница Добро пожаловать в nginx была загружена из корневого каталога документа по умолчанию, то есть из файла /var/www/html . Основанного на директивах конфигурации в файле блока сервера по умолчанию. Файл блока сервера NGINX по умолчанию это /etc/nginx/sites-available/default. Вместо того чтобы использовать эту конфигурацию по умолчанию, мы можем создать свою.

Изменение конфигурации NGINX Ubuntu

Создайте каталог  /var/www, который будет служить новым корневым документом NGINX по умолчанию. Я назвал свой cloudindevs в соответствии с первой частью моего зарегистрированного доменного имени. Вы можете назвать свой таким же образом.

$ sudo mkdir /var/www/cloudindevs

Затем убедитесь, что учетная запись службы NGINX (www-data) имеет доступ к корневому каталогу документа.

Примечание: Вы можете создать любое осмысленное имя пользователя и определить user его в файле /etc/nginx/nginx.conf.

Чтобы изменить владельца корневого документа на www-data, введите:

$ sudo chown www-data:www-data /var/www/cloudindevs

Чтобы назначить разрешения, выполните следующую команду chmod:

$ sudo chmod -R 755 /var/www/cloudindevs

После этого вы можете создать новый файл блока сервера NGINX, скопировав существующий следующим образом.

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/cloudindevs.com

Затем отредактируйте новый файл блока сервера NGINX и измените директиву root, чтобы она указывала на ваш новый корень документа.

$ sudo nano /etc/nginx/sites-available/cloudindevs.com

Изменение корневого каталога NGINX

Следующим шагом требуется активировать новый файл блока сервера, связав его следующим образом.

$ sudo ln -s /etc/nginx/sites-available/cloudindevs.com /etc/nginx/sites-enabled

Теперь вы можете отключить прежний файл блокировки сервера NGINX по умолчанию, разорвав его с помощью приведенной ниже команды.

$ sudo unlink /etc/nginx/sites-enabled/default

Проверьте свою конфигурацию NGINX с помощью следующей команды.

$ sudo nginx -t

Чтобы правильно проверить это изменение, скопируйте этот html код.

<head> <title>Successfully changed NGINX default document root!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx default document root was successfully changed.</p> </body> </html>

Создайте новую страницу индекса в корневом каталоге нового документа с помощью следующей команды.

$ sudo nano /var/www/cloudindevs/index.html

Вставьте html-код в текстовый редактор, сохраните и закройте файл.

Перезапустите NGINX с помощью команды написанной ниже.

$ sudo systemctl restart nginx

Теперь откройте веб-браузер и введите IP-адрес вашего сервера.

Как только вы увидите сообщение как на изображении ниже, вы можете приступить к следующему шагу.

Новая веб-страница NGINX по умолчанию

Установка Системы Управления Базами Данных MySQL

Третья часть стека LEMP это MySQL обычно используемая система управления базами данных с открытым исходным кодом для хранения и управления данными. MariaDB является хорошей заменой для MySQL в стеке LEMP, так как она предлагает улучшенную производительность. Но в этой статье мы используем традиционный MySQL.

Вы можете установить MySQL на Ubuntu 20.04 с помощью следующей командой.

$ sudo apt install mysql-server

После установки вы можете проверить версию MySQL с помощью следующей команды.

$ mysql version

Настройка MySQL

Для правильной настройки MySQL рекомендуется запустить сценарий mysql_secure_installation следующим образом.

$ sudo mysql_secure_installation

В двух словах, скрипт предложит вам::

  • Включить / отключить компонент проверки пароля. Это относится к требованию сложности пароля
  • Установите новый пароль для пользователя MySQL root
  • Удаление анонимных пользователей
  • Запретить корневой вход в систему удаленно
  • Удалить тестовую базу данных
  • Перезагрузите таблицы привилегий, чтобы применить изменения

Как только скрипт mysql_secure_installation выполнится и вы увидите сообщение об успешном завершении. Теперь вы можете войти в MySQL.

Вход в MySQL

Чтобы войти в MySQL, выполните приведенную ниже команду и введите свой пароль root MySQL при появлении запроса.

$ sudo mysql -u root -p

Вы должны увидеть приглашение mysql>>, которое подтверждает, что теперь у вас есть рабочий сервер MySQL.

Вход в MySQL

Введите quit и нажмите enter, чтобы выйти из MySQL.

mysql> quit

Установка PHP

И наконец установка PHP завершает стек LEMP. PHP делает динамическую обработку веб-контента и взаимодействует с MySQL.

В этом разделе мы установим PHP-FPM (Fast-CGI Process Manager) и настроим его для использования веб-сервером NGINX.

Установка PHP-FPM

Выполните следующую команду, чтобы установить PHP-FPM и связанные с ним компоненты на Ubuntu 20.04.

$ sudo apt install php-fpm php-mysql

После установки, проверьте версию PHP с помощью команды ниже.

$ php-v

Настройка NGINX для использования PHP-FPM

Отредактируйте файл конфигурации блока сервера NGINX следующим образом.

$ sudo nano /etc/nginx/sites-available/cloudindevs.com

Нажимайте стрелку вниз на клавиатуре, пока не дойдете до строки, начинающейся с индекса. А теперь добавь index.php к списку, как показано на рисунке ниже.

Добавить index.php в список индексов NGINX

Затем снова нажмите клавишу со стрелкой вниз, пока не дойдете до раздела под названием pass PHP scripts to FASTCGI server.

Раскомментируйте следующие строки.

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

Теперь я хочу, чтобы мой сервер NGINX был доступен через мое зарегистрированное доменное имя. Я внес несколько дополнительных изменений в файл блока сервера.

Ниже приведен фрагмент файла блока сервера после внесения этих изменений. Если вы хотите сделать тоже самое, вы можете скопировать сведения о конфигурации ниже и просто заменить cloudindevs на свое имя.

server { listen 80; root /var/www/cloudindevs; index index.php index.html index.htm; server_name cloudindevs.com www.cloudindevs.com; location / {

try_files $uri $uri/ =404;

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

}

Сохраните изменения и закройте конфигурационный файл блока сервера.

Примечание: по умолчанию конфигурация пула PHP-FPM хранится в файле /etc/php/7.4/fpm/pool.d/www.conf. Здесь вы можете определить пользователя и группу для php-fpm.

Тестовая конфигурация PHP-FPM

Напомним, что мы добавили index.php к списку индексных файлов в файле конфигурации блока сервера NGINX. Следовательно, нам нужно создать index.php файл в новом корне документа по умолчанию выглядит следующим образом.

$ sudo nano /var/www/cloudindevs/index.php

Скопируйте приведенный ниже PHP код и вставьте его в текстовый редактор.

<?php phpinfo(); ?>

Сохраните изменения и закройте файл.

Теперь перезапустите NGINX с помощью команды:

$ sudo systemctl restart nginx

Откройте веб-браузер и введите IP-адрес вашего сервера или localhost, если вы подключены локально. Вы должны увидеть следующую страницу, которая подтверждает, что PHP-FPM работает правильно.

Тестовая конфигурация PHP-FPM с помощью NGINX

По соображениям безопасности вы можете удалить index.php. Так как этот файл раскрывает слишком много информации о вашем сервере внешнему миру.

$ sudo rm /var/www/cloudindevs/index.php

Заключение

Следуя этой инструкции, теперь у вас должна быть рабочая платформа LEMP на Ubuntu 20.04. Если вам нужны разъяснения относительно этого руководства, напишите в комментарии ниже.

Оцените статью
Установка и настройка популярных программ на Windows, Linux и другие операционные системы