Установка Nginx 1.4.x на систему Unix

Эта документация описывает установку и настройку PHP с менеджером процессов PHP-FPM для HTTP-сервера Nginx 1.4.x.

Это краткое руководство предполагает, что Nginx собран из исходного кода и поэтому бинарные файлы и файлы конфигурации лежат в директории /usr/local/nginx. Если нет, и вы получили Nginx другим способом, тогда, пожалуйста, обратитесь к » Nginx Wiki, чтобы получить похожее на это руководство для вашей установки.

В этом кратком руководстве будут рассмотрены основы настройки Nginx-сервера для обработки PHP-приложений и их обслуживания на порту 80. Рекомендовано изучить документацию Nginx и PHP-FPM, если нужно оптимизировать установку за рамками этой документации.

Пожалуйста, обратите внимание, что в этой документации номера версий были заменены на символ «x», чтобы документация оставалась корректной в будущем. Пожалуйста, замените «x» на необходимый номер версии.

  1. Рекомендовано зайти » на страницу установки Nginx Wiki, чтобы получить и установить HTTP-сервер Nginx на свою систему.

  2. Распаковать полученный исходный код PHP:

     tar zxf php-x.x.x 
  3. Настроить и собрать PHP. Здесь вы настраиваете PHP с нужными параметрами. Запустите команду ./configure --help, чтобы получить список доступных опций. В примере будут сделаны простые настройки для включения менеджера процессов PHP-FPM с поддержкой модуля MySQLi.

     cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install 
  4. Переместить файлы конфигурации в правильные места

     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 
  5. Важно запретить серверу Nginx передавать запросы в бэкенд менеджера PHP-FPM, если файл не существует, что помогает предотвратить атаки произвольного внедрения скрипта.

    Это исправляют установкой для директивы cgi.fix_pathinfo значения 0 в файле php.ini.

    Отредактировать файл php.ini:

     vim /usr/local/php/php.ini 

    Найти директиву cgi.fix_pathinfo= и изменить вот так:

     cgi.fix_pathinfo=0 
  6. Файл 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, если нужны дополнительные настройки.

  7. Настроить Nginx на поддержку обработки PHP-приложений:

     vim /usr/local/nginx/conf/nginx.conf 

    Измените блок «location» по умолчанию так, чтобы HTTP-сервер знал, что он должен обслуживать файлы .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 
  8. Создайть тестовый файл

     rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php 

    Теперь откройте в браузере адрес http://localhost. Должна отобразиться информация, которую выводит функция phpinfo().

Выполнив описанные шаги, вы получите работающий Nginx-сервер с поддержкой PHP в качестве модуля интерфейса FPMSAPI. Конечно, для Nginx и PHP доступно больше параметров конфигурации. Наберите в директории с исходным кодом команду ./configure --help, чтобы получить больше информации.

To Top