我正在尝试设置一个新的帮助台程序(Kayako),但在将邮件转发到我们的邮件服务器时遇到了问题。
这是我收到的错误:
sendmail[2371]: NOQUEUE: SYSERR(apache): 无法 chdir(/var/spool/clientmqueue/): 权限被拒绝
我将clientmqueue
文件夹的所有权更改为smmsp:apache
具有与通常相同的 770 权限,但错误仍然出现。
答案1
根据“bat book”(第4版,第168页),该目录的推荐权限是:
chown smmsp:smmsp clientmqueue
chmod 0770 clientmqueue
答案2
Sendmail 应该正在运行setgid
,否则邮件队列必须可由 PHP 写入。听起来您的服务器并非如此。
答案3
因此,我最终从头开始,只是为了确保我只安装了最少的软件包,并且没有任何冲突的包。
然而,SELinux 仍然阻止我连接到外部邮件服务器。
我会收到如下警告:
[警告]:stream_socket_client():无法连接到 mail.mydomain.com:25(权限被拒绝)(Transport/StreamBuffer.php:263)
httpd_can_network_connect
我发现我需要通过设置 SELinux 布尔值来允许 HTTPD 脚本和模块连接到网络on
。
我通过运行以下命令完成了此操作:
setsebool -P httpd_can_network_connect on
如果您不使用该-P
标志,则更改不会保存到策略文件中,并且在重新启动后也不会保留。
我只是想把这个发布给遇到类似问题的人。我相信 httpd_can_network_connect
没有设置为on
也会导致sendmail
错误。