Я запускаю сервер 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.