我已将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作为反向代理。
答案 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为这种情况提供配置。
$ 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配置从一台服务器复制到另一台服务器时,我遇到了另一个服务器未在会话中使用内存缓存的问题。
答案 5 :(得分:0)
类似于zigojacko发布的解决方案,对于PHP 7.1,我需要以下命令:
chown nginx:nginx /var/lib/php/7.1/session
在运行Nginx的Amazon Linux EC2实例上。