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

PostedMarch 19, 2020 450 views NginxCentOSPHPMariaDBLEMPCentOS 8

Введение

В этом руководстве вы установите стек 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-адресу или доменному имени сервера из вашего веб-браузера. Страница будет выглядеть следующим образом:

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

Шаг 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, который, как правило, отличается большей безопасностью по сравнению с аутентификацией по паролю, вам не нужно настраивать его в данный момент. Введите N и нажмите ENTER.

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

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

  • sudo mysql

В результате будет установлено подключение к серверу MariaDB с помощью пользователя root базы данных с правами администратора, который логически выводится в результате использования sudo при запуске данной команды. Результат должен выглядеть следующим образом:

Output
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.3.17-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

Чтобы создать новую базу данных, запустите следующую команду в консоли MariaDB:

  • CREATE DATABASE example_database;

Теперь вы можете создать нового пользователя и предоставить ему полный набор прав для только что созданной вами базы данных:

  • GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:

  • FLUSH PRIVILEGES;

После этого закройте оболочку MariaDB:

  • exit

Шаг 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:

/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, которая запущена на сервере:

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

phpinfo();

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

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

http://server_host_or_IP/info.php

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

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

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

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

0 Comments

Creative Commons License