Skip to content

(debian) Установка и настройка php fpm

Max Kalyabin edited this page Dec 3, 2015 · 1 revision

1. Установить php5-fpm

apt-get install php5-fpm

2. Создать необходимые папки

mkdir -p /var/www/<domain>/htdocs
mkdir -p /var/www/logs/php
mkdir -p /var/www/mod-tmp
chown -R www-data:www-data /var/www/

3. Создать пул для пользователя www-data

В файл /etc/php5/fpm/pool.d/www.conf поместить содержимое:

[www-data]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.backlog = 4096 # на форумах пишут, что это значение помогает избежать проблемы с падением fpm. Реально будет использовано значение, равное net.core.somaxconn
listen.mode = 0660
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
;pm.max_requests = 500 # использовать только при необходимости
request_terminate_timeout = <установить такое же значение, как и max_execution_time в php.ini>

access.log = /var/www/logs/php/$pool.access.log

#php settings
php_admin_value[error_log] = /var/www/logs/php/www-data.error.log
php_admin_value[upload_tmp_dir] = /var/www/mod-tmp
php_admin_value[mbstring.internal_encoding] = "UTF-8"
php_admin_value[post_max_size] = 256M
php_admin_value[upload_max_filesize] = 256M
php_admin_value[session.name] = <любая уникальная последовательность цифр и букв, начинаться должно только с буквы>

4. Перезапустить php5-fpm

service php5-fpm restart

5. Ротация логов

В файл /etc/logrotate.d/php5-fpm поместить содержимое:

/var/log/php5-fpm.log /var/www/logs/php/*.log {
    rotate 10
    daily
    compress
    delaycompress
    notifempty
    minsize 300k
    missingok
    sharedscripts
    postrotate
        [ -s /var/run/php5-fpm.pid ] && kill -USR1 `cat /var/run/php5-fpm.pid`
    endscript
}

Если после всего вышеперечисленного браузер показывает пустую страницу без записей в лог - добавить в /etc/nginx/fastcgi_params строки:

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;