Table of Contents
Введение
В этом руководстве вы установите стек LEMP на сервер с CentOS 8. Хотя MySQL доступен в используемых по умолчанию репозиториях в CentOS 8, в этом руководстве мы рассмотрим процесс настройки стека LEMP с MariaDB в качестве системы управления базами данных.
Более подробную версию этого обучающего руководства с подробным описанием каждого шага см. в статье Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8.
Предварительные требования
Для выполнения этого руководства вам потребуется доступ к серверу CentOS 8 с пользователем с правами sudo.
Шаг 1 — Установка Nginx
Установите пакет nginx с помощью следующей команды:
sudo dnf install nginx
После завершения установки запустите следующую команду, чтобы активировать и запустить сервер:
sudo systemctl start nginx
Если брандмауэр firewalld активен, вам потребуется запустить следующую команду, чтобы разрешить внешний доступ к порту 80 (HTTP):
sudo firewall-cmd --permanent --add-service=<^>http<^>
Выполните перезапуск конфигурации брандмауэра, чтобы изменения вступили в силу:
sudo firewall-cmd --reload
После добавления нового правила брандмауэра вы можете проверить, запущен ли сервер, запросив доступ к публичному IP-адресу или доменному имени сервера из вашего веб-браузера. Страница будет выглядеть следующим образом:
Шаг 2 — Установка MariaDB
Теперь мы установим MariaDB, разработанную энтузиастами версию оригинального сервера MySQL от Oracle. Для установки данного ПО запустите следующую команду:
sudo dnf install mariadb-server
После завершения установки активируйте и запустите сервер MariaDB с помощью следующей команды:
sudo systemctl start mariadb
Чтобы повысить уровень безопасности вашего сервера базы данных, рекомендуется запустить скрипт безопасности, который устанавливается в комплекте с MariaDB. Запустите интерактивный скрипт с помощью следующей команды:
sudo mysql_secure_installation
В первом диалоге вам нужно будет ввести пароль пользователя root для текущей базы данных. Поскольку вы только что установили MariaDB и еще не меняли параметры конфигурации, пароль будет пустым, так что вам достаточно нажать ENTER в этом диалоге.
В следующем диалоге вам будет предложено задать пароль для пользователя root базы данных. Поскольку MariaDB использует специальный метод аутентификации для пользователя root user, который, как правило, отличается большей безопасностью по сравнению с аутентификацией по паролю, вам не нужно настраивать его в данный момент. Введите N и нажмите ENTER.
Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов.
Шаг 3 — Установка PHP-FPM
Для установки пакетов php-fpm и php-mysql воспользуйтесь следующей командой:
sudo dnf install php-fpm php-mysqlnd
После завершения установки вам потребуется изменить файл /etc/php-fpm.d/www.conf, чтобы задать несколько параметров. Мы установим nano для упрощения процесса редактирования этих файлов:
sudo dnf install nano
Теперь откройте файл конфигурации /etc/php-fpm.d/www.conf с помощью nano или другого выбранного вами редактора:
sudo nano /etc/php-fpm.d/www.conf
Найдите директивы user и group. Если вы используете nano, вы можете нажать CTRL+W для поиска этих терминов в открытом файле. Обязательно измените оба значения с apache на nginx:
[label /etc/php-fpm.d/www.conf]
…
; RPM: apache user chosen to provide access to the same directories as httpd
user = <^>nginx<^>
; RPM: Keep a group allowed to write in log dir.
group = <^>nginx<^>
…
Сохраните и закройте файл после завершения редактирования.
Чтобы активировать и запустить службу php-fpm, запустите следующую команду:
sudo systemctl start php-fpm
Перезапустите веб-сервер Nginx, чтобы он смог использовать файлы конфигурации, созданные при установке php-fpm:
sudo systemctl restart nginx
Шаг 4 — Тестирование PHP с помощью Nginx
В CentOS 8 при установке php-fpm по умолчанию автоматически создаются файлы конфигурации, которые позволят вашему веб-серверу Nginx обрабатывать файлы .php в корневой директории документов по умолчанию, расположенной в /usr/share/nginx/html. Вам не потребуется вносить какие-либо изменения в конфигурацию Nginx для обеспечения корректной работы PHP на вашем веб-сервере.
Нам нужно будет только изменить владельца и группу по умолчанию в корневой директории документов Nginx, чтобы вы могли создавать и изменять файлы в этом месте с помощью обычного пользователя без прав root:
sudo chown -R <^>sammy<^>.<^>sammy<^> /usr/share/nginx/html/
Создайте новый файл PHP с именем info.php в директории /usr/share/nginx/html:
nano /usr/share/nginx/html/<^>info.php<^>
Следующий код PHP будет отображать информацию о текущей среде PHP, которая запущена на сервере:
[label /usr/share/nginx/html/info.php]
<?php
phpinfo();
Скопируйте это содержимое в ваш файл info.php и не забудьте сохранить изменения после завершения редактирования.
Теперь мы можем проверить, может ли наш веб-сервер корректно отображать содержимое, созданное скриптом PHP. Перейдите в браузер и вставьте в адресную строку имя хоста вашего сервера или его IP-адрес, добавив /info.php:
http://<^>server_host_or_IP<^>/info.php
Вы увидите приблизительно следующую страницу:
Другие обучающие руководства
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством: