我在启用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策略以允许访问会话文件夹
您知道我应该检查哪个日志以找出问题所在吗?
谢谢!
答案 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