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

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

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

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

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

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

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

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

$ sudo apt install nginx

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

$ sudo systemctl status nginx

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

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

$ sudo systemctl start nginx

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

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

$ curl ifconfig.me

=

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

Веб-страница NGINX по умолчанию
Веб-страница 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
Изменение корневого каталога 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 по умолчанию
Новая веб-страница 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
Вход в 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
Добавить 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
Тестовая конфигурация PHP-FPM с помощью NGINX

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

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

Заключение

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

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.