1

我开始意识到,你如何为 laravel 调度程序编写 cron 因托管而异,因此在这种情况下文档是无用的。

我在以前的主机(siteground)上使用的相同代码似乎不适用于我当前的主机(inmotion)。

运行调度程序的 cron,我从我的 CPanel 设置的似乎工作:

php -q /home/xxxxx/xxxxx/artisan schedule:run

我说它似乎有效,因为每当我的 cron 运行时我都会收到这封电子邮件:

Running scheduled command: /usr/bin/php -q /home/xxxxx/xxxxx/artisan {command} > '/dev/null' 2>&1 &

现在上面的脚本似乎没有执行它只是挂起并且进程堆积起来吃我的内存,直到我的整个服务器崩溃。

所以我在这里很困惑,为什么php -q /home/xxxxx/xxxxx/artisan schedule:run执行但不知何故我的应用程序无法执行/usr/bin/php -q /home/xxxxx/xxxxx/artisan {command}

我用谷歌搜索了它并提出了一些建议,php-cliphp -qphp-cli 给了我一个command not found错误。

所以我要求对此提供支持,这就是他们所说的:

我不确定您如何能够在另一台主机上运行该命令,因为 php-cli 不是 php 命令行界面的命令。不幸的是,因为这不是一个有效的命令,我不确定我是否理解你通过运行它来完成什么。

php -q 是执行 php-cli 的选项,你应该为你的 crons 使用它;但是,只有当您正在执行的文件的编码正确时,它才会正确执行。

我已经做了 2 天了,我的问题是如何让我的 laravel 调度程序在没有任何错误的情况下执行,有没有人有在 inmotion 服务器或类似服务器上部署 laravel(lumen) 应用程序的经验?提前致谢。:)

4

1 回答 1

3

因此,它可能与 cli php 版本有关,但仍不确定,但我终于可以使用它了:

/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan schedule:run

然后我将第 49 行的 Illuminate/Console/Scheduling/Schedule.php 文件编辑为:

return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);

似乎现在可以工作了。:)

于 2017-04-05T01:41:51.110 回答