7

Debian将Web 服务器升级到jessie. 软件版本是,

Apache2 : 2.4 
Php : 5.6 
Exim4: 4.8

该网络服务器有多个网站,我使用libapache2-mpm-itk模块为每个网站由不同用户运行 php。所以www-data不使用。

尝试使用 php 邮件功能发送电子邮件时出现以下错误。

unable to set gid=33 or uid=0 (euid=0): forcing real = effective

sendmail路径是,

sendmail_path   /usr/sbin/sendmail -t -i 

它指向exim,

/usr/sbin/sendmail -> exim4

我从http://blog.gaiterjones.com/send-php-mail-ubuntu-upgrade/itk找到了一个解决方案,当我使用模块设置以下设置时,问题解决了,

LimitUIDRange 0 2000

root但是对于像我这样的共享服务器,不建议允许用户使用。

有更好的解决方案吗?

编辑: 我发现了一个未解决的错误报告。 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653

谢谢!

4

2 回答 2

0

根据错误信息

无法设置 gid=33 或 uid=0 (euid=0):强制实数 = 有效

root可能不需要使用,第 33 组(可能www-data)也应该足够了。

所以你应该可以使用LimitGIDRange 1 9999而不是LimitUIDRange.

于 2018-04-02T19:49:16.497 回答
0

我已经解决了这个问题。此处解释了实际问题 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653

解决方案1:

您可以安装ssmtp. Debianapt-getexim4在安装时删除ssmtp。因此,您必须将其配置为使用外部 smtp 服务器。点phpsendmail 路径之类的sendmail_path /usr/bin/ssmtp -t -i。这可能因不同的分布而不同。

解决方案2:

您可以安装esmtp并配置它以使用 localhost smtp。见/etc/esmtprc。点phpsendmail 路径之类的sendmail_path /usr/bin/esmtp -t -i。这可能因不同的分布而不同。

于 2018-04-17T06:18:13.077 回答