use*_*164 9 php apache email ubuntu
我一直在寻找stackoverflow和许多其他网站的想法,但到目前为止没有任何工作,我需要更多的直接帮助.
我有一个专门的Ubuntu服务器(9.04 jaunty),我在那里运行几个PHP网站,使用apache2.我的问题是mail()函数已停止工作.一段时间以来我一直在使用PEAR邮件队列来处理大多数电子邮件,所以我不确定邮件()何时停止工作,但我仍然需要它用于OpenCart设置,以及其他一些东西,但是mail()无论我做什么,都会保持回报.即使这个简单的代码也行不通:
<?php
mail('mail@example.com','test','test');
?>
Run Code Online (Sandbox Code Playgroud)
所以,我一直在查看php.ini中的Sendmail设置,这些设置全部检出,当我在命令行中运行它时,它运行正常并向我发送一封电子邮件:
# sendmail
mail@example.com
test message
Run Code Online (Sandbox Code Playgroud)
所以我认为可能是php本身存在问题,所以我尝试以下命令:
# php -r "mail('mail@example.com','test','test');"
Run Code Online (Sandbox Code Playgroud)
它也发送电子邮件没有任何问题!那可能是什么?我开始认为这可能是某种权限问题,也许www-data在运行脚本时遇到了一些问题.仍然不确定这一点,因为我甚至无法运行此脚本:
<?php
echo exec('whoami');
?>
Run Code Online (Sandbox Code Playgroud)
它也返回false!我运行了visudo命令并添加了以下行以防万一:
www-data ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
我已经将文件的用户和组所有者从root:root更改为www-data:www-data但仍然没有!
我还能尝试什么?必须有一些东西!谁能帮我?
几周前我也遇到了同样的问题。我试过:
还有其他一些。
我的错误日志中有一个条目说Segmentation fault
。2天后发现问题。我在 debian 系统上使用 Exim4,与 apache2 组合出现分段错误。我用 Postfix 替换了 Exim4,它成功了!
然而,在你的情况下,你不能像这样运行 exec whoami
,你应该追求这条路径。
因为邮件功能最终会到达操作系统,所以 exec 命令应该可以工作!
归档时间: |
|
查看次数: |
7352 次 |
最近记录: |