网站首页 » 网站运营 » Linux » phpMyAdmin 登录出错 session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied
上一篇:
下一篇:

phpMyAdmin 登录出错 session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied

在配置 vsftpd 虚拟用户之前,是可以登录 phpMyAdmin 后台的。配置完 vsftpd 虚拟用户后就出现了如下图片所示的错误。

phpMyAdmin 登录出错 session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied

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)

如果你对 vsftpd 虚拟用户配置不太了解的,你可以阅读这篇文章《Linux vsftpd 虚拟用户配置》。

首先我们可以从这个报错信息中注意到几个关键词 session start、PHP、open(SESSION_FILE, O_RDWR、Permission denied)。在这里我们大概可以猜测导致这次错误的应该是权限问题,并且很有可能与 php 有关。于是我分析了在配置 vsftpd 虚拟用户时都弄过了些什么,有一个地方很容易就引起了我的注意。修改了 php 程序默认的访问用户名 php-fpm ,改为 nobody 用户了。

于是我就把 nobody 用户有用户组都改回了 php-fpm ,重启 php-fpm 后,果然 phpMyAdmin 就可以正常访问了。那么这个现在要怎么解决呢?如果就这样直接把它改回 php-fpm 那之前配置的 vsftpd 虚拟用户肯定会受到影响,但如果不改那么你就没法登录 phpMyAdmin 。所以得出的结论是:你必需要得做点什么,让这两者都很好的运行,并且不会有什么副作用。

打开php.ini 文件

sudo vim /etc/php.ini

在里面搜索 session.save_path ,但让人意外的是,虽然这个文件里有好几个地方都出现了,但很不幸的是它们都是被注释掉的,也就是说不起作用的。那么 session.save_path 还会存在于哪个文件呢?

sudo vim /etc/php-fpm.d/www.conf

编辑 www.conf 文件,搜索 session.save_path,

session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied

在这里你有两个选择,一个是像我一样用; 把这一行注释掉,另一个选择就是修改一个 nobody 用户可以操作的目录,也就是说有读写权限的目录,我也查了下这个默认的目录,这个目录是不存在的。php 目录下没有 fpm 目录,更别说是其子目录 session 了,如果你不想注释这行代码,并且就是想用这个路径,那么你也可以在/var/lib/php/目录下新建 fpm 及其下的 session 目录,然后给 nobody 用户读写权限,或者修改成自己喜欢的其它路径。

  • 微信扫一扫,赏我

  • 支付宝扫一扫,赏我

声明

原创文章,不经本站同意,不得以任何形式转载,如有不便,请多多包涵!

本文永久链接:http://yunkus.com/phpmyadmin-login-error-session-start-open-failed-permission-denied/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论 END