我的PHP会话路径是如何变化的?

时间:2013-04-15 13:18:58

标签: session plesk parallels

编辑 - 我的部分发生巨大错误

我发现另一个网站遇到了我知道不在同一台服务器上的问题。然后我意识到问题的原始网站也在不同的服务器上,并没有完全移动。有问题的服务器实际上是Plesk Parallels的服务器,问题是由于安全更新周末应用于服务器的补丁引起的。这个服务器确实有文件路径,我只需要将它chmod到777而不是77x才能工作。我为这种困惑道歉,并感谢大家的帮助。 +为所有人。 :)

原帖

我在共享托管服务器(也是我的)上有一个网站,从昨天开始给我这个错误:

 Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_678cf69f0f17b87c52136ee0280d23cc, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/domain.net/httpdocs/index.php on line 1

我已经检查了/usr/lib/php.ini/usr/local/lib/php.ini以查看它的设置位置,并且都说它已设置为/tmp目录,这是应该设置的位置,并且始终是。 /var/lib/php/session目录从未存在过。我确实创建了它并赋予它777权限,但这没有帮助。虽然这里更大的问题是为什么它改变开始。此站点没有.htaccess文件,我也无法在网站本身的任何位置找到此文件。

这是此服务器上唯一有此问题的网站,告诉我网站本地的内容。我只是无法弄清楚是什么。所以我的问题是:我应该寻找什么来检查共享主机环境中单个站点的会话保存路径设置,以找出它为这个客户端突然改变的原因?

仅供参考,我正在运行WHM服务器。

由于

3 个答案:

答案 0 :(得分:2)

session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../tmp'));

您需要在开始会话之前添加上述代码。

答案 1 :(得分:1)

您似乎对服务器上的/ var目录没有写入权限。这有点奇怪,但你可以解决它。在调用session_start()之前调用session_save_path()并为其指定服务器可写入的目录的名称。 More details here

答案 2 :(得分:1)

我发现另一个网站遇到了我知道不在同一台服务器上的问题。然后我意识到问题的原始网站也在不同的服务器上,并没有完全移动。有问题的服务器实际上是Plesk Parallels的服务器,问题是由于安全更新周末应用于服务器的补丁引起的。这个服务器确实有文件路径,我只需要将它chmod到777而不是77x才能工作。我为这种困惑道歉,并感谢大家的帮助。 +为所有人。 :)