【问题标题】:Wordpress PHP Session ErrorWordpress PHP 会话错误
【发布时间】:2013-10-03 21:50:48
【问题描述】:

我设置了一个 Wordpress 网站,最近开始在页脚下方的页面底部收到以下 PHP 警告。

Warning: Unknown: open(/tmp/sess_ae2e58214af1e2f1d14b233cb766e105, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0

这是我所知道的。我使用 MAMP 在 localhost 上创建了一个 Wordpress 站点,并将本地数据库复制到生产环境中。

编辑:此问题无法忠实再现。在某一时刻,警告仅在 chrome 中显示,目前它们显示的是 Safri,但不是同时在两个浏览器中显示。我已验证服务器根目录下的 /tmp/ 文件夹是可写的。

主机更新:主机公司报告说存在来自相似用户名的冲突会话文件(我们设置的所有 wordpress 安装都有一个“管理员”用户)。

建议的解决方案是让每个安装写入会话 文件到该站点的 FTP 内它自己的目录,而不是 服务器的根目录。

感谢任何帮助。

【问题讨论】:

  • 该错误与您的浏览器无关,与服务器配置有关。
  • 我很确定情况就是这样。我不确定为什么警告只在 Chrome 中显示给我。我猜这是本地主机设置和生产环境之间的区别,但我不知道在哪里解决这个问题。

标签: php wordpress localhost mamp


【解决方案1】:

检查您的生产环境 /tmp/ 文件夹权限或向您的托管公司询问更多详细信息。

【讨论】:

  • 我在 Wordpress 安装中没有看到 /tmp/ 文件夹。这会是 FTP 根目录下的 /tmp/ 文件夹吗?
  • 不,这个文件夹不会在 wordpress 安装中。 /tmp/ 文件夹是存储所有会话数据的文件夹。这是您无法通过 FTP 访问的内容。如果您没有 shell 访问权限,请让您的托管公司将该文件夹设为可写并尝试检查您的服务器配置。
  • 我们检查了服务器根目录下的/tmp/文件,确认该目录是可写的。
【解决方案2】:

在开始会话之前,检查会话的文件是否可写,如果不是,则删除cookie:

session_save_path("/tmp");
if (isset($_COOKIE[session_name()])) {
    if(!is_writable("/tmp/sess_".$_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
        header("Location: ./");
    }
}
session_start(); 

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2013-04-13
    相关资源
    最近更新 更多