Почему оправка почты через php mail() перестает работать со временем?
vds на digitalocean, тариф за 5$ - 512 ram оперативки
На сервере работает centos 6.4 + php 5.5 + httpd + mysql
Сайтов - 4 штуки, все тестовые, без сильной активности.
Сайты не тормозят при загрузке.
Почтовик стоит postfix.
После запуска httpd - почта отправляет нормально. Через время получаю такие сообщения:
string(36) "Could not instantiate mail function."
Warning: mail(): Could not execute mail delivery program '/usr/sbin/sendmail -t -i' in /var/www/public_html/includes/test.php on line 14
Через консоль в это время отправка почты работает. т.е. проблема явно в php + httpd.
Сдается мне, что проблема в нехватке памяти.
Однако, сделан swap, который максимум занят на 50%, а основная оперативная память забита то на 50%, то на 90%.
В логах /var/log/maillog глухо. В логах httpd - то же, что написано выше.
/usr/sbin/sendmail - символьная ссылка на /alternatives/mta, который в свою очередь ведет на /usr/sbin/sendmail.postfix, т.е. отправка идет через него. Сам sendmail не установлен.
Настройка апача самая базовая, не считая добавления виртуальных хостов.
Можно поподробнее. Полагаю, что prefork как-то связан с резервированием памяти или заранее создаются процессы?
Если смотреть по ps aux, то там висит 9 процессов обычно
Просто вам надо либо увеличить размер памяти, либо уменьшить число процессов апача, потребление ими памяти, ну и в мускуле тоже самое.
Проблема не в почтовой программе, просто сервер не справляется с нагрузкой.