URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7659
[ Назад ]

Исходное сообщение
"php mail(): failed to open stream..."

Отправлено Allan Stark , 27-Дек-12 14:47 
Freebsd 9.0, php 5.3.8
Все поставлено с портов, все работает.
В php.ini внесены настройки корректного почтового сервера.

При попытке отправки почты:
mail($to, $subject, $message, $headers)

в ответ письмо отправляется и доставляется, но в странице и в логах :

Warning: mail(/var/log/) [function.mail]: failed to open stream: Is a directory in /usr/local/www/apache22/data/test/send_mail.php on line 32

По гуглю нашел, что проблема из-за отсутствия/проблем с записью для файла /var/log/php_mail.log - создал, дал 775, проблема осталась.


Содержание

Сообщения в этом обсуждении
"php mail(): failed to open stream..."
Отправлено Pahanivo , 27-Дек-12 18:05 
failed to open stream: Is a directory
failed to open stream: Is a directory
failed to open stream: Is a directory
failed to open stream: Is a directory
failed to open stream: Is a directory

"php mail(): failed to open stream..."
Отправлено BIH , 28-Дек-12 08:20 
> failed to open stream: Is a directory
> failed to open stream: Is a directory
> failed to open stream: Is a directory
> failed to open stream: Is a directory
> failed to open stream: Is a directory

   Проверь, кто владелец фвйла - это должен быть user, под которым бежит вебсервер !


"php mail(): failed to open stream..."
Отправлено Allan Stark , 28-Дек-12 11:07 
>> failed to open stream: Is a directory
>> failed to open stream: Is a directory
>> failed to open stream: Is a directory
>> failed to open stream: Is a directory
>> failed to open stream: Is a directory
>    Проверь, кто владелец фвйла - это должен быть user,
> под которым бежит вебсервер !

Владелец файла /var/log/php_mail.log - пользователь www, под которым крутится httpd.
php поднят как модуль для апача.
Сделал даже 777 на файл - одинаково ошибка остается...


"php mail(): failed to open stream..."
Отправлено Allan Stark , 28-Дек-12 11:30 
>>> failed to open stream: Is a directory
>>> failed to open stream: Is a directory
>>> failed to open stream: Is a directory
>>> failed to open stream: Is a directory
>>> failed to open stream: Is a directory
>>    Проверь, кто владелец фвйла - это должен быть user,
>> под которым бежит вебсервер !
> Владелец файла /var/log/php_mail.log - пользователь www, под которым крутится httpd.
> php поднят как модуль для апача.
> Сделал даже 777 на файл - одинаково ошибка остается...

Разобрался. В php.ini нашел раскомментированную директиву mail.log.
Согласно документации это "Путь к лог-файлу, в который будут записываться все вызовы функции mail(). Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя To и заголовки".
Эта же директива была раскоменчена в php.ini-development, с которого делал оригинальный php.ini.
Указал полный путь к файлу логов почты - проблема исчезла.
На виртуалке накатил свежий порт - там директива уже в каменте.
Наверно мейнтейнер порта накосячил...