В этом руководстве вы установите стек LEMP на сервер с CentOS 8. Хотя MySQL доступен в используемых по умолчанию репозиториях в CentOS 8, в этом руководстве мы рассмотрим процесс настройки стека LEMP с MariaDB в качестве системы управления базами данных.
Более подробную версию этого обучающего руководства с подробным описанием каждого шага см. в статье Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8.
Для выполнения этого руководства вам потребуется доступ к серверу CentOS 8 с пользователем с правами sudo
.
Установите пакет nginx
с помощью следующей команды:
- sudo dnf install nginx
После завершения установки запустите следующую команду, чтобы активировать и запустить сервер:
- sudo systemctl start nginx
Если брандмауэр firewalld
активен, вам потребуется запустить следующую команду, чтобы разрешить внешний доступ к порту 80
(HTTP):
- sudo firewall-cmd --permanent --add-service=http
Выполните перезапуск конфигурации брандмауэра, чтобы изменения вступили в силу:
- sudo firewall-cmd --reload
После добавления нового правила брандмауэра вы можете проверить, запущен ли сервер, запросив доступ к публичному IP-адресу или доменному имени сервера из вашего веб-браузера. Страница будет выглядеть следующим образом:
Теперь мы установим 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
, чтобы принять ответы по умолчанию для всех последующих вопросов.
Для установки пакетов 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
:
…
; 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
В 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, которая запущена на сервере:
<?php
phpinfo();
Скопируйте это содержимое в ваш файл info.php
и не забудьте сохранить изменения после завершения редактирования.
Теперь мы можем проверить, может ли наш веб-сервер корректно отображать содержимое, созданное скриптом PHP. Перейдите в браузер и вставьте в адресную строку имя хоста вашего сервера или его IP-адрес, добавив /info.php
:
http://server_host_or_IP/info.php
Вы увидите приблизительно следующую страницу:
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!