Пошаговая инструкция по установке LEMP стека (Nginx, MariaDB, PHP-FPM) на CentOS7

LEMP представляет собой комбинацию Linux, Nginx (читается как engine X), MariaDB/MySQL и PHP. Этот стек используется для запуска динамических веб-сайтов и приложений. В данном руководстве будет показано, как настроить LEMP на сервере CentOS 7. В качестве системы управления базами данных выбрана MariaDB, которая служит альтернативой MySQL.

Установка Nginx на CentOS7 через репозиторий EPEL

Nginx — это высокоскоростной веб-сервер, который набирает популярность, превосходя Apache. Для его установки на CentOS 7 необходимо добавить репозиторий EPEL с помощью следующей команды. EPEL расшифровывается как Extra Packages for Enterprise Linux.

sudo yum install epel-release - y

Укажите свой пароль. Теперь, после добавления репозитория, можно приступать к установке Nginx:

sudo yum install nginx - y

После того как Nginx установлен, необходимо его запустить.

sudo systemctl start nginx

Настройте автоматический запуск Nginx при старте системы.

sudo systemctl enable nginx

Убедитесь, что он функционирует.

systemctl status nginx

Служба nginx - веб-сервер nginx и прокси-сервер обратного действия
Загрузка: загружена (/usr/lib/systemd/system/nginx.service; активировано; предустановленные настройки поставщика: отключены)
Состояние: активноФункционирует (включен) с Пн 2018-09-24 08:36:31 UTC; 1 мин 19 сек назад Основной PID: 13692 (nginx) CGroup: /system. slice/nginx.service ├─13692 nginx: основной процесс /usr/sbin/nginx └─13693 nginx: рабочий процесс

Проверьте, какая версия Nginx установлена.

Читайте также:  Генерация SSL сертификата в Linux

[linuxbabe@centos7 ~]$ nginx - v версия nginx: nginx/1.12.2

Введите IP-адрес вашего сервера в адресной строке браузера. Если отображается следующий экран, это подтверждает, что Nginx установлен корректно.

LEMP на CentOS

Ваш публичный IP-адрес сервера можно определить с помощью этой команды:

ip address

curl http://icanhazip.com

Брандмауэр вашего сервера может блокировать доступ к порту 80 извне. Чтобы разрешить публичный доступ, необходимо настроить брандмауэр iptables на прием трафика на этот порт, выполнив следующую команду.

sudo iptables - I INPUT - p tcp --dport 80 - j ACCEPT

Теперь ваш сервер способен хранить статические HTML-файлы, однако для работы с динамическим веб-сайтом необходимо установить MariaDB и PHP.

Инсталляция MariaDB на CentOS 7

MariaDB служит альтернативой MySQL. Чтобы установить его, выполните следующую команду:

sudo yum install mariadb-server mariadb - y

После завершения установки необходимо запустить программу.

sudo systemctl start mariadb

Активируйте автоматический запуск MariaDB при загрузке операционной системы.

sudo systemctl enable mariadb

systemctl status mariadb

mariadb.service - это сервер базы данных MariaDB. Статус загрузки: загружен (/usr/lib/systemd/system/mariadb.service; активирован; предустановлено производителем: выключено). Состояние:активно функционирует с Пн 2018-09-24 08:48:46 UTC; 23 с назад Основной PID: 13970 (mysqld_safe) CGroup: /system. slice/mariadb.service ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

[linuxbabe@centos7 ~]$ mysql --version mysql Ver 15.1 Distrib 5.5.60-MariaDB, для Linux (x86_64) с использованием readline 5.1

Теперь необходимо выполнить запуск скрипта безопасности.

Читайте также:  Инкрементальный бэкап в Linux

sudo mysql_secure_installation

Когда скрипт запросит у вас текущий пароль пользователя root, просто нажмите Enter, не вводя ничего. После этого введите Y и задайте новый пароль для root.

Установите Nginx, PHP-FPM и MariaDB на CentOS 7.

Когда вы установите пароль root, просто нажимайте Enter для подтверждения остальных запросов. (Имейте в виду, что буква Y написана с большой буквы, что указывает на выбор по умолчанию.)

CentOS 7 с Nginx и PHP-FPM.

Теперь давайте перейдем к разделу, связанному с PHP.

Установка PHP-FPM на систему CentOS 7.

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

sudo yum install php php-mysql php-fpm php-gd php-xml php-mbstring - y

Теперь необходимо внести изменения в файл конфигурации php-fpm:

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

Найдите следующую фразу:

listen = 127.0.0.1:9000

Конечно! Пожалуйста, предоставьте текст, который нужно перефразировать.

listen = /var/run/php-fpm/php-fpm.sock

затем отыщите следующие две строки:

;listen. owner = nobody ;listen. group = nobody

Удалите предыдущие точки с запятой. В заключение, измените владельца и группу с «apache» на «nginx».

Читайте также:  Обеспечьте безопасность своей DNS-конфиденциальности на Ubuntu 20.04/18.04 с помощью DNS через TLS

user = nginx group = nginx

После сохранения и закрытия файла запустите процессор PHP:

sudo systemctl start php-fpm

Затем активируйте php-fpm, чтобы он автоматически запускался при старте системы.

sudo systemctl enable php-fpm

Конфигурация виртуального хоста в Nginx

Создайте новый файл конфигурации виртуального хоста в директории /etc/nginx/conf.d.

sudo nano /etc/nginx/conf.d/example.com.conf

Включите в него указанные строки. Замените www.example.com и example.com на ваш домен. Убедитесь, что A-запись для вашего доменного имени установлена.

server { listen 80; server_namewww.example.com пример.com root /usr/share/nginx/html; index index.php index. html index. htm; location / { try_files $uri $uri/ /index.php?$query_string; } error_page 404 /404.html; error_page 500 502 503 504 /50x. html; location = /50x. html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

Сохраните изменения и закройте документ. После этого перезапустите nginx:

Установка LEMP на CentOS

Данный файл создан исключительно для тестовых целей. В целях безопасности вы можете удалить его, используя следующую команду:

sudo rm /usr/share/nginx/html/info.php

Теперь, когда LEMP успешно установлен, возможно, вы задаетесь вопросом о следующих шагах. Вы можете установить на него сайт, используя WordPress или Drupal. В следующем уроке я покажу, как это сделать.