<p>在CentOS下配置Apache+php+redis+phpredis环境。</p><p>编辑访问redis缓存的php程序test.php,以应用程序方式在后台运行,可成功访问Redis,而在Apache下以网页形式访问时则出错,在访问Redis以及之后的代码均不再执行。查看Apache的日志:/var/log/httpd/error_log,发现代码运行时出现异常:</p><p>PHP Fatal error: Uncaught exception 'RedisException' with message 'Redis server went away' in /var/www/html/test.php</p><p>在网上查该异常时均认为是php的Sokcet超时时间设置的过短,应该在代码前加上:ini_set('default_socket_timeout', -1);</p><p>经测试仍无法解决该问题,因在代码后台运行正常,因此判断并非代码本身问题,而是Apache不允许访问网络资源,尝试如下解决方法:</p><p>打开/etc/selinux/config,找到其中的:</p><p>SELINUX=enforcing</p><p>改为:SELINUX=disabled</p><p>问题解决!</p><p>如果仍不能解决问题,可执行如下指令:</p><p>/usr/sbin/setsebool httpd_can_network_connect=1</p>