首页 > 解决方案 > 出站连接(卷曲,套接字)不适用于 apache 但以 root 身份工作

问题描述

在最近对 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 布尔值。

任何想法?

标签: apachecurlcentosphpmailerplesk

解决方案


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

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_sendmail on

即使 SELinux 处于仅警告模式,设置这两个布尔值也可以解决问题。


推荐阅读