// Tutorial //

Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8 [Краткое руководство]

Published on March 19, 2020
Default avatar

By Erika Heidi

Developer Advocate

Русский
Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8 [Краткое руководство]

Введение

В этом руководстве вы установите стек LEMP на сервер с CentOS 8. Хотя MySQL доступен в используемых по умолчанию репозиториях в CentOS 8, в этом руководстве мы рассмотрим процесс настройки стека LEMP с MariaDB в качестве системы управления базами данных.

Более подробную версию этого обучающего руководства с подробным описанием каждого шага см. в статье Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8.

Предварительные требования

Для выполнения этого руководства вам потребуется доступ к серверу CentOS 8 с пользователем с правами sudo.

Шаг 1 — Установка Nginx

Установите пакет nginx с помощью следующей команды:

  1. sudo dnf install nginx

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

  1. sudo systemctl start nginx

Если брандмауэр firewalld активен, вам потребуется запустить следующую команду, чтобы разрешить внешний доступ к порту 80 (HTTP):

  1. sudo firewall-cmd --permanent --add-service=http

Выполните перезапуск конфигурации брандмауэра, чтобы изменения вступили в силу:

  1. sudo firewall-cmd --reload

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

Страница Nginx по умолчанию в CentOS 8

Шаг 2 — Установка MariaDB

Теперь мы установим MariaDB, разработанную энтузиастами версию оригинального сервера MySQL от Oracle. Для установки данного ПО запустите следующую команду:

  1. sudo dnf install mariadb-server

После завершения установки активируйте и запустите сервер MariaDB с помощью следующей команды:

  1. sudo systemctl start mariadb

Чтобы повысить уровень безопасности вашего сервера базы данных, рекомендуется запустить скрипт безопасности, который устанавливается в комплекте с MariaDB. Запустите интерактивный скрипт с помощью следующей команды:

  1. sudo mysql_secure_installation

В первом диалоге вам нужно будет ввести пароль пользователя root для текущей базы данных. Поскольку вы только что установили MariaDB и еще не меняли параметры конфигурации, пароль будет пустым, так что вам достаточно нажать ENTER в этом диалоге.

В следующем диалоге вам будет предложено задать пароль для пользователя root базы данных. Поскольку MariaDB использует специальный метод аутентификации для пользователя root user, который, как правило, отличается большей безопасностью по сравнению с аутентификацией по паролю, вам не нужно настраивать его в данный момент. Введите N и нажмите ENTER.

Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов.

Шаг 3 — Установка PHP-FPM

Для установки пакетов php-fpm и php-mysql воспользуйтесь следующей командой:

  1. sudo dnf install php-fpm php-mysqlnd

После завершения установки вам потребуется изменить файл /etc/php-fpm.d/www.conf, чтобы задать несколько параметров. Мы установим nano для упрощения процесса редактирования этих файлов:

  1. sudo dnf install nano

Теперь откройте файл конфигурации /etc/php-fpm.d/www.conf с помощью nano или другого выбранного вами редактора:

  1. sudo nano /etc/php-fpm.d/www.conf

Найдите директивы user и group. Если вы используете nano, вы можете нажать CTRL+W для поиска этих терминов в открытом файле. Обязательно измените оба значения с apache на nginx:

/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, запустите следующую команду:

  1. sudo systemctl start php-fpm

Перезапустите веб-сервер Nginx, чтобы он смог использовать файлы конфигурации, созданные при установке php-fpm:

  1. sudo systemctl restart nginx

Шаг 4 — Тестирование PHP с помощью Nginx

В CentOS 8 при установке php-fpm по умолчанию автоматически создаются файлы конфигурации, которые позволят вашему веб-серверу Nginx обрабатывать файлы .php в корневой директории документов по умолчанию, расположенной в /usr/share/nginx/html. Вам не потребуется вносить какие-либо изменения в конфигурацию Nginx для обеспечения корректной работы PHP на вашем веб-сервере.

Нам нужно будет только изменить владельца и группу по умолчанию в корневой директории документов Nginx, чтобы вы могли создавать и изменять файлы в этом месте с помощью обычного пользователя без прав root:

  1. sudo chown -R sammy.sammy /usr/share/nginx/html/

Создайте новый файл PHP с именем info.php в директории /usr/share/nginx/html:

  1. nano /usr/share/nginx/html/info.php

Следующий код PHP будет отображать информацию о текущей среде PHP, которая запущена на сервере:

/usr/share/nginx/html/info.php
<?php

phpinfo();

Скопируйте это содержимое в ваш файл info.php и не забудьте сохранить изменения после завершения редактирования.

Теперь мы можем проверить, может ли наш веб-сервер корректно отображать содержимое, созданное скриптом PHP. Перейдите в браузер и вставьте в адресную строку имя хоста вашего сервера или его IP-адрес, добавив /info.php:

http://server_host_or_IP/info.php

Вы увидите приблизительно следующую страницу:

Отображаемая по умолчанию страница с данными PHP в CentOS 8

Другие обучающие руководства

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Developer Advocate

Dev/Ops passionate about open source, PHP, and Linux.

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up