【Linux】关于php:(nginx / selinux)会话权限被拒绝但创建了文件


我有启用了selinux的centos 7运行nginx / php-fpm。

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

tail /var/log/nginx/error.log

2015/10/07 16:18:25 [error] 17860#0: *79 FastCGI sent in stderr:"PHP message: PHP Warning: session_start(): open(/var/lib/php/session/sess_sk456vdemnp391spiv3i622i96, O_RDWR) failed: Permission denied (13) in /home/web/api/functions.php on line 9

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

total 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策略,以允许访问会话文件夹

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

谢谢我发现了问题!

我的/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

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