环境:阿里云linux服务器,LNMP;
今天在刚装好的环境中安装了phpmyadmin,然后浏览器地址打开就出现了如下报错:
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)
session_start(): Failed to read session data: files (path: /var/lib/php/session)
中文翻译
phpMyAdmin-错误
会话启动期间发生错误; 请检查您的PHP或Web服务器日志文件并正确配置PHP安装。 还要确保在浏览器中启用了cookie。
session_start():open(SESSION_FILE,O_RDWR)失败:权限被拒绝(13)
session_start():无法读取会话数据:文件(路径:/var/lib/php/session)
出现问题的原因:
一般出现这种情况,都是session.save_path赋值的问题,可能session的保存位置为空,也可能目标地址不存在,还可能是权限问题,我们需要一个一个的排查。
顺便再说一下,“session.save_path”是在php.ini设置的,大家可以去自己的php.ini查看相应的配置。
解决办法:
通过上面可以清楚的知道原因,自然解决就容易多了,根据我多年的经验,很多人遇到这种情况通常都是权限以及session保存位置的问题,赋值的问题几乎没有。
1、根据上面所报的错误,首先我们去看“/var/lib/php/session”这个目录是否存在?当然,我这里是没有session这个目录的,需要自己建立。
- cd /var/lib/php
- mkdir session
2、session目录已经建立好了,“/var/lib/php/session”路径也已经存在了,但是浏览器访问phpmyadmin依然报错,接下来就看此路径的权限是否有问题?如果大家有不明白权限的,建议直接给777权限吧。
- cd /var/lib
- chmod -R 777 php
3、再次重新浏览器访问phpmyadmin果然已经恢复正常,可以进入mysql数据库了。
注意:上面的路径,请根据你自己phpmyadmin报错来做相应的修改,毕竟每个服务器它有一些东西是不一样的。
总结解决此问题的思路:
1、查看php.ini配置中“session.save_path”是否开启?路径是否设置或存在?
2、如果路径不存在我们就自己创建一个目录。(mkdir创建文件目录)
3、检查设置此路径的权限。(直接给777权限)
2018年09月25日 01:09:53 沙发
尝试了一下,把/var/lib/php/的用户和用户组改成跟nginx或者apache一样,权限开770就行了。
2018年09月25日 20:37:16 1层
@小月雨田 权限这个问题专业的人都能懂,我是为了让所有人都能方便,直接使用了最爆力的操作:给777权限,这是最高的权限.
2017年11月03日 13:21:00 板凳
我也遇到了这个问题,但是报错没有这么长,如下:
我翻译了一下,如下:
2017年11月03日 14:02:09 1层
@php佳佳 你只报了一行错误,我猜测应该是你的php.ini配置中session.save_path没有开启,没有设置一个保存的路径;请先开启并设置路径再给权限就可以解决了。
注意:有时候一些php.ini它的session.save_path路径是/tmp,但是给了权限依然没有生效,你可以将/tmp修改成/var/lib/php/session;目录不存在就自己创建吧,没有权限就自己给吧!
记住:php.ini配置修改想要生效必须重启php。
2017年11月03日 14:06:12 2层
@付杰 完美解决了我的问题,我现在打开phpmyadmin已经不会报错了。感谢大牛!