1

sendmail正在从浏览器工作,但是当我/usr/bin/php cron.php从命令行工作时,它会说

sh: /sendmail: no such file or directory...

我什至运行了which命令,它向我显示了sendmailin/usr/sbin/sendmail并且sendmail_pathinphp.ini是正确的。

为什么要sendmail从命令行检查根目录?

附加:我们可以sendmail在根sbin目录中添加别名(快捷方式)吗?

编辑:我坚持使用 sendmail 的原因是标准邮件库不尊重我的返回路径。

4

1 回答 1

1

which命令的工作方式是检查变量PATH指向的目录中的给定可执行文件。PATH可以使用简单的命令将变量更改为任何所需的值,例如export PATH=SOMETHING当您希望它指向不同的事物时。所以我猜如果您的which命令指向/usr/sbin/sendmail何时从命令行运行并且仍然cron.php没有从那里获取它,那么您cron.php可能正在更改PATH某处的值或者编码出错并且您的代码正在sendmail使用绝对路径调用。

首先,确保上面提到的事情是正确的。如果它们是,并且问题仍然存在,正如您所猜测的,您可以创建一个软链接/sendmail指出/usr/sbin/sendmail

于 2012-08-08T10:18:17.743 回答