尝试从PHP脚本连接Redis时出现“Permission denied”的故障排除

22

服务器上开放了6379端口,我可以在SSH中成功运行telnet localhost 6379

我在PHP中尝试了Predis/phpredis客户端库,但仍无法工作:

  • Predis在打开6379套接字时出现“权限被拒绝”的错误。
  • phpredis出现“redis服务器挂掉”的错误。
1个回答

67

问题已解决,输入:

/usr/sbin/setsebool httpd_can_network_connect=1

默认情况下,SELinux不允许Apache进行套接字连接。可以在这里找到更多信息。


2
这个设置是永久的吗?还是应该添加到启动初始化脚本或etc文件中? - rolandow
非常感谢这个问题-答案。节省了很多时间!这可能会解决我在尝试运行一个也试图打开端口的C++可执行文件时遇到的另一个错误。 - Harsh Agrawal
我尝试使用Python Redis客户端并遇到了这个问题,它节省了很多时间! - Nazmul Hasan
9
为了使配置在重启后保持不变,请使用-P标志:setsebool -P httpd_can_network_connect 1 - Mircea Vutcovici
节省了我很多时间。谢谢! - cmptrwizard
即使过了8年,仍然非常有用。 - CoderSpinoza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接