Хорошо, у меня установлен php-fpm / apache / apc на ubuntu 12.04 с веб-сайтом, на котором работает корзина покупок php.
Я получаю наводнения с ошибками разрешений, такими как «Не удалось записать данные сеанса (файлы). Убедитесь, что текущая настройка session.save_path верна» или «Предупреждение PHP: session_start () ..... не удалось: разрешение отклонено (13 ) в ..."
И я заметил интересную проблему в папке sessionsdata, которая может указывать на то, что происходит. Вот ls -la папки sessionsdata
-rw-rw-r-- 1 www-data phpsite 816 Aug 29 16:32 sess_r9tfvubu6stg6v918qp4b7tcg0
-rw-rw-r-- 1 phpsite phpsite 816 Aug 29 16:32 sess_t99844p7rk6ldk548lplupv485
-rw-rw-r-- 1 www-data phpsite 864 Aug 29 16:30 sess_tdh221j4p6o3pvupc965h6pl56
-rw-rw-r-- 1 www-data phpsite 816 Aug 29 16:31 sess_tdtpp6he2quk7651tsekrhulr5
Теперь в моем файле apache /etc/apache2/conf.d/php5-fpm у меня есть
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Order Deny,Allow
Deny from all
</FilesMatch>
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Action application/x-httpd-php /fcgi-bin/php5-fpm virtual
Alias /fcgi-bin/php5-fpm /fcgi-bin-php5-fpm
<Location /fcgi-bin/php5-fpm>
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</Location>
FastCgiExternalServer /fcgi-bin-php5-fpm -appConnTimeout 10 -idle-timeout 300 -socket /tmp/php5-fpm.sock -pass-header Authorization
И в моем файле виртуального хоста у меня есть
<IfModule mod_fastcgi.c>
Alias /fcgi-bin/php5-fpm /fcgi-bin-php5-fpm-phpsite
FastCgiExternalServer /fcgi-bin-php5-fpm-phpsite -appConnTimeout 10 -idle-timeout 300 -socket /tmp/php5-fpm-phpsite.sock -pass-header Authorization
</IfModule>
И, наконец, мой файл пула phpsite у меня есть
[phpsite]
user = phpsite
group = phpsite
listen.owner = phpsite
listen.group = phpsite
listen = /tmp/php5-fpm-phpsite.sock
и разрешения для папки с данными сеансов
drw-rwSr--+ 2 phpsite phpsite 2514944 Aug 29 16:46 .
Я не могу понять, почему некоторые сеансы написаны с владением www-data: phpsite, а другие - с владением phpsite: phpsite ...
Я знаю, что мои разрешения каким-то образом испорчены, но я не вижу, что в них не так. Я также получаю ошибку разрешений fopen на сайте!
Кто-нибудь может мне помочь? Джон
Пользователь phpsite может только обновлять существующие сеансы - он не может создавать новые - chmod u + x yoursessiondatadirectory - похоже, у вас также есть PHP, работающий как модуль в Apache.
На самом деле нет веских причин для запуска производственной системы с Apache + php-fpm: используйте mod_php (и MPM до форка) с Apache. Если вы используете nginx, G-Wan, Lighttpd, используйте php-fpm.