无法在 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-t
或dr-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 中无错误地启动会话,会话变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章
PHP 会话无法在 CentOS 上使用 phpMyAdmin
phpMyAdmin提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”