虽然我可以在chroot中使用sendmail,但PHP无法在chroot中进行邮件发送()

我正在构build一个php-fpm chroot,并且是我最后一个步骤之一,然后才称之为成功。

php-fpm chroot就像一个魅力。 此外,我已经将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 [email protected] [email protected] 

上述命令运行时,我会收到电子邮件。

但是,当我从Web浏览器访问下面的PHP脚本时,不发送电子邮件:

 <?php $message = "This is a test"; $headers = 'From: [email protected]'; mail("[email protected]", "Test", $message, $headers); echo "mail sent"; ?> 

下面是我的php-fpm chroot池configuration文件:

 [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 

当我从Web浏览器访问php文件时,我可以确认在php_admin_value[mail.log]定义的maillog中有一个日志条目:

 mail() on [/www/mailer.php:4]: To: [email protected] -- Headers: From: [email protected] 

然而,在服务器的maillog(chroot之外)上没有任何东西显示出来,php错误日志中什么也没有显示出来。

我怎样才能完成故障排除这最后一步获得PHP的mail()函数在我的PHP-FPM chroot中按需要工作? 或者,我该如何解决实际问题?