Установка Nginx 1.4.x на систему Unix
Данная документация описывает процесс установки и настройки PHP с PHP-FPM для Nginx 1.4.x HTTP сервера.
Данное руководство подразумевает, что вы собрали Nginx из исходников, следовательно,
все бинарные файлы и файлы конфигурации располагаются в
/usr/local/nginx
. Если нет, и вы получили Nginx другим способом, тогда,
пожалуйста, обратитесь к » Nginx Wiki, чтобы перевести
данное руководство для вашей установки.
Данное руководство охватывает азы настройки Nginx сервера, для обработки PHP приложений и отображения их на порту 80. Рекомендуется изучить документацию Nginx и PHP-FPM, если вы хотите оптимизировать вашу установку за рамками данной документации.
Пожалуйста, обратите внимание, что во всей данной документации номера версий были заменены на 'x', чтобы данная документация оставалась корректной в будущем. Пожалуйста, замените 'x' на необходимый вам номер версии.
-
Рекомендуется посетить » страницу установки на Nginx Wiki, для информации о получении и установке Nginx.
-
Получение и распаковака исходники PHP:
tar zxf php-x.x.x
-
Настройка и сборка PHP. В этом разделе описывается настройка и сборка PHP из исходных кодов. Запустите ./configure --help для получения списка доступных опций. В нашем примере мы сделаем простые настройки с PHP-FPM и поддержкой MySQLi.
cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install
-
Перемещение файлов настройки в нужные директории
cp php.ini-development /usr/local/php/php.ini cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin
-
Важно, что мы запрещаем Nginx от отправлять запросы в бэкенд PHP-FPM, если файл не существует, что помогает избежать атаки инъекции скрипта.
Мы может исправить это путем установки директивы cgi.fix_pathinfo равной
0
в нашем php.ini файле.Редактирование php.ini:
vim /usr/local/php/php.ini
Найдите опцию
cgi.fix_pathinfo=
и измените ее следующим образом:cgi.fix_pathinfo=0
-
php-fpm.conf должен быть модифицирован, чтобы точно определить, что php-fpm должен работать под пользователем www-data и группой www-data до того, как мы запустим сервис:
vim /usr/local/etc/php-fpm.d/www.conf
Найдите и измените следующее:
; Unix user/group of processes ; Замечание: Пользователь является обязательным. Если группа не установлена, ; то будет использована стандартная группа пользователя. user = www-data group = www-data
Теперь можно запускать сервис php-fpm:
/usr/local/bin/php-fpm
Более в этом рукомодстве мы не будет касаться настройки php-fpm. Если вам необходимо произвести дополнительные настройки - обратитесь к документации по php-fpm.
-
Теперь Nginx должен быть настроен на поддержку выполнения PHP:
vim /usr/local/nginx/conf/nginx.conf
Измените блок "location", заданный по умолчанию, так, чтобы можно было обрабатывать .php файлы:
location / { root html; index index.php index.html index.htm; }
Следующий шаг - убедиться, что .php файлы отправляются в бэкенд PHP-FPM. Введите следующее:
location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
Перезапустите Nginx.
sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx
-
Создайте тестовый файл
rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
Теперь откройте в браузере http://localhost. Должна отобразиться информация phpinfo().
Следуя вышеуказанным шагам, вы получите рабочий Nginx сервер с
поддержкой PHP как модуля FPM
SAPI
. Конечно, доступно
большое число опций настроек для Nginx и PHP. Для более
подробной информации наберите ./configure --help
в соответствующем дереве исходных кодов.