(nginx/selinux) 会话的权限被拒绝错误,但文件已创建
(nginx/selinux) Permission denied error for sessions but files are created
我有启用 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
你甚至不需要 reload/restart nginx :P
运行 进入同样的问题。
就我而言,解决方案是将目录的所有者更改为 nginx
chown nginx /var/lib/php/session
我有启用 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
你甚至不需要 reload/restart nginx :P
运行 进入同样的问题。 就我而言,解决方案是将目录的所有者更改为 nginx
chown nginx /var/lib/php/session