Назад | Перейти на главную страницу

Проблемы с разрешениями на данные сеанса, несколько UID в нескольких пулах PHP-FPM

Я запускаю сервер nginx с 40 идентичными веб-приложениями на 40 разных портах в 40 разных пулах PHP-FPM. Каждый пул запускается для отдельного пользователя.

Мой sessions.save_path в php.ini является /tmp/php_sessions. Скажем, я впервые приезжаю http://mywebsite.com:5007. Я могу наблюдать, как этот файл появляется в /tmp/php_sessions:

-rw------- 1 www-data07 www-data07     0 jan.  17 00:35 sess_bb84gmtago2u33g1jmtbhdcu80

Затем я посещаю http://mywebsite.com:5008. В моем браузере я могу прочитать эту ошибку

Warning: Unknown: open(/tmp/php_sessions/sess_bb84gmtago2u33g1jmtbhdcu80, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp/php_sessions) in Unknown on line 0

Я понимаю, что это потому, что пользователь www-data08 пытается записать в файл, где только www-data07 имеет права на запись. Но почему не www-data08 сделать собственные данные сеанса? Как я могу это исправить?

Здесь я немного поспешил на спусковой крючок. В моем конкретном случае проблема заключалась в том, что все 40 веб-приложений использовали один и тот же файл cookie в моем браузере. Когда я перешел с порта 5007 на порт 5008, мой браузер пытался продолжить сеанс с порта 5007, но с другим UID серверной части.