SELinux导致无法访问外网,PHP连接MySQL异常Can't connect to MySQL server、redis程序访问提示Redis server went away的解决方法
今天上班遇到的问题,新配的Linux服务器,php、Apache和一系列扩展插件装好后,在本地好好的程序移上去就一直抱数据库连接错误,而用sql命令却能连接上去,
做了一个简单的判断数据库连接页面还是不行,证明不是程序问题,而是php的哪里问题了,就在网上查了大半天 有些方法都不合情况后面偶然发现SELinux这个东西
查了下这个有限制httpd对外访问的权限;具体如下
输入命令:getsebool -a|grep -i httpd
里面会有一个 httpd_can_network_connect --> off 的这个东东
off等于开启httpd对外访问的权限,要设为on就可以了
方法1:直接输入命令:setsebool -P httpd_can_network_connect=1,再命令:setenforce 0
方法2:vim /etc/sysconfig/selinux
里面有行 #SELINUX=enforcing 改为:SELINUX=disabled,再命令:setenforce 0
注:Linux中如出现在后台命令中可以执行,但远程程序使用总报错的一般是外网无法访问,大多就是SELINUX引起的。