Установка Nginx · 3 min read · Oct 24, 2025
Как установить Nginx с PHP и MySQL (LEMP стек) на CentOS 7
Nginx (произносится как “engine x”) — это бесплатный, открытый, высокопроизводительный HTTP-сервер. Nginx известен своей стабильностью, богатым набором функций, простой конфигурацией и низким потреблением ресурсов. Этот учебник показывает, как установить Nginx на сервер CentOS 7 с поддержкой PHP (через PHP-FPM) и поддержкой MySQL (Mariadb).
1 Предварительная заметка
В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.1.105. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их, где это необходимо.
2 Включение дополнительных репозиториев
Nginx недоступен из официальных репозиториев CentOS, поэтому мы добавляем репозиторий проекта Nginx для его установки:
vi /etc/yum.repos.d/nginx.repo [nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=13 Установка MySQL
Сначала мы устанавливаем Mariadb. Mariadb — это бесплатный форк MySQL. Выполните эту команду в оболочке:
yum install mariadb mariadb-server net-toolsЗатем мы создаем системные ссылки для автозагрузки MySQL (чтобы MySQL запускался автоматически при загрузке системы) и запускаем сервер MySQL:
systemctl enable mariadb.service
systemctl start mariadb.serviceТеперь проверьте, что сеть включена. Выполните
netstat -tap | grep mysqlЭто должно показать что-то вроде этого:
[root@example ~]# netstat -tap | grep mysql
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 10623/mysqld Выполните
mysql_secure_installationчтобы установить пароль для пользователя root (в противном случае любой сможет получить доступ к вашей базе данных MySQL!):
[root@example ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not foundNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!Чтобы войти в MariaDB и обеспечить ее безопасность, нам нужен текущий
пароль для пользователя root. Если вы только что установили MariaDB, и
вы еще не установили пароль root, пароль будет пустым,
поэтому вам просто нужно нажать Enter здесь.Введите текущий пароль для root (нажмите Enter для отсутствия):
OK, успешно использован пароль, продолжаем...Установка пароля root гарантирует, что никто не сможет войти в пользователя root MariaDB
без надлежащей авторизации.Установить пароль root? [Y/n] <-- ENTER
Новый пароль: <-- yourrootsqlpassword
Повторите новый пароль: <-- yourrootsqlpassword
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
... Успех!По умолчанию установка MariaDB имеет анонимного пользователя, позволяя любому
войти в MariaDB без необходимости создания учетной записи пользователя для
них. Это предназначено только для тестирования и для того, чтобы установка
проходила немного легче. Вы должны удалить их перед переходом в
производственную среду.Удалить анонимных пользователей? [Y/n] <-- ENTER
... Успех!Обычно root должен иметь возможность подключаться только с 'localhost'. Это
гарантирует, что кто-то не сможет угадать пароль root из сети.Запретить удаленный вход root? [Y/n] <-- ENTER
... Успех!По умолчанию MariaDB поставляется с базой данных с именем 'test', к которой может
доступ получить любой. Это также предназначено только для тестирования и
должно быть удалено перед переходом в производственную среду.Удалить тестовую базу данных и доступ к ней? [Y/n] <-- ENTER
- Удаление тестовой базы данных...
... Успех!
- Удаление привилегий на тестовую базу данных...
... Успех!Перезагрузка таблиц привилегий обеспечит немедленное применение всех изменений,
внесенных до сих пор.Перезагрузить таблицы привилегий сейчас? [Y/n] <-- ENTER
... Успех!Очистка...Все готово! Если вы завершили все вышеперечисленные шаги, ваша установка MariaDB
теперь должна быть безопасной.Спасибо за использование MariaDB!
[root@example ~]#[root@server1 ~]# mysql_secure_installation
4 Установка Nginx
Nginx доступен как пакет с nginx.org, который мы можем установить следующим образом:
yum install nginxЗатем мы создаем системные ссылки для автозагрузки nginx и запускаем его:
systemctl enable nginx.service
systemctl start nginx.serviceСуществует вероятность, что вы получите ошибку, например, порт 80 уже используется, сообщение об ошибке будет выглядеть так:
[root@server1 ~]# service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[FAILED]
[root@server1 ~]#Тогда это означает, что существует вероятность, что служба apache работает. Остановите службу и затем запустите службу для NGINX следующим образом:
systemctl stop httpd.service
yum remove httpd
systemctl disable httpd.servicesystemctl enable nginx.service
systemctl start nginx.serviceИ откройте порты http и https в брандмауэре:
firebase-cmd --permanent --zone=public --add-service=http
firebase-cmd --permanent --zone=public --add-service=https
firebase-cmd --reloadРезультирующий вывод в оболочке будет выглядеть так:
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@example ~]# firewall-cmd --reload
success
[root@example ~]#Введите IP-адрес или имя хоста вашего веб-сервера в браузере (например, http://192.168.1.105), и вы должны увидеть страницу приветствия nginx:

Get new posts in your inbox
No spam. Unsubscribe anytime.