我已经意识到你为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-cli
代替php -q
,但php-cli给我一个command not found
错误。
所以我对此提出了支持,这就是他们所说的:
我不确定你是如何用另一个命令运行该命令的 主机,因为php-cli不是php命令行界面的命令。 不幸的是,因为这不是一个有效的命令,我不确定我是否 通过运行来了解您要完成的任务。
php -q是执行php-cli的选项,这是你应该做的 用于你的crons;但它只会正确执行 正在执行的文件的编码是正确的。
我已经在这2天了,我的问题是我如何让我的laravel调度程序执行没有任何错误,有没有人有任何经验,在inmotion服务器或类似服务器上部署laravel(流明)应用程序?提前致谢。 :)
答案 0 :(得分: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);
现在似乎工作了。 :)