Функция PHP Mail не работает после обновления Debian
веб-сервер для jessie
, Версии программного обеспечения,
Apache2 : 2.4
Php : 5.6
Exim4: 4.8
Этот веб-сервер имеет несколько веб-сайтов, и я использую libapache2-mpm-itk
модуль для запуска php разными пользователями для каждого сайта. Так www-data
не используется
Я получаю ниже ошибку при попытке отправить электронную почту, используя функцию php mail.
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
Спасибо!
Согласно сообщению об ошибке
невозможно установить gid = 33 или uid = 0 (euid = 0): принудительное выполнение = эффективное
С помощью root
скорее всего, не нужно, группа 33 (вероятно, www-data
) тоже должно хватить.
Таким образом, вы должны быть в состоянии использовать LimitGIDRange 1 9999
вместо LimitUIDRange
,
Я решил эту проблему. Актуальная проблема объясняется здесь https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797653.
Решение 1:
Вы можете установить ssmtp
, Debian apt-get
удалит exim4
при установке ssmtp
, Таким образом, вам придется настроить его для использования внешнего SMTP-сервера.
точка php
путь sendmail как sendmail_path /usr/bin/ssmtp -t -i
, Это может отличаться в зависимости от распределения.
Решение 2:
Вы можете установить esmtp
и настройте его на использование localhost smtp. Увидеть /etc/esmtprc
, точка php
путь sendmail как sendmail_path /usr/bin/esmtp -t -i
, Это может отличаться в зависимости от распределения.