Php 为什么我的命令在CLI中工作,但不与cron作业一起工作?

Php 为什么我的命令在CLI中工作,但不与cron作业一起工作?,php,macos,command-line,terminal,cron,Php,Macos,Command Line,Terminal,Cron,我有以下命令在终端上按原样工作: php ~/Sites/meetmyfriends-back/index.php tools reset_avail 我正试图做一个cron工作,但它不起作用 0 6 * * * php ~/Sites/meetmyfriends-back/index.php tools reset_avail 我每天早上6点要 为什么它不起作用 我还想将日志存储在一个带有>>~/MyFile的文件中,但这样做不起作用。无论是邮件还是电子邮件:my@email.com. 请

我有以下命令在终端上按原样工作:

php ~/Sites/meetmyfriends-back/index.php tools reset_avail
我正试图做一个cron工作,但它不起作用

0 6 * * * php ~/Sites/meetmyfriends-back/index.php tools reset_avail
我每天早上6点要

为什么它不起作用

我还想将日志存储在一个带有>>~/MyFile的文件中,但这样做不起作用。无论是邮件还是电子邮件:my@email.com.

请告知。我使用的是Mac OS X 10.10

编辑:经过几次尝试,我现在的处境如下:

0 6 * * * /usr/bin/php /Users/YohannM/Sites/meetmyfriends-back/index.php tools reset_avail >> /Users/YohannM/Sites/meetmyfriends-back/resetA.log

很有信心,问题在于相对路径:

您应该设置脚本的完整路径。像这样的东西;当然,将/Users/MilesM更改为您的实际路径:

0 6 * * * php /Users/MilesM/Sites/meetmyfriends-back/index.php tools reset_avail
问题是,当您通过cron作业运行命令时,它不会加载登录时获得的所有bash设置和路径。因此,在终端中,~/是有意义的,但对于cron作业来说,/Users/MilesM/是一条出路

你还问:

我也想将日志存储在一个带有>>~/MyFile的文件中,但是 那也不管用。无论是邮件还是电子邮件:my@email.com.

对于>>~/MyFile,解决方案是相同的。必须按如下方式设置完整路径:

>> /Users/MilesM//MyFile
which php
但不清楚MAILTO:my@email.com. 这是一个HTML标记。您的意思是您正试图通过PHP脚本发送邮件吗?不确定那部分

此外,您还需要指定可以执行此操作的完整PHP路径。首先,使用如下所示的方法确定完整的PHP路径:

>> /Users/MilesM//MyFile
which php
在我的Mac OS X设置中,它返回:

/usr/bin/php
因此,完整的命令将是:

0 6 * * * /usr/bin/php /Users/MilesM/Sites/meetmyfriends-back/index.php tools reset_avail

这应该是可行的。

甚至可能需要php可执行文件的完整路径,这取决于cron运行的$path:/usr/bin/php/Users/Miles/Sites../index.php工具重置\u availI会让您尽快知道这是否必要。不幸的是,0 6***php/Users/MilesM/Sites/meetmyfriends back/index.php工具重置\u avail不起作用。“我要试试迈克尔·B.的建议。”米尔斯姆。很遗憾听到你仍然被卡住了。查看我的编辑,了解有关如何确认将使用正确的php完整路径的详细信息。