CentOS+Apache+php無法訪問redis的解決方法 Redis server went away


在CentOS下配置Apache+php+redis+phpredis環境。
編輯訪問redis緩存的php程序test.php,以應用程序方式在后台運行,可成功訪問Redis,而在Apache下以網頁形式訪問時則出錯,在訪問Redis以及之后的代碼均不再執行。查看Apache的日志:/var/log/httpd/error_log,發現代碼運行時出現異常:
PHP Fatal error: Uncaught exception ‘RedisException’ with message ‘Redis server went away’ in /var/www/html/test.php

在網上查該異常時均認為是php的Sokcet超時時間設置的過短,應該在代碼前加上:ini_set(‘default_socket_timeout’, -1);
經測試仍無法解決該問題,因在代碼后台運行正常,因此判斷並非代碼本身問題,而是Apache不允許訪問網絡資源,嘗試如下解決方法:
打開/etc/selinux/config,找到其中的:
SELINUX=enforcing
改為:SELINUX=disabled

問題解決!

如果仍不能解決問題,可執行如下指令:
/usr/sbin/setsebool httpd_can_network_connect=1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM