我的PHP会话路径是如何改变的?
编辑 - 大错我的一部分我的PHP会话路径是如何改变的?
我发现了另一个网站,有这样我就知道是不是在同一台服务器上的问题。然后我意识到带有问题的原始网站也位于不同的服务器上,并且尚未完全移除。有问题的服务器实际上是一台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服务器。
谢谢
我发现另一个网站有问题,我知道不在同一台服务器上。然后我意识到带有问题的原始网站也位于不同的服务器上,并且尚未完全移除。有问题的服务器实际上是一台Plesk Parallels的服务器,并且该问题是由于安全更新而在周末应用于服务器的补丁导致的。这台服务器确实有文件路径,我只需将其chmod改为777而不是77x即可运行。我对这种困惑表示歉意,并感谢所有人试图提供帮助。 +的所有。 :)
您为什么认为该问题是由安全更新引起的? –
@OlegNeumyvakin这是最近对该服务器做过的唯一一件事,它已经更新了关于这个问题被发现的时间。 – James
您似乎没有对服务器上/ var目录的写入权限。这有点奇怪,但你可以解决它。在调用session_start()之前,调用session_save_path()并为其指定服务器可写的目录名称。 More details here
这是否意味着我的服务器上的站点应该有权访问var目录?不过,我不确定保存路径是如何改变的。它一直是/ tmp目录。 – James
session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../tmp'));
您需要在开始会话前添加上面的代码。
'grep -r/var/lib/php/session//'可能会回答它 – hek2mgl
@ hek2mgl我现在让它运行。看起来它需要一段时间。我会让你知道的,谢谢。 – James
@ hek2mgl这似乎并不想完成。它继续前进4行然后超时。 /etc/alternatives/tcl-config.x86_64 grep:/ etc/httpd/logs/fpcgisock:没有这样的设备或地址 grep:/etc/alternatives/tcl-libstub.x86_64:没有这样的文件或目录 grep:/etc/alternatives/tcl-config.x86_64 :没有这样的文件或目录 grep:/tmp/mysql.sock:没有这样的设备或地址 – James