Установка NGINX с поддержкой PHP
28 Feb 2017 | Автор: dd |Уже как то ставил NGINX, но там была просто оболочка, вполне пригодная для хостинга HTML одностраничников, но вот если у вас статический сайт на PHP, то вам помимо самого NGINX’a нужно также поддержка PHP, которую мы будем подрубать через PHP-FPM – альтернативную реализацию PHP FastCGI, которая шуршит побыстрее и имеет некоторые дополнительные бонусы, в которые мне неохота вдаваться, т.к инфы об этом предостаточно в инетах.
Изначальная установка такая же как и в первоначальном мануале, но далее подробности несколько изменятся. Поначалу апдейтим систему и устанавливаем NGINX и PHP-FPM
# yum -y install epel-release
# yum -y install nginx php php-fpm php-common
Перед запуском, т.к я не хочу чтобы NGINX у меня орал на всех айпишниках, надо поправить для дефолтовой конфигурации айпишники, где стоит о себе говорить.
Для этого в файле /etc/nginx/conf.d/default.conf меняем строку
listen 80 default_server;
на нужный ип (или ипы)
listen WEBSITE_IP:80 default_server;
и удаляем поддержку IPv6 (если она не нужна), снеся строку конфигу
listen [::]:80 default_server;
Если нам нужно запустить дефолтную страничку на каждом IP, то просто клонируем секцию описания сервера для всех используемых IP, меняя только его.
Теперь можно запустить оба сервиса
# service nginx start
# service php-fpm start
и прописать их автозагрузку
# chkconfig nginx on
# chkconfig php-fpm on
Если вы ставите как и я, на CentOS, то по дефолту страница не будет открываться, т.к фаервол блокирует пакеты. Поэтому придется открыть 80 порт для нужного IP и сохранить в табличку:
# iptables -I INPUT -p tcp --dport 80 -m state -d WEBSITE_IP --state NEW -j ACCEPT
# service iptables save
Вносим небольшие правки в конфиг php-fpm – выставляем правильного владельца процесса и работу через сокет
####### /etc/php-fpm.d/www.conf
listen = /var/run/php5-fpm.sock
user = nginx
group = nginx
##############################
Переходим к настройке NGINX:
Создаем директорию нашего сайта
# mkdir /var/www/html/site.ru
даем на нее права пользователю NGINX
# chown -R nginx:nginx /var/www/html/site.ru
создаем конфиг нашего сайта /etc/nginx/conf.d/site.ru.conf
##### vi /etc/nginx/conf.d/site.ru.conf
# Virtual host file starts here
server {
listen SERVER-IP:80;
access_log /var/log/nginx/access.site.ru.log;
error_log /var/log/nginx/error.site.ru.log;
server_name site.ru www.site.ru;
root /www/site.ru;
location / {
index index.htm index.html index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# Virtual host file ends here
##########################################
Проверяем конфиг на ошибки:
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ребуртим оба сервиса:
# service nginx restart
# service php-fpm restart
Создаем тестовый файлик test.php в корневой директории домена, чтобы проверить как работает php
# echo “<?php echo phpinfo(); ?>” > /var/www/html/site.ru/test.php
проверяем как пашет, зайдя на http://site.ru/test.php и видим что все отлично.
Установка NGINX с поддержкой PHP,Теги: nginx