(nginx / selinux)会话权限被拒绝,但文件已创建

时间:2015-10-07 07:30:32

标签: php linux session nginx selinux

我在启用selinux的情况下运行nginx / php-fpm的centos 7。

我知道互联网上有很多类似的问题,但我的情况有点不同。文件是在通过nginx设置selinux后创建的,但仍然说它无法读取...

tail /var/log/nginx/error.log

  

2015/10/07 16:18:25 [错误] 17860#0:* 79在stderr发送的FastCGI:“PHP   消息:PHP警告:session_start():   打开(/ var / lib / php / session / sess_sk456vdemnp391spiv3i622i96,O_RDWR)   失败:/home/web/api/functions.php中的权限被拒绝(13)   9

ls -la / var / lib / php / session /

  

总共12 drwxrwx --- + 2 nginx nginx 82 Oct 7 16:18。 drwxr-XR-X。 3   root root 20 Oct 5 15:58 ..   -rw ------- + 1 nginx nginx 0 Oct 7 16:15 sess_52psgccceh91vokbau4pq08946   -rw ------- + 1 nginx nginx 0 Oct 7 16:18 sess_sk456vdemnp391spiv3i622i96

* php-fpm和nginx的用户是“nginx” *更改了selinux策略以允许访问会话文件夹

您知道我应该检查哪个日志以找出问题所在吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我发现了问题!

我的/ var / lib / php / session是system_u:object_r:httpd_sys_content_t:s0而不是system_u:object_r:httpd_sys_rw_content_t:s0。这使得nginx无法编辑内容(仅创建)。

解决问题: 1-重置文件夹的策略:

  

restorecon -v“/ var / lib / php / session”

2-然后设置好的

  

semanage fcontext -a -t httpd_sys_rw_content_t / var / lib / php / session

您甚至不必重新加载/重新启动nginx:P

答案 1 :(得分:0)

遇到同样的问题。 就我而言,解决方案是将目录的所有者更改为nginx

chown nginx /var/lib/php/session