本地php.ini sessions.save_path问题 - 会话无法识别

时间:2012-06-28 09:30:30

标签: session php

我有一个运行用户管理脚本的客户端。主机提供程序已阻止allow_url_fopen但正在使用suPHP,因此我们创建了一个php.ini的本地副本,其allow_url_fopen设置为“on”。

现在唯一的问题是你不能再登录使用脚本 - 它说“成功登录你” - 然后将你记录下来(因为会话要么没有被创建,要么是在错误的地方 - 借口我缺乏服务器知识)。

以下是本地php.ini

中的设置
upload_tmp_dir = "/home/aspac124/public_html/tmp"
register_globals = On
memory_limit = 256M
session.save_path = "/home/aspac124/public_html/tmp"
safe_mode = off
upload_max_filesize = 32M
allow_url_fopen = On
zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so"

我不确定托管服务提供商为什么要为客户端启用register_globals。但这是session.save_path的正确位置吗?我已经检查过,文件夹存在,我也把它设置为777只是为了确保但没有幸福。

使用相同系统的另一个客户端有类似的问题,并告诉我他将tmp /文件夹更改为他的主目录,一切都很好。

我试图将保存路径设置为/ tmp,/ home / aspac124 / tmp,没有任何反应 - 只是正常注销。如果我构成一个路径,那么我会得到一个“没有这样的文件或目录”错误。

当我把它作为“/ home / tmp”时,我收到以下消息

Warning: session_start() [function.session-start]: open(/home/tmp/sess_4417d180e599b5f12fc34a28f5467d21, O_RDWR) failed: Permission denied (13) in /home/aspac124/public_html/domainnamehere.com/includes/lightwork_session.php on line 45

这意味着什么,home / tmp是正确的位置,如果是这样,我应该怎么做 - 文件夹权限是否应该更改?

编辑:我无法访问域根目录以外的文件夹,因此无法更改文件权限 - 必须等待客户端,但在此之前需要尽可能多的信息。

提前致谢

编辑:只为阅读此内容的任何人阅读。请确保您的本地php.ini文件设置应用于可能需要它的任何子文件夹。我正在向根目录下的子文件夹中的文件发出ajax请求,这就是问题所在。

1 个答案:

答案 0 :(得分:1)

您应该放置会话并将目录上传到文档根目录之外,否则任何人都可以访问这些目录,这可能导致远程脚本注入,会话劫持等。

您应该创建一个tmp目录作为/home/aspac124/tmp并设置权限,以便Apache可以写入此目录。也许将chmod设置为0760。