首先是一些信息:
- Debian Squeeze
- PHP 5.3.3
- PHP使用mod_cgi
- 在此情况下,我必须绝对使用
mail()
。对于我的其他项目,我已经使用SMTP邮件。
我已将网站超时的问题隔离到了PHP的mail()
函数。这是在我的服务器上test.php文件中唯一的一行代码:
<?php mail('rudolf@geardev.de', 'test', 'test');
这似乎需要无限时间,然后在40秒后由mod_cgi终止。该命令
php -r "mail('rudolf@geardev.de', 'test', 'test');"
在命令行上发送电子邮件可以立即完成。
请告诉我您想查看哪些日志文件,Apache日志是这个:
[Thu Jan 17 12:17:00 2013] [warn] [client 178.15.148.43] mod_fcgid: read data timeout in 40 seconds
[Thu Jan 17 12:17:00 2013] [error] [client 178.15.148.43] Premature end of script headers: test.php
我认为问题出在我几天前无意中在根目录下运行了chmod -R 775
命令。除了这个问题,我已经修复了所有错误。
phpinfo()
并查看是否已激活 sendmail 扩展。 - Vlad Preda/var/log/mail.log
文件以查找错误。 - s.webbandit<?php system('php -r "mail('rudolf@geardev.de', 'test', 'test');"'); ?>
- 如果能够执行成功,那么忘记我之前说的所有话。 - Ragen Dazs