Я создаю 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? Или как я могу исправить настоящую проблему?