无法在 phpMyAdmin 中无错误地启动会话,会话变量不起作用

Posted

技术标签:

【中文标题】无法在 phpMyAdmin 中无错误地启动会话,会话变量不起作用【英文标题】:Cannot start session without errors in phpMyAdmin, session variables don't work 【发布时间】:2014-10-25 08:45:59 【问题描述】:

首先,我从 2011 年开始查看 rciiipo 的 post。我的问题似乎没有通过提供的答案得到解决,我还有其他一些意见。

将浏览器指向 phpMyAdmin 时出现以下错误

Cannot start session without errors, please check errors given in 
your PHP and/or webserver log file and configure your PHP installation properly.
Also ensure that cookies are enabled in your browser.

1) 会话变量不适用于任何 php 文件。我不太确定这是否相关,但我相信一个问题会导致另一个问题。

当我刷新网页时,下面的代码应该会显示“泰迪熊”:

<?php
session_start();

$username = $_SESSION['username'];
if(isset($_SESSION['logged']) && $_SESSION['logged']=='yes') 
    echo "$username";
   

$_SESSION['username']='Teddy';
$_SESSION['logged']='yes';
?>

我的 php.ini 文件:

session.save_path = "/var/lib/php5/session"

权限:

drwxr-xr-t  4 root www-data 4096 Sep  1 08:40 php5
  |
  -- drwxr-xr-x  2 root www-data 4096 Sep  1 08:40 session

我认为如果我只让 $_SESSION 变量在 php 中工作,问题就可以解决。

【问题讨论】:

您对/var/lib/php5/session 的权限似乎有误,应该是drwxrwxr-tdr-xrwxr-t(假设www-data 是Web 服务器用户)。目录需要写权限才能保存会话数据。 是的,这就是它所需要的。这是为什么呢? PHP 将会话数据存储到 session.save_path 并且当 PHP 由 web 服务器执行时,它在 web 服务器的用户上运行。这就是 Web 服务器用户需要对该文件夹的写入权限的原因。 【参考方案1】:

我同意bansi:

看来您对 /var/lib/php5/session 的权限有误 应该是 drwxrwxr-t 或 dr-xrwxr-t (假设 www-data 是 web 服务器用户)。目录需要写权限才能保存 会话数据。

另外,您应该检查 /var/log/ 中的日志文件(也可能是 Apache)——它们可能会为您提供更多详细信息...

【讨论】:

以上是关于无法在 phpMyAdmin 中无错误地启动会话,会话变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章

上一个版本的 Phpmyadmin 会话启动错误

PHP 会话无法在 CentOS 上使用 phpMyAdmin

phpMyAdmin提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”

未能在会话中存储 CSRF 令牌!可能会话无法正常工作

无法启动 phpMyAdmin。不断收到 #2002 套接字错误

phpmyadmin 5.0.2 设置会话 cookie 失败