- Требования к установки
- Установка веб-сервера NGINX
- Измените корень документа NGINX по умолчанию
- Изменение конфигурации NGINX Ubuntu
- Установка Системы Управления Базами Данных MySQL
- Настройка MySQL
- Вход в MySQL
- Установка PHP
- Установка PHP-FPM
- Настройка NGINX для использования PHP-FPM
- Тестовая конфигурация PHP-FPM
- Заключение
В этой инструкции мы установим стек 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 не работает, тогда требуется его включить. Сделать это можно командой:
$ sudo systemctl start nginx
После того как NGINX в Ubuntu заработал, можно открывать веб-браузер и вводить ip-адрес сервера. Вы должны увидеть страницу NGINX по умолчанию.
Примечание: Вы можете получить ip-адрес вашего сервера, выполнив вот такую команду.
$ curl ifconfig.me
Или просто введите localhost в своем веб-браузере.
Измените корень документа 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
Следующим шагом требуется активировать новый файл блока сервера, связав его следующим образом.
$ 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-адрес вашего сервера.
Как только вы увидите сообщение как на изображении ниже, вы можете приступить к следующему шагу.
Установка Системы Управления Базами Данных 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.
Введите 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 к списку, как показано на рисунке ниже.
Затем снова нажмите клавишу со стрелкой вниз, пока не дойдете до раздела под названием «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 работает правильно.
По соображениям безопасности вы можете удалить index.php. Так как этот файл раскрывает слишком много информации о вашем сервере внешнему миру.
$ sudo rm /var/www/cloudindevs/index.php
Заключение
Следуя этой инструкции, теперь у вас должна быть рабочая платформа LEMP на Ubuntu 20.04. Если вам нужны разъяснения относительно этого руководства, напишите в комментарии ниже.