【发布时间】:2012-06-28 09:30:30
【问题描述】:
我有一个正在运行用户管理脚本的客户端。主机提供商阻止了 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 请求,这就是问题所在。
【问题讨论】:
-
这是个坏主意
/home/aspac124/public_html/tmp.. 一个非常坏的主意。切勿将会话数据放在可公开访问的目录中。从来没有。 -
这是托管公司希望客户拥有它的地方(我假设这是我今天早上在 php.ini 文件中找到的) - 我认为这不是一个热门的想法...也有想法推荐另一家托管公司。
-
这是否意味着您将相同的 php.ini 文件复制到需要利用会话变量的每个目录?