NGINX: PHP-FPM — Unknown: Failed to write session data (files).

Автор: | 10/05/2014
 

nginx_logoПосле переезда на NGINX+ PHP-FPM — в логе ошибок стали появляться записи вида:

2014/10/04 09:51:00 [error] 15762#0: *155337 FastCGI sent in stderr: «PHP message: PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0» while reading upstream, client: 37.***.***.56, server: rtfm.co.ua, request: «POST /wp-admin/admin-ajax.php HTTP/1.1», upstream: «fastcgi://127.0.0.1:9003», host: «rtfm.co.ua», referrer: «http://rtfm.co.ua/wp-admin/post.php?post=5496&action=edit&message=10»
2014/10/04 09:51:56 [error] 15762#0: *155337 FastCGI sent in stderr: «PHP message: PHP Warning: Unknown: open(/var/lib/php/session/sess_5j5k1r3t3dailk3s7lq8871gu7, O_RDWR) failed: Permission denied (13) in Unknown on line 0» while reading upstream, client: 37.***.***.56, server: rtfm.co.ua, request: «POST /wp-admin/admin-ajax.php HTTP/1.1», upstream: «fastcgi://127.0.0.1:9003», host: «rtfm.co.ua», referrer: «http://rtfm.co.ua/wp-admin/post.php?post=5496&action=edit&message=10»

Проверяем права:

# ls -l /var/lib/php/
total 228
drwxrwx--- 2 root apache 229376 Sep 30 08:59 session

Создаём каталог для каждого пользователя каждого php-fpm пула:

# mkdir /var/lib/php/session/rtfm

Устанавливаем владельца, который указан в user/group пула, и даём права на доступ к каталогу только ему:

# chown rtfm:rtfm /var/lib/php/session/rtfm && chmod 700 /var/lib/php/session/rtfm

Редактируем настройки пула, в данном случае это файл /etc/php-fpm.d/rtfm.co.ua.conf, добавляем параемтр:

php_admin_value[session.save_path] = /var/lib/php/session/rtfm

Перезапускаем PHP-FPM:

# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]

Устанавливаем полный доступ на директорию session:

# chmod 777 /var/lib/php/session/

Проверяем каталог:

# ls -l /var/lib/php/session/rtfm
total 0
-rw------- 1 rtfm rtfm 0 Oct  4 10:10 sess_5j5k1r3t3dailk3s7lq8871gu7
-rw------- 1 rtfm rtfm 0 Oct  4 10:10 sess_80fslkcad1mmhbm7eeil6pf937
-rw------- 1 rtfm rtfm 0 Oct  4 10:10 sess_pfkp0nq0epb2p8jen5gf6nhtt1

Повторяем для каждого пула.

Готово.