2017-04-04 71 views
1

我已经认识到,如何为laravel调度程序编写cron因托管而不同,因此在这种情况下文档无用。在生产服务器上设置Laravel调度程序(Inmotion主机)

我在以前的主机(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}

我GOOGLE了它和若干建议,其中使用php-cli,而不是php -q但是PHP-CLI给了我一个command not found错误。

于是我问的支持这件事,这就是他们说:

我不能肯定你如何能够运行与另一 主机的命令,如PHP-CLI是不是为一个命令php命令行界面。 不幸的是,因为这不是一个有效的命令,我不知道我是否知道你想通过运行它来完成什么。

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

我一直在这2天了,我的问题是如何得到我的laravel调度,以没有任何错误执行,没有任何人有部署laravel INMOTION服务器或类似的(流明)应用程序的经验?提前致谢。 :)

回答

2

因此,它可能有一些做的CLI PHP版本仍然不能确定,但​​我终于得到它与这个工作:

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

,然后我编辑我照亮/控制台/计划/ Schedule.php文件在第49行到此:

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

似乎现在就工作。 :)

相关问题