apache - 出站连接(卷曲,套接字)不适用于 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 布尔值。
任何想法?
解决方案
我找到了解决方案,但我并没有真正理解真正的原因是什么。默认情况下,我的 CentOS+Plesk 服务器禁用了 SELinux:我使用 SELINUX=permissive 将其更改为“启用”,然后更改了两个 SELinux 布尔值:
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_sendmail on
即使 SELinux 处于仅警告模式,设置这两个布尔值也可以解决问题。
推荐阅读
- outlook - 条件注释似乎在 Outlook 2016 中不起作用
- mysql - 确定状态机处于状态的天数
- github - GitHub隐藏分支
- python - Python中的枚举组合
- apache-spark - Spark 与 Hive 的差异与 ANALYZE TABLE 命令 -
- sas - 如何授予对 SAS 中内置表的访问权限
- c - 输入大于 127 的数字时打印出垃圾
- django - 如何修复构造函数调用中位置和关键字传递的参数'api_key'
- ios - UICollectionView scrollToItem() 滚动到上一个单元格无法正常工作
- file - 8086 程序集:如何仅将几个字符从文件缓冲区复制到变量