在生产服务器上设置 Laravel 调度程序(Inmotion 托管)
Setting Up Laravel Scheduler on Production Server (Inmotion Hosting)
我已经意识到,您为 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
错误。
所以我就此询问了支持人员,他们是这样说的:
I am not certain how you were able to run that command with another
host, as php-cli is not a command for the php command line interface.
Unfortunately, because this is not a valid command, I am not sure if I
understand what you are trying to accomplish by running it.
php -q is the option that executes php-cli, which is what you should
be using for your crons; however it will only properly execute if the
coding of the file that you are executing is correct.
我已经用了 2 天了,我的问题是如何让我的 laravel 调度程序无任何错误地执行,有没有人有部署 laravel(lumen ) 在 inmotion 服务器或类似服务器上的应用程序?提前致谢。 :)
所以它可能与 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);
现在似乎可以工作了。 :)
我已经意识到,您为 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
错误。
所以我就此询问了支持人员,他们是这样说的:
I am not certain how you were able to run that command with another host, as php-cli is not a command for the php command line interface. Unfortunately, because this is not a valid command, I am not sure if I understand what you are trying to accomplish by running it.
php -q is the option that executes php-cli, which is what you should be using for your crons; however it will only properly execute if the coding of the file that you are executing is correct.
我已经用了 2 天了,我的问题是如何让我的 laravel 调度程序无任何错误地执行,有没有人有部署 laravel(lumen ) 在 inmotion 服务器或类似服务器上的应用程序?提前致谢。 :)
所以它可能与 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);
现在似乎可以工作了。 :)