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


local php.ini sessions.save_path issue - sessions not recognised

>我有一个运行用户管理脚本的客户端。主机提供程序阻止了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请求,这就是问题所在。

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

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