【问题标题】:Laravel 4 - command in shared hosting cron jobLaravel 4 - 共享主机 cron 作业中的命令
【发布时间】:2015-04-19 21:56:49
【问题描述】:

我使用

开发了一个简单的新命令
php artisan command:make MyCommand

之后,我以这种方式在 app/start/artisan.php 中注册了它

Artisan::add('MyCommand');

本地调用命令没问题

php artisan command:MyCommand

但是当我尝试使用 cron 作业调用命令时出现错误 cron作业就是这样完成的

/usr/bin/php -c /usr/local/apache/conf/userdata/std/2/dferdinw/php.ini /home2/dferdinw/public_html/ff4b/artisan command:MyCommand

但我收到此错误

[InvalidArgumentException] 
Command "command:MyCommand" is not defined. 
Did you mean this? 
command:make 

有什么想法???

【问题讨论】:

  • 你能发布你的命令类吗? (也许你错过了一些配置)。

标签: laravel cron command


【解决方案1】:

更新

如果这在本地工作而不是在您的服务器上,请检查您的文件是否在您的服务器上更新。


似乎如果它在命令行中工作,它应该在 Cron 中工作。尝试添加

echo __DIR__; 

到 fire 方法并再次手动运行它以验证您是否获得了正确的 DIR。

如果它在命令行中不起作用,请确保您通过更改来命名您的命令

protected $name = 'command:MyCommand';

生成器不会为您填写此内容。

也试试

Artisan::add(new MyCommand);

然后运行

php artisan dump-autoload

为你的 cron 工作尝试

cd /home2/dferdinw/public_html/ff4b/; php artisan command:MyCommand;

【讨论】:

  • 谢谢布赖恩,DIR 没问题.. 还有 $name 值!当我从 cron 作业 php /folders.../artisan list 执行时,列表中没有出现 command:MyCommand ... 好像 Artisan::add('MyCommand') 没有执行!
  • 添加了更多尝试。
  • 是的,我已经尝试过使用 dump-autoload .. 但它不起作用!
  • 很奇怪。似乎它运行的是不同的 Laravel 安装。您是否将它安装在任何其他目录中?
  • Laravel 安装在标准目录中.. 可能是 Web 服务器的奇怪配置?我不知道!!在您上一篇文章中修改的 cron 作业也没有任何变化!真的不懂!
猜你喜欢
  • 1970-01-01
  • 2012-01-10
  • 2016-12-07
  • 2018-01-03
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 2013-10-09
相关资源
最近更新 更多