Установка NGINX с поддержкой PHP

28 Feb 2017 | Автор: anchous |

Уже как то ставил 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 и видим что все отлично.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Теги:

Ваш отзыв