最新版本的Phpmyadmin Session Start错误

时间:2015-04-14 16:26:54

标签: phpmyadmin

我已将Phpmyadmin从4.4.1版本更新为4.4.2版本并开始出现此错误:

  

./libraries/session.inc.php#101 session_start()中的警告:open(/ var / lib / php / session / sess_bsv20h8gq58qq1ep33qbfrb7r62jtksi,   O_RDWR)失败:权限被拒绝(13)

     

回溯

     

./ libraries / session.inc.php#101:session_start()   ./libraries/common.inc.php#349:require(./ libraries / session.inc.php)   ./index.php#12:require_once(./ libraries / common.inc.php)

这发生在安装了Centos 6.6的两台不同机器上。 serber有Apache 2.2,PHP 5.4和Nginx作为反向代理。

6 个答案:

答案 0 :(得分:24)

在我的情况下,我主要运行nginx,因此需要将sessions目录下载到nginx用户和组...(默认情况下,会话文件夹位于apache组中)。

chown nginx:nginx /var/lib/php/session

然后强制刷新phpMyAdmin页面,解决与会话权限相关的错误。

如果是现有会话,内容也是: -

chown -R nginx:nginx /var/lib/php/session    

答案 1 :(得分:8)

我知道这是一个非常古老的问题,但我只用这一行来解决问题:

chmod 777 to /var/lib/php/session

我的服务器详情,CentOS 6,provider vultr.com

答案 2 :(得分:1)

Phpmyadmin为这种情况提供配置。

  1. 打开config.inc.php文件
  2. 添加phpmyadmin会话目录配置
  

$ cfg ['SessionSavePath'] ='/ tmp';

phpmyadmin / doc / config.rst

config:option:: $cfg['SessionSavePath']
:type: string
:default: ``''``

Path for storing session data (`session\_save\_path PHP parameter
<https://secure.php.net/session_save_path>`_).

warning::

This folder should not be publicly accessible through the webserver,
otherwise you risk leaking private data from your session. 

答案 3 :(得分:0)

我最近在SELinux的phpMyAdmin 4.4.3上遇到了同样的问题。

首先检查您是否符合服务器要求http://docs.phpmyadmin.net/en/latest/require.html

其次,允许SELinux使用PHP会话:

grep php /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

并将PHP session.save_path权限更改为root:root

chown -R root:root /var/lib/php/session
chown -R root:root /var/lib/php/wsdlcache

答案 4 :(得分:0)

请务必检查您的php.ini文件,特别是“会话”部分。

; The file storage module creates files using mode 600 by default.
; You can change that by using
;
;     session.save_path = "N;MODE;/path"
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
session.save_path = "/var/lib/php/sessions"

如果您使用内存缓存,则可能会有以下内容:

session.save_path = '127.0.0.1:11211'

默认情况下,其外观应类似于以下内容:

session.save_path = "/var/lib/php/sessions"

将php.ini配置从一台服务器复制到另一台服务器时,我遇到了另一个服务器未在会话中使用内存缓存的问题。

enter image description here

答案 5 :(得分:0)

类似于zigojacko发布的解决方案,对于PHP 7.1,我需要以下命令:

chown nginx:nginx /var/lib/php/7.1/session

在运行Nginx的Amazon Linux EC2实例上。