本文讨论的是在PHP5环境下,使用PHP-FPM自定义session_save_path来个性化session存储目录的一个小技巧。
环境描述:
这样就实现了用户级session_handle兼容方案了。
- FreeBSD 6.4-STABLE
- PHP-5.2.10-FPM-0.5.13
- NGINX 0.7.67
- session_handle=file
- session_save_path=NULL (此时PHP会使用/tmp或者/var/tmp作为储存目录)
- safe_mode on
- /tmp目录属主与PHP-FPM pool属主不一致
- 程序试图在/tmp目录下建立session储存目录 问题便会出现,显示为比较经典的"Warning: SAFE MODE Restriction in effect. bla bla bla...." 当然情况还可以更操蛋一点,来一个 @session_start 吧,你只会看到一个空白页面。
- <section name="pool">
- <value name="name">User</value>
- <value name="listen_address">/tmp/php_oimg.sock</value> /*sock连接更高效*/
- <value name="php_defines">
- <value name="safe_mode">on</value> /*安全模式还是有必要的*/
- <value name="open_basedir">/var/www/user/oimg</value> /*双保险也得要*/
- <value name="session.save_path">/var/www/user/okimg/session</value> /*关键的一句*/
- </value>
- </section>

回复评论