PHP 会话故障排除

PHP Sessions Troubleshooting

这里有很多关于 PHP 会话的问题,但是 none 的解决方案似乎对我有用。我制作了一个测试脚本来展示这个问题:

session1.php

session_start();

$_SESSION['user'] = 'Test';

header('location: session2.php');
exit;
?>

session2.php

session_start();

print_r($_SESSION);

?>

这是一个非常简单的示例,但是我在我的站点中使用会话来判断用户是否登录。它工作了一段时间,然后我不得不重新安装我的服务器,它就停止工作了。作为参考,这是我使用的问题,其中有很多可能的解决方案: Session variables not working php

这是我到目前为止尝试过的方法

drwxrwxrwx. 2 root apache 4096 Apr 9 16:55 /var/lib/php/session

到目前为止,

None 对我有用。我希望我忽略了一些简单的事情。

如您所见,$_SESSIONsession2.php 中完全是空的。 顺便说一句,我在对 php.ini 进行更改后重新启动了 apache :)

session1.php

session_start();

$_SESSION['user'] = 'Test';

header('location: session2.php');
exit;
?>

session2.php

用会话定义变量 $_SESSION['user']

session_start();

print_r($_SESSION['user']);

?>

好的,我知道了!谢谢大家的建议,原来我需要学习阅读错误日志...

我使用 vestacp,显然它将 PHP 会话默认为 /home/admin/tmp,我不确定如何更改,但您无法更改它(我做了)。但是还有另一个问题,该文件夹的所有权和权限不正确。结果我只需要一个 chmod -R 700 /home/admin/tmpchown -R root /home/admin/tmp - 我已经在另一个文件夹上试过了,但它不允许这样做。

顺便说一句,这里是触发“哦,我怎么不能更改会话目录”的错误行:

Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/admin/tmp) in Unknown on line 0