phpmyadmin报错原因及解决方法:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。

两天前登录phpmyadmin突然出错了,

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

很奇怪前些天一直好好的,怎么就突然不能用了,把phpmyadmin文件拷到另外站点的目录里,运行,居然好了。但原来的目录就是不行。

用过后,就把另外站点里的phpmyadmin删掉了,原来目录里还是坏的,有时间再找原因解决。

今天,又要使用修改一些东西,原来目录里的还是坏的,重新从官方下载最新的3.3.1版上传,还是坏的;传到另外目录里也一样。看来这个问题总是要解决的了。

google了一下,有人说是“打开您的php.ini配置文件session.save_path = “某个路径”检查该项是否配置正确”,大致明白了,估计是phpmyadmin需要写session文件,但session目录没有相应权限所以报错“…发生错误时创建会话…”,错误信息里说明是session相关的,只是这个错误信息太简略了,不容易轻易看明白。

到服务器上修改php.ini,以前没有配置session.save_path的。于是C盘建一个session目录c:\tempfolder\phpsession,给phpmyadmin站点的web用户赋读写权限,在php.ini里加上一条

session.save_path=”c:\tempfolder\phpsession”

运行iisreset,进入 phpmyadmin站点,终于看到了久违的登录页面了。

分析一下原因,应该是这样的:

windows版的php应该默认使用系统临时文件目录,可能因为别的什么原因,之前有对临时文件目录的权限丢失了,所以就报上面错误

前几天拷到别的站点目录里,而这个站点的iis用户对windows临时文件有读写权限,所以可以正常使用phpmyadmin;今天,那个站点的iis用户也没权限了,就不行了。

至于网上有人说的,要赋everyone读写权限(甚至还有说赋“完全控制”的权限),就没必要了,只给相应的iis用户赋读写权限就可以;否则还是完全隐患。

顺便说一点,我的phpmyadmin没有放到自己电脑上,远程连接mysql服务器,而是直接把phpmyadmin放到mysql服务器上,这样正是为了安全其见。mysql的root用户只允许localhost连接,不允许从别的主机上连接。其它用户也是只允许在相应主机上访问。

发表评论?

2 条评论。

  1. 当自己没有服务器的权限是怎么解决呀

    • 没有配置php权限的话,可以试试这个方案:session.save_path这个参数是否php运行时配置ini_set(),在php脚本session_start前更改;参看php官方文档:http://php.net/manual/en/function.session-save-path.php
      大致如下
      http://php.net/manual/en/function.session-set-save-handler.php

发表评论