【发布时间】:2014-08-01 12:31:04
【问题描述】:
哪些有效,哪些无效:
我有一个自定义的 sendmail 包装脚本,它仅由 PHP-Cli 触发,但在通过 Apache php_mod 执行时不会触发。
- 当我运行
$ php mail.php时,一切正常,mail() 返回 true。 - 当我通过我的 Apache 运行同一个文件时,它不起作用,mail() 返回 false。
- 在这两种情况下,我的
(php.ini) [mail function] mail.log = ...文件中都有一个条目。
问题:
那么我该如何解决这个问题? 我希望它可以通过 PHP-Cli 和 Apache php_mod 工作。
设置:
- 我将 php.ini 文件中的
sendmail_path变量设置为我的自定义包装脚本。 - 我不运行 SELinux。
我不运行 AppArmor。
PHP 版本:5.5.15
- Apache 版本:2.4.10
- 系统为:ArchLinux(内核:3.15.5)
配置:
编辑:
目前 Apache 无法访问 sendmail_path 的 php.ini 值,我该如何解决这个问题?
我的 php.ini 中disable_functions 的列表是空的。
phpinfo() on 的输出:
- PHP-Cli
- Apache 在 pastebin ID: rjjjtUXZ
抱歉,目前我的问题中不允许使用超过 2 个链接。
【问题讨论】:
-
通过apache调用时检查执行php的用户。 apache 用户可能没有足够的权限来执行或访问 sendmail_path 的配置。
-
好吧,你是对的,一个 ini_get('sendmail_path') 显示它包含错误的值,我将如何授予它访问权限?
-
检查 phpinfo() 在这两种情况下,检查配置文件的位置,它可能不同,所以确保两个地方都有正确的配置。 100% 确定两种情况下的配置文件不一样
-
如果 sendmail_path 设置不正确,您可以使用 'which sendmail' 找出您的 sendmail 路径并将其设置为 sendmail_path var
-
@AronNovak
Loaded Configuration File是一样的。但sendmail_path的值不同。