Назад | Перейти на главную страницу

PHP не может использовать mail () в chroot, хотя я могу использовать sendmail внутри chroot

Я создаю chroot php-fpm и делаю один из последних шагов, прежде чем назвать это успешным.

Chroot php-fpm работает как шарм. Также у меня есть mini_sendmail установлен в chroot (вместо стандартного sendmail) и может подтвердить, что может отправлять электронную почту:

[root@hostname site1.com]# ls bin/
bash  cat  sendmail  test.txt
[root@hostname site1.com]# chroot .
bash-4.2# cat /bin/test.txt | ./bin/sendmail -t -i -fme@site1.com me@my-email.com

Я получаю электронное письмо, когда выполняется указанная выше команда.

Однако, когда я открываю следующий php-скрипт из веб-браузера, электронное письмо не отправляется:

<?php
    $message = "This is a test";
    $headers = 'From: me@site1.com';
    mail("me@my-email.com", "Test", $message, $headers);
    echo "mail sent";
?>

Ниже приведен мой файл конфигурации пула chroot php-fpm:

[site1.com]
user = user1
group = user1
listen = 127.0.0.1:9001
listen.owner = user1
listen.group = user1
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = on
php_flag[display_errors] = on
php_admin_value[short_open_tag] = On
php_admin_value[doc_root] = www
php_admin_value[error_log] = /logs/php-errors
php_admin_flag[log_errors] = on
php_admin_value[sendmail_path] = /bin/sendmail
php_admin_value[mail.log] = /logs/maillog
php_admin_value[error_reporting] = E_ALL
pm = ondemand
pm.max_children = 5
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chroot = /home/www/site1.com
chdir = /www
catch_workers_output = yes

Когда я получаю доступ к файлу php из веб-браузера, я могу подтвердить, что в почтовом журнале есть запись журнала, как определено php_admin_value[mail.log]:

mail() on [/www/mailer.php:4]: To: me@my-email.com -- Headers: From: me@site1.com

Однако ничего не отображается в почтовом журнале сервера (за пределами chroot), и ничего не отображается в журнале ошибок php.

Как я могу завершить устранение неполадок на этом последнем шаге получения php mail() функция работает по желанию в моем php-fpm chroot? Или как я могу исправить настоящую проблему?