【问题标题】:PHP Warning Permission denied (13) on session_start() [duplicate]session_start()上的PHP警告权限被拒绝(13)[重复]
【发布时间】:2011-10-12 21:17:01
【问题描述】:

我收到以下错误:

PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: open(/tmp/sess_49a20cbe1ef09a2d0262b3f7eb842e7b, O_RDWR) failed: Permission denied (13) in /home/------/public_html/includes/libs/ss.inc.php on line 1

问题不是一直发生,而是来来去去。

这是 ss.inc.php 中第 1 行的代码

<?php session_start(); ?>

【问题讨论】:

  • 看起来您没有对您站点上的 /tmp 目录的写入权限。您是否与他人共享系统?
  • 如果我有一个猜测,我会说/tmp 目录有时已满。您可以使用 session.save_path 更改存储会话的路径
  • 看起来你没有权限读取文件,ls -al 说了什么?
  • 你使用什么样的服务器?看起来您的 www 用户没有写入 /tmp 的权限,如果您有的话,您的主机可能会故意设置它。您可能需要向您的网络托管服务商发送一封电子邮件来解决此问题,除非您自己可以chmod
  • 我通过从 /temp 文件夹中删除文件作为“sess_e8vjrvit9duq61r9inj1iof285”来解决它,因此它创建了一个具有权限的新会话。这可能是因为你卸载并安装了 apache 之类的,至少我是这样解决的。

标签: php session warnings


【解决方案1】:

PHP 没有写入/tmp 目录的权限。需要使用chmod命令打开/tmp权限。

【讨论】:

    【解决方案2】:

    您似乎没有/tmp 的 WRITE 权限。

    使用函数session_save_path() 将配置变量session.save_path 编辑到上面的1 个目录 public_html(这样外部用户将无法访问该信息)。

    【讨论】:

      【解决方案3】:

      做一个phpinfo(),然后寻找session.save_path。那里的目录需要对您的网络服务器运行的用户和/或组具有正确的权限。

      【讨论】:

        【解决方案4】:

        我之前也遇到过这个问题,你需要比标准的755644 更多的权限来存储$_SESSION 信息。您需要能够写入该文件,因为这是它的记忆方式。

        【讨论】:

          【解决方案5】:

          您似乎没有服务器上/tmp 目录的写入权限。这有点奇怪,但你可以解决它。 之前调用session_start() 调用session_save_path() 并为其提供服务器可写目录的名称。 Details are here.

          【讨论】:

          • 或者PHP的session.save_path没有配置到/tmp。它可能需要更改 session.save_path,例如session_save_path("/tmp");.
          • ini_set('session.save_path',getcwd().'/'); session_start();
          • 我的问题类似,但它是“会话”路径的权限不正确。 (CentOS 6.6 上的 /var/lib/php/session)我只是运行了“sudo chown root:nginx session”,错误就消失了。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-13
          • 1970-01-01
          • 2020-12-09
          • 1970-01-01
          • 2014-03-24
          • 2017-11-03
          • 1970-01-01
          相关资源
          最近更新 更多