我的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
!似乎我的设置被忽略了。
我忽略了什么吗?那个古老的环境可以埋葬在哪里?或者我如何使新的有效?
(P.S。 - 我没有像其他类似的SO问题那样使用redis
处理程序)
答案 0 :(得分:0)
好的,我解决了自己的问题,一般性答案如下:
还有两件事可以改变路径并需要检查,
应用程序的PHP代码可能正在更改ini
指令,搜索ini_set(session.save_path
的代码
PHP代码可能正在使用session_save_path
PHP命令来覆盖ini
。也搜索代码(并注意两个下划线_
!)
我的案例的具体答案是SuiteCRM使用session_save_path
命令设置其路径,其值来自在Web根目录中找到的文件config.php
。那是我找到旧设置的地方,改变它解决了我的问题(好的,我希望)。