【发布时间】:2016-10-07 12:44:18
【问题描述】:
我的 PHP 网站 (SuiteCRM) 出现问题,无法登录用户,我发现这是由于无法在会话目录上写入。
我可以通过创建目录 /tmp/php_sessions 并为 Apache 用户 www-data 授予其写入权限来修复它。当用户登录时,我看到目录中填充了文件。
但是,Ubuntu Xenial 会在重新启动时删除我的整个 tmp 目录,所以我每次都必须重做一遍。我决定将我的save_path 移到别处。
更改我的 php.ini 文件中的内容并重新启动 Apache 后,我可以通过运行这个简单的脚本来检查它们是否有效:
<?php
echo ini_get("session.save_path");
phpinfo();
?>
这向我显示了对新路径的双重确认,首先回显/var/tmp/php_sessions,然后在所有phpinfo 信息的中间,显示与Local Value 和Master value 指令session.save_path 相同的值。
但是php使用的目录还是第一个,/tmp/php_sessions!我的设置似乎被忽略了。
我是否忽略了什么?那个古老的环境可以埋在哪里?或者我怎样才能使新的有效?
(附注 - 我没有像在另一个类似的 SO 问题中那样使用 redis 处理程序)
【问题讨论】:
-
您是否有权编辑您的
php.ini文件? -
是否手动设置了会话路径
-
尝试使用此代码手动添加会话路径
ini_set(session.save_path, '/path/to/your/folder'),将此代码放在<?php之后,然后使用session_start()开始会话 -
@VigneshChinnaiyan 我试过了,没用,结果一样。但是,您的评论使我走上了正轨,我能够解决问题。我将在几分钟后将其发布为答案。非常感谢!