В этом руководстве вы установите стек 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
Вы увидите приблизительно следующую страницу:
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством:
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up