NGINX на CentOS 7 — установка и настройка

Термины по теме: 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=1

Обновляем систему и список пакетов:

yum update

* если система запросит подтверждение, отвечаем Y.

Устанавливаем NGINX следующей командой:

yum install nginx

По умолчанию, в CentOS работает брандмауэр , поэтому необходимо добавить рабочие порты 80 ( http ) и 443 ( https ) в правила на исключение:

firewall-cmd —permanent —add-port=80/tcp

firewall-cmd —permanent —add-port=443/tcp

* в данном примере добавлены порты 80 и 443. Первый используется в NGINX по умолчанию. Если планируется использовать другой, необходимо добавить его. Или наоборот — если не запланирована работа по безопасному протоколу https, можно его не включать.

Перезапускаем firewalld:

firewall-cmd —reload

Теперь добавляем NGINX в автозапуск при загрузке CentOS

systemctl enable nginx

И запускаем веб-сервер:

systemctl start nginx

Для проверки запустите браузер на другом компьютере и введите в адресную строку IP-адрес сервера, который был настроен. Должна загрузиться тестовая страница, наприимер:

Тестовая страница правильно настроенного сервера NGINX

NGINX + PHP + PHP-FPM

В чистом виде, веб-сервер NGINX используется редко. Настроим связку с PHP и его обработчиком — PHP-FPM .

Для начала, устанавливаеми тот и другой следующими командами:

yum install php

yum install php-fpm

Разрешаем автозапуск php-fpm и запускаем его:

systemctl start php-fpm

systemctl enable php-fpm

Готово.

Настройка NGINX для работы с PHP и PHP-FPM

Открываем настройки сайта по умолчанию:

vi /etc/nginx/conf.d/default.conf

Редактируем секцию location:

location / {
root /usr/share/nginx/html;
index index.php;
}

* здесь мы поменяли index.html на index.php . Эта настройка позволит автоматически искать и запускать файл index.php, если путь к скрипту не указан явно.

Приводим к следующему виду секцию server :

location ~ .php$ {
set $root_path /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}

* где /usr/share/nginx/html — корневой путь по умолчанию для хранения сайта; 9000 — порт, на котором работает php-fpm.

Переименовываем индексный файл для текущего сайта по умолчанию:

mv /usr/share/nginx/html/index.html /usr/share/nginx/html/index.php

Отредактируем его (содержимое заменим на это):

vi /usr/share/nginx/html/index.php

<?php phpinfo(); ?>

Перезапускаем nginx:

systemctl restart nginx

Открываем сайт — мы должны увидеть сводную информацию по серверу и работе PHP.

* Если требуется установить PHP версии 7, читайте инструкцию Установка PHP 7 на Linux CentOS 7 .

Совместная работа NGINX и PHP-FPM через сокет

В конфигурационном файле NGINX меняем эту строчку:

fastcgi_pass 127.0.0.1:9000;

На эту:

fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;

Открываем настройки php-fpm:

vi /etc/php-fpm.d/www.conf

Меняем:

listen = 127.0.0.1:9000

На:

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

Перезапускаем nginx и php-fpm:

systemctl restart nginx

systemctl restart php-fpm

EnglishRussianUkrainian