9-19 1,109 views
OS CentOS 6.3
Couldn’t send emails
after some reserch turned out that SELinux is blocking the communication
SELinux is activated and configured by default. As such SELinux does not allow Apache (httpd,phpmailer) to use the sendmail function and make any sort of network connection.
Using the getsebool command we can check if httpd demon is allowed to make a connection over the network and send an email.
getsebool httpd_can_sendmail
getsebool httpd_can_network_connect
This command will return a boolean on or off. If its off, we can set it on using the following:
sudo setsebool -P httpd_can_sendmail 1
sudo setsebool -P httpd_can_network_connect 1
Now you can test your php, code to see if SendMail work properly or not.
setsebool 会卡住不动,直接关闭 SELinux
关闭 SELinux
查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可