我设置的工匠命令有点奇怪的问题。
命令是:
cd /var/sites/p/mydomain.co.uk/public_html/ && /usr/bin/php-5.4 artisan property:import
此命令在通过ssh或本地计算机运行时运行良好,但在设置为CronJob时无法运行,并在Laravel日志文件中返回以下错误。
[2014-06-17 13:50:06] production.ERROR: exception 'InvalidArgumentException' with message 'There are no commands defined in the "property" namespace.' in /var/sites/p/mydomain.co.uk/public_html/vendor/symfony/console/Symfony/Component/Console/Application.php:514
Stack trace:
#0 /var/sites/p/mydomain.co.uk/public_html/vendor/symfony/console/Symfony/Component/Console/Application.php(548): Symfony\Component\Console\Application->findNamespace('property')
#1 /var/sites/p/mydomain.co.uk/public_html/vendor/symfony/console/Symfony/Component/Console/Application.php(188): Symfony\Component\Console\Application->find('property:import')
#2 /var/sites/p/mydomain.co.uk/public_html/vendor/symfony/console/Symfony/Component/Console/Application.php(121): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /var/sites/p/mydomain.co.uk/public_html/artisan(58): Symfony\Component\Console\Application->run()
#4 {main} [] []
我很困惑,不知道为什么在作为cron运行时找不到“属性”命名空间。当通过ssh运行完全相同的命令时,它完美地工作,当在本地机器上运行时,它完美地工作。
在工匠作为cronjob运行时,是否有任何工具导致它无法加载 app / start / artisan.php 文件?
非常感谢任何帮助。如果您需要任何进一步的细节,请告诉我,我会尽我所能。
谢谢,
乔
答案 0 :(得分:4)
经过长时间检查并与托管服务提供商交谈后,发现运行/usr/bin/php-5.4
正在运行php的cgi版本,将其更改为/usr/bin/php-5.4-cli
解决了问题。
这当然非常取决于您的托管服务提供商设置。