centos7 nginx php 访问本地redis报权限问题

事情是这样:nginx 反向代理 php-fpm, php脚本中使用php-redis,实例化Redis对象,并connect本地的redis服务器。本地root账号运行php xxx.php是没有问题的,结果使用http访问时报Permission denied。
如果不提示错误,有可能是php.ini的配置项display_errors是关闭的。

最终找到原因是selinux的安全设置。可以用这个getsebool -a | grep httpd 查看到
httpd_can_network_connect --> off

可以通过下述命令修改
SELinux命令,临时配置,重启后失效
setsebool httpd_can_network_connect=1

写入配置文件的命令,重启后保留
setsebool -P httpd_can_network_connect 1

其它配置项参考 https://wiki.centos.org/zh/TipsAndTricks/SelinuxBooleans