如何运行artisan命令计划:在托管服务器上运行? (Laravel) [英] How to run artisan command schedule:run on hosting server? (Laravel)

查看:150
本文介绍了如何运行artisan命令计划:在托管服务器上运行? (Laravel)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 xampp \ htdocs \ project \ app \ Console \ Commands文件夹.

I have statusUpdate.php file in the xampp\htdocs\project\app\Console\Commands folder.

statusUpdate.php:

statusUpdate.php :

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use DB;


class statusUpdate extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'status:update';

/**
 * The console command description.
 *
 * @var string
 */
protected $description = 'Update Job status daily';

/**
 * Create a new command instance.
 *
 * @return void
 */
public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    $affected = DB::table('jobs')->update(array('status' => 1));
}
}

它是由以下Laravel官方文档创建的. 然后,我在xampp \ htdocs \ project \ app \ Console文件夹的Kernel.php中添加了\App\Console\Commands\statusUpdate::class,类.

It is created by the following Laravel official documentation. Then I was added \App\Console\Commands\statusUpdate::class, class in Kernel.php on xampp\htdocs\project\app\Console folder.

这是karnel.php文件代码:

Here is the karnel.php file code:

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        \App\Console\Commands\statusUpdate::class,
];

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
    $schedule->command('status:update')
             ->everyFiveMinutes();
}
}

然后我被奔跑了

php artisan schedule:在Windows 7上使用CMD运行命令.

php artisan schedule:run command using CMD on windows 7.

现在,它可以正常工作(在本地服务器中).我的作业表状态字段已正确更新为1.

Now it is working fine(in local server). My jobs table status field is updated properly by 1.

但是当我在共享主机上部署该项目并在cPanel中为我的服务器添加了CRON命令时:

But when I was deployed this project on the shared hosting and added a CRON command for my server in cPanel:

Cron作业命令是这样的:php /path/to/artisan schedule:run 1>> /dev/null 2>&1

Cron job command is like this : php /path/to/artisan schedule:run 1>> /dev/null 2>&1

现在在这种情况下,命令不起作用&这就是问题.我该怎么解决?

Now in this case command not working & this is the problem. how can I solve it?

推荐答案

好.我按照您的意见给您答案.

Well. I am giving you the answer as per what you have said.

Cron作业命令是这样的:php /path/to/artisan schedule:run 1>> /dev/null 2>&1

路径应在服务器中找到artisan文件.像这样:

The path should be locating the artisan file in the server. Like this:

假设您的工匠文件位置为/var/www/artisan,那么简单的答案就可以这样:

Let's say your artisan file location is /var/www/artisan, then the simple answer could be do like this:

php /var/www/artisan schedule:run 1>> /dev/null 2>&1

只需检查是否可行.谢谢!

Just check if that works. Thank You!

更新:

这是它的外观.

这篇关于如何运行artisan命令计划:在托管服务器上运行? (Laravel)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆