Введение
В этом руководстве вы установите стек LEMP на сервер с CentOS 8. Хотя MySQL доступен в используемых по умолчанию репозиториях в CentOS 8, в этом руководстве мы рассмотрим процесс настройки стека LEMP с MariaDB в качестве системы управления базами данных.
Более подробную версию этого обучающего руководства с подробным описанием каждого шага см. в статье Установка стека Linux, Nginx, MySQL, PHP (LEMP) в CentOS 8.
Предварительные требования
Для выполнения этого руководства вам потребуется доступ к серверу CentOS 8 с пользователем с правами sudo
.
Шаг 1 — Установка Nginx
Установите пакет nginx
с помощью следующей команды:
После завершения установки запустите следующую команду, чтобы активировать и запустить сервер:
- sudo systemctl start nginx
Если брандмауэр firewalld
активен, вам потребуется запустить следующую команду, чтобы разрешить внешний доступ к порту 80
(HTTP):
- sudo firewall-cmd --permanent --add-service=http
Выполните перезапуск конфигурации брандмауэра, чтобы изменения вступили в силу:
- sudo firewall-cmd --reload
После добавления нового правила брандмауэра вы можете проверить, запущен ли сервер, запросив доступ к публичному IP-адресу или доменному имени сервера из вашего веб-браузера. Страница будет выглядеть следующим образом:
Шаг 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 с помощью следующей команды:
В результате будет установлено подключение к серверу 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;
Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:
После этого закройте оболочку MariaDB:
Шаг 3 — Установка PHP-FPM
Для установки пакетов php-fpm
и php-mysql
воспользуйтесь следующей командой:
- sudo dnf install php-fpm php-mysqlnd
После завершения установки вам потребуется изменить файл /etc/php-fpm.d/www.conf
, чтобы задать несколько параметров. Мы установим 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
Вы увидите приблизительно следующую страницу:
Другие обучающие руководства
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством: