session_start()上的PHP警告权限被拒绝(13)[重复]

Posted

技术标签:

【中文标题】session_start()上的PHP警告权限被拒绝(13)[重复]【英文标题】:PHP Warning Permission denied (13) on session_start() [duplicate] 【发布时间】: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 之类的,至少我是这样解决的。 【参考方案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”,错误就消失了。

以上是关于session_start()上的PHP警告权限被拒绝(13)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

tp框架上出现警告session_start() open failed Permission denied (13)错误

警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已发送 [重复]

XAMPP - phpMyAdmin 错误 session_start() 权限被拒绝 (13)

PHP的datelog localhost在mac权限被拒绝

PHP/IIS copy()/move_uploaded_file() 无法打开流:权限被拒绝警告

php。 session_start() [function.session-start]:无法发送会话 cookie 错误