Or, any different setting between cli/php.ini and fpm/php.ini?
Thank you. This pointed me in the right direction. Of course! The obvious thing was to try mail() in a script run by the webserver. So I made a PHP file that tried to mail me and it didn't work. I realized that the problem stemmed form my confusion about the chroot of the php-fpm process. All its paths are absolute paths (socket, log file, pid file) but when it was running the actual PHP script, the workers were running in the chroot. So when PHP tried to exec the system's mailer, it didn't exist. I would have expected that somewhere, in some PHP log file, I would have seen something to the effect of "/usr/sbin/sendmail not found", but I guess that would have been too easy. The mail() function's return value may have also been a clue had it not been empty when I tried to log it.

Now I have to either chroot the process and have the mailer and its dependencies available, or not chroot but then the SCRIPT_FILENAME passed to php-fpm will be wrong. I'm guessing this is covered to death elsewhere. As usual, dl-ticket was perfectly faultless.

Thanks very much for your help.


Reply via email to