session_save_path 设置失败
Posted
技术标签:
【中文标题】session_save_path 设置失败【英文标题】:session_save_path setting failed 【发布时间】:2012-07-31 07:31:45 【问题描述】:我无法从 php 脚本中设置我的自定义 php 会话保存路径。
ini_set('session.save_path', "/var/www/domain.com/sessions");
echo ini_get('session.save_path')."<br />";
session_save_path("/var/www/domain.com/sessions");
echo session_save_path()."<br />";
上面的代码打印出来
/var/www/domain.com/tmp
/var/www/domain.com/tmp
这意味着默认设置保持不变。
我非常受限于任何解决方法: 1) 无法访问 php.ini 2) htaccess 导致错误 500 - php_value 指令被禁用
所以我真的需要从 php 脚本内部覆盖会话存储。
有什么办法解决这个问题吗?
(目录/var/www/domain.com/sessions 存在于owner/group = root/root 下,为他人正确设置了写权限。与默认tmp 目录完全相同。)
【问题讨论】:
为什么需要更改此设置? 用于子域特定的会话分离。 可以设置会话cookie的域吗?那会有帮助吗?顺便说一句:你试过session_save_path 您可以尝试将session.cookie_domain
ini 设置更改为subdomain.example.com
。如果这样做,会话 cookie 仅在此子域上有效。
好吧,这对我没有多大帮助,因为我需要设置每个子域会话到期(= 独立垃圾收集)。 AFAIK 将会话文件分离到不同的文件夹是唯一的解决方案。
【参考方案1】:
Apache 当前将 PHP 作为 PHP_MOD 运行。
AFAIK 在 PHP 采用 CGI 或 FASTCGI 之前没有解决方案。
【讨论】:
以上是关于session_save_path 设置失败的主要内容,如果未能解决你的问题,请参考以下文章
如何为 tomcat beanstalk 设置正确的 SES 身份策略?