Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2013-07-09 12:18:18
Size: 762
Editor: DarkErr
Comment:
Revision 13 as of 2016-07-09 13:40:24
Size: 4242
Editor: ?PivuSd
Comment: Добавил ссылку на статью.
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
{{{#!wiki caution
'''Статья не завершена.'''
Line 7: Line 5:
}}}
Line 9: Line 6:

FPM (Менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями обычно используемыми для высоконагруженных сайтов.
Line 13: Line 12:
== Установка == = Установка =
Line 15: Line 14:
=== Установка nginx ===

=== Установка php-fpm ===
== Установка nginx ==
Устанавливаем nginx (как root):
{{{
aptitude install nginx;
}}}
Line 20: Line 21:
== Конфигурирование == == Установка php-fpm ==
Устанавливаем пакеты php5-fpm php5-cgi:
{{{
aptitude install php5-fpm php5-cgi;
}}}
Line 22: Line 27:
=== Конфигурирование nginx === До окончания настроек рекомендуется остановить nginx и php-fpm:
{{{
 /etc/init.d/nginx stop;
 /etc/init.d/php5-fpm stop;
}}}
Line 24: Line 33:
=== Конфигурирование php-fpm === = Конфигурирование =

== Конфигурирование nginx ==
Нужно создать {{{location}}} в котором указать рабочую директорию для php скриптов (например {{{/home/www-data/mysite}}} ) и параметры соединения с php-fpm:

{{{
server{
    #имя сервера:
    server_name mysite.com;
    
    #логи
    access_log /var/log/nginx/mysite.access.log;
    error_log /var/log/nginx/mysite.error.log;
    
    # корневая директория
    root /home/www-data/mysite;
        
    location ~ \.php$ {
        try_files $uri = 404;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    # порядок индексов
    location /
    {
        index index.php index.html index.htm;
    }
    
    #кастомная страница 404
    location /errors {
         alias /home/www-data/mysite/errors ;
    }
    error_page 404 /errors/404.html;
}

}}}


== Конфигурирование php-fpm ==
Основные конфигурационные файлы {{{/etc/php5/fpm/php.ini}}} и {{{/etc/php5/fpm/pool.d/www.conf}}}.
В файле www.conf наиболее интересным параметром является режим работы менеджера дочерних процессов, он может работать в трёх режимах:
 * static - фиксированное число дочерних процессов (определяться параметром {{{pm.max_children}}});
 * dynamic - число дочерних процессов определяется на основе следующих директив. В этом режиме всегда будет хотя бы 1 дочерний процесс.
 * ondemand - по требованию, дочерние процессы не будут созданы при старте. Дочерние процессы создаются при помощи fork, когда приходит новый запрос на соединение.

По умолчанию соединение происходит через Unix-сокеты, {{{ unix:/var/run/php5-fpm.sock;}}}

Более подробную информацию о директивах конфигурационного файла Вы можете найти на сайте проекта [[http://www.php.net/manual/ru/install.fpm.configuration.php|php-fpm configuration file]].
Line 27: Line 87:
##== See also == == См. также ==
 * [[http://nginx.org/ru/|Официальный сайт Nginx]]
 * [[http://www.php.net/manual/ru/install.fpm.php|php-fpm]]
 * [[http://interface31.ru/tech_it/2016/04/nginx-php-fpm-debian-ubuntu.html|Настраиваем веб-сервер на базе Nginx + PHP-FPM в Debian / Ubuntu Server]]

Translation(s): none


Описание конфигурирования связки nginx и php-fpm.

FPM (Менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями обычно используемыми для высоконагруженных сайтов.

Установка

Установка nginx

Устанавливаем nginx (как root):

aptitude install nginx;

Установка php-fpm

Устанавливаем пакеты php5-fpm php5-cgi:

aptitude install php5-fpm php5-cgi;

До окончания настроек рекомендуется остановить nginx и php-fpm:

 /etc/init.d/nginx stop;
 /etc/init.d/php5-fpm stop;

Конфигурирование

Конфигурирование nginx

Нужно создать location в котором указать рабочую директорию для php скриптов (например /home/www-data/mysite ) и параметры соединения с php-fpm:

server{
    #имя сервера:
    server_name mysite.com;
    
    #логи
    access_log /var/log/nginx/mysite.access.log;
    error_log  /var/log/nginx/mysite.error.log;
    
    # корневая директория
    root /home/www-data/mysite;
        
    location ~ \.php$ {
        try_files $uri = 404;
        include fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
    
    # порядок индексов    
    location /
    {
        index  index.php index.html index.htm;
    }
    
    #кастомная страница 404
    location /errors {
         alias /home/www-data/mysite/errors ;
    }
    error_page 404 /errors/404.html;        
}

Конфигурирование php-fpm

Основные конфигурационные файлы /etc/php5/fpm/php.ini и /etc/php5/fpm/pool.d/www.conf. В файле www.conf наиболее интересным параметром является режим работы менеджера дочерних процессов, он может работать в трёх режимах:

  • static - фиксированное число дочерних процессов (определяться параметром pm.max_children);

  • dynamic - число дочерних процессов определяется на основе следующих директив. В этом режиме всегда будет хотя бы 1 дочерний процесс.
  • ondemand - по требованию, дочерние процессы не будут созданы при старте. Дочерние процессы создаются при помощи fork, когда приходит новый запрос на соединение.

По умолчанию соединение происходит через Unix-сокеты,  unix:/var/run/php5-fpm.sock;

Более подробную информацию о директивах конфигурационного файла Вы можете найти на сайте проекта php-fpm configuration file.

См. также