Php-fpm导致postfix从root @ myDomain发送邮件到root @ myDomain

时间:2016-02-13 12:50:39

标签: php linux email

问题是,当PHP尝试运行某些脚本时,我在bounce back收到mail.log错误。

我查看了/var/log/syslog

Feb 13 12:09:01 myUserName CRON[11111]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))
Feb 13 12:39:02 myUserName postfix/pickup[27697]: 48E243F4E2: uid=0 from=<root>
Feb 13 12:39:02 myUserName postfix/cleanup[28826]: 48E243F4E2: message-id=<20160213123902.48E243F4E2@myDomain.com>
Feb 13 12:39:02 myUserName postfix/qmgr[27698]: 48E243F4E2: from=<root@myDomain.com>, size=732, nrcpt=1 (queue active)
Feb 13 12:39:02 myUserName postfix/virtual[28828]: 48E243F4E2: to=<root@myDomain.com>, orig_to=<root>, relay=virtual, delay=0.17, delays=0.12/0.01/0/0.04, dsn=5.1.1, status=bounced (unknown user: "root@myDomain.com")

为什么会这样?我应该如何预防呢?它使我的日志文件变得混乱。

EDIT1:

我使用php-fpmmaxlifetime的内容是:

#!/bin/sh -e

max=1440

if which php5 >/dev/null 2>&1; then
    for sapi in apache2 apache2filter cgi fpm; do
        if [ -e /etc/php5/${sapi}/php.ini ]; then
            cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");')
            [ -z "$cur" ] && cur=0
            [ "$cur" -gt "$max" ] && max=$cur
        fi
    done
else
    for ini in /etc/php5/*/php.ini /etc/php5/conf.d/*.ini; do
        cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
        [ -z "$cur" ] && cur=0
        [ "$cur" -gt "$max" ] && max=$cur
    done
fi

echo $(($max/60))

exit 0

1 个答案:

答案 0 :(得分:0)

脚本总是产生输出,所以当你从cron运行它时,cron会将输出邮寄给crontab的所有者。

您可以采取以下措施:

您可以在crontab中设置MAILTO=youraddress@example.com,告诉cron将邮件发送到何处。

您可以修改脚本以不输出任何内容。

您可以告诉cron丢弃脚本的输出,例如使用&gt; / dev / null或类似的。

P.S。这个问题可能不属于这里。也许serverfault或超级用户会更合适。