PHP应该在哪里写会话?

刚刚在Centos 6.4上安装了PHP 5.4,使用Apache 2.2 VPS,并且收到一个拒绝打开会话权限的错误。 php.ini显示session.save_path = "/var/lib/php/session" 。 我是否使/var/lib/php/session权限0777? 或者让Apache运行一个给定的用户,然后把这个用户权限给/var/lib/php/session 。 我记得在过去改变会话path/tmp ,并想知道这是一个更好的策略。 我应该在哪里设置PHP来写会话?

就灵活性和更重要的安全性而言,您应该使用suEXEC + FCGId或类似的方式将Apacheconfiguration为运行脚本(读取:php-processes)作为另一个每个虚拟主机的非特权用户。 然后,您可以为每个用户分配一个自己的php.ini,并将会话path设置为仅用户可写的path(例如在users / home目录中)。 有很多这个常见的设置的教程,只要search“centos apache suexec php”

这可能是解决您的问题的最复杂的解决scheme,但也考虑到了未来的安全性和灵活性。

使Apache以用户/组apache / apache运行。 CentOS会自动为/var/lib/php/session设置正确的权限。

如果你有mod_fcgid那么apache用户将不能用作/var/lib/php/session用户/组所有者。

会话应与Memcached一起存储。

 session.save_handler = memcached session.save_path = "localhost:11211"