phpMyAdmin错误:如果启用了httponly / secure cookie,则无法启动会话而不会出现错误

时间:2014-11-12 10:56:35

标签: php phpmyadmin apache2 debian httponly

我刚刚在我的LAMP服务器上更新了phpmyadmin,最新的Debian喘息一下到最新版本,现在当我尝试使用cookie auth方法登录时出现以下错误:

phpMyAdmin - Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

使用身份验证方法http登录正常。目前,两种情况都禁用SSL。谷歌搜索这个问题两天没有帮助。关于错过访问cookie的访问权限最常提到的问题'保存路径不适用于此处。 Cookie写入/var/lib/php5,因此所有权限似乎都在那里。另外将它们设置为chmod 777 www-data:www-data也不起作用。

当它无法登录时,没有错误记录到apache或php日志文件中。正在记录其他错误(我创建了一个语法错误的test.php),因此日志记录本身可以正常工作。

EDIT2:我找到了一些东西: 问题在于安全/安全的cookie。禁用

Header set Set-Cookie HttpOnly;Secure

解决了这个问题。但是禁用它并不是一个好方法。我的/etc/php5/apache2/php.ini/etc/php5/cli/php.ini文件都包含

session.cookie_httponly = true
session.cookie_secure = true

php -i |grep cookie表示两个选项均已启用。

EDIT3:D'哦。 问题是我启用了cookie标记secure(= cookie只能通过安全连接发送)但禁用了SSL。所以没有cookie可以发送......

2 个答案:

答案 0 :(得分:1)

这是因为phpmyadmin无法在php配置中定义的文件夹中写为session.save_path

要解决问题,请执行以下操作:

  • 执行php -i | grep session.save_path查找用于会话的文件夹。就我而言,我有输出:session.save_path => /var/lib/php/session => /var/lib/php/session
  • 确保session.save_path中定义的文件夹存在。就我而言,我做了mkdir -p /var/lib/php/session

  • 确保该文件夹可以通过apache写入。在我的情况下,我做了:

    • sudo setfacl -R -m u:www-data:rwX / var / lib / php / session
    • sudo setfacl -dR -m u:www-data:rwX / var / lib / php / session
    • 如果sudo chown -R www-data /var/lib/php/session不可用,请setfacl

答案 1 :(得分:0)

经过一天的测试后,似乎我找到了答案:

问题是我启用了Cookie标记" Secure" (= cookie只能通过安全连接发送)但禁用SSL。因此,不能发送任何cookie,并且phpmyadmin(pma)会中断。

禁用安全标志解决了启用ssl的问题。

这也解决了另一个问题:pma的设置脚本(通常在yourdomain / phpmyadmin / setup /上可以访问)没有按预期工作:界面本身出现但是无法添加服务器或保存手动更改的配置或下载/上传任何文件。