最近对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布尔值。
有什么想法吗?
答案 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版本。