【问题标题】:session didn't started会话未开始
【发布时间】:2011-09-21 18:10:54
【问题描述】:

我发现了一个惊人的问题。我今天发布了一个基于传销业务的网站。我整天测试网站,但没有发现错误。但是晚上当我尝试登录会员页面时,出现以下错误:

[21-Sep-2011 13:30:36] PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: open(/tmp/sess_44507540b8d51d06160a2856360692e6, O_RDWR) failed: Permission denied (13) in /home/dashingb/public_html/sts/conf.php on line 3

我在与 apache 服务器共享主机上。我没有root访问权限。如何解决问题?上面也显示 WARNING,但是当我尝试打开登录页面时,它显示 500 错误 (http://dashingbird.com/sts/admin/)

我的会话启动方法如下:

<?php
if(! isset($_SESSION)){
session_start();
}
?>

加上以下错误:

内部服务器错误

服务器遇到内部错误或配置错误,并且 无法完成您的请求。

请联系服务器管理员 webmaster@dashingbird.com 和 通知他们错误发生的时间,以及您可能会做的任何事情 这样做可能会导致错误。

有关此错误的更多信息可能在服务器错误中可用 记录。

此外,在尝试访问时遇到 404 Not Found 错误 使用 ErrorDocument 来处理请求。 Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 服务器在dashingbird.com 端口 80

当我打开error_reporting(E_ALL)时,我刚刚得到了上面的警告(会话警告)。 请帮帮我..

【问题讨论】:

    标签: php session


    【解决方案1】:

    很可能 PHP 无法将会话文件写入为会话保存路径指定的任何目录。您可以通过session_save_path() 了解该路径是什么。

    如果您无法修改该目录的权限以允许网络服务器写入,则必须更改 PHP 配置以指向它可以读取/写入文件的目录。或者在调用 session_start() 之前,在每个脚本中使用 session_save_path('/path/to/writeable/dir') 手动覆盖它。

    【讨论】:

    • 根据您的建议,我使用以下代码session_save_path(dirname(__FILE__).'/temp/'); error_reporting(0); session_start(); 仍然出现错误
    • 运行 Apache 的帐户是否对该目录具有“修改”权限?它至少需要读/写/删除/列出文件夹内容。
    【解决方案2】:

    服务器上似乎有问题。通常在共享主机上没有你可以自己做的事情。我建议通过电子邮件(或开票)您的托管支持。

    这很可能是某种权限问题。

    500错误也意味着服务器配置有问题,主要是由.htaccess文件中的一些错误引起的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      相关资源
      最近更新 更多