出站连接(curl,套接字)不适用于apache但以root身份运行

时间:2018-05-18 22:22:20

标签: apache curl centos phpmailer plesk

最近对linux组件(带有PLesk 17.8.11的CentOS v7)的自动更新后,我的web(php)应用程序不再能够进行出站连接。 两个" curl"请求和PHPMailer失败; curl返回没有内容的http代码0,而PHPMailer说" SMTP Connect()失败"。 从终端(root用户)运行时,相同的语句/程序可以正常工作。换句话说,如果我写一个简单的程序执行" curl http://www.example.com"从终端运行它,它的工作原理;如果我从浏览器调用它,它不起作用。 任何使用PHPMailer发送邮件的程序都是如此。 SELinux被禁用,因此它不依赖于httpd_can_network_connect SELinux布尔值。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,但我真的不明白真正的原因是什么。默认情况下,我的CentOS + Plesk服务器已禁用SELinux:我使用SELINUX = permissive将其更改为“enabled”,然后我更改了两个SELinux布尔值:

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_sendmail on

即使SELinux处于仅警告模式,这两个布尔值的设置就成了伎俩。

答案 1 :(得分:0)

最有可能的是,受影响的域名正在使用最近更新的系统PHP。如果我错了,请纠正我。

什么能解释破解的PHP功能,因为在更新系统PHP包期间,Plesk不会触发Apache重启。

只需在工具&中重启Apache即可。设置>服务管理或使用systemctl restart httpd。如果此后问题仍然存在,请尝试切换到任何Plesk PHP版本。