我一直在寻找stackoverflow和许多其他网站的想法,但没有任何工作到目前为止,我需要更多的直接帮助。
我有一个专用的Ubuntu服务器(9.04 jaunty),我正在运行几个PHP网站,与Apache2。 我的问题是,邮件()函数已停止工作。 一段时间以来,我一直在使用PEAR Mail Queue来处理大多数电子邮件,所以我不确定邮件()什么时候停止工作,但我仍然需要OpenCart设置,还有一些其他的东西,但是mail()无论我做什么都保持返回错误。 即使这个简单的代码不会工作:
<?php mail('mail@example.com','test','test'); ?>
所以,我一直在寻找php.ini中的Sendmail设置,这些设置都在检查中,当我在命令行中运行它时,它可以正常工作,并向我发送一封电子邮件:
# sendmail mail@example.com test message
所以我认为这可能是PHP本身有问题,所以我尝试以下命令:
# php -r "mail('mail@example.com','test','test');"
而且它也发送电子邮件没有任何问题! 那可能是什么呢? 我开始认为这可能是某种权限问题,也许www-data在运行脚本时遇到了一些问题。 仍然不确定,因为我甚至不能运行这个脚本:
<?php echo exec('whoami'); ?>
它也返回false! 我已经运行了visudo命令,并添加了以下行以防万一:
www-data ALL=(ALL) ALL
而且我已经将root用户和组的所有者更改为root: www-data:www-data,但仍然没有任何结果!
我还有什么可以尝试? 一定有一些东西! 谁能帮我?
命令行和网络服务器不共享相同的php.ini! 检查在命令行和服务器模块中使用哪个php.ini。
几个星期前我有同样的问题。 我试过了:
还有其他一些
我在我的错误日志中有一个条目说Segmentation fault
。 2天后发现问题。 我在我的debian系统上使用了Exim4,与apache2的组合给出了分段错误。 我用Postfix替换了Exim4,它工作正常!
然而,在你的情况下,你不能像whoami
那样运行一个exec,而你应该追求这个道路。
因为邮件功能最终到达os,exec命令应该工作!
你可以发送电子邮件使用phpMailer抛出SMTP使用你的邮件()功能。 代码在这里(http://phpmailer.worxware.com/)只是一个想法
可能可以使用这个excart for opencart来使用phpmailer来替换邮件功能。 我还没有测试过,所以认为这可能会给一些人一些想法。
在我的情况下,这是在我玩的Magento泊坞窗图像中使用的php-fpm
。 它保持php预装(配置)。
重新启动后,它拿起新的设置: 如何重新启动或只是sudo killall php-fpm
。