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

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel