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】:我之前也遇到过这个问题,你需要比标准的755
或644
更多的权限来存储$_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 错误