Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel计划:运行命令不起作用_Php_Laravel 5_Bitnami - Fatal编程技术网

Php Laravel计划:运行命令不起作用

Php Laravel计划:运行命令不起作用,php,laravel-5,bitnami,Php,Laravel 5,Bitnami,我正在实时服务器(Linux)上的laravel中设置后台时间表。我正在使用bitnami。但是当我使用comand时,schedule:run不起作用,如下所示: * * * * * /opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/turnfitter/artisan schedule:run 1>> /dev/null 2>&1 * * * * * php artisan schedule:run 1>

我正在实时服务器(Linux)上的laravel中设置后台时间表。我正在使用bitnami。但是当我使用comand时,
schedule:run
不起作用,如下所示:

* * * * * /opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/turnfitter/artisan schedule:run 1>> /dev/null 2>&1
* * * * * php artisan schedule:run 1>> /dev/null 2>&1 ###
$schedule->command('payment:check')->everyMinute();
我也试过这样:

* * * * * /opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/turnfitter/artisan schedule:run 1>> /dev/null 2>&1
* * * * * php artisan schedule:run 1>> /dev/null 2>&1 ###
$schedule->command('payment:check')->everyMinute();
没有发生错误,但计划不起作用

当我这样尝试时:

php artisan schedule:run 1>> /dev/null 2>&1
或者

/opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/turnfitter/artisan schedule:run 1>> /dev/null 2>&1
如果没有星号(*),则它可以工作,但只处理了一个命令,我在内核中的时间表中设置为每分钟一个命令,如下所示:

* * * * * /opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/turnfitter/artisan schedule:run 1>> /dev/null 2>&1
* * * * * php artisan schedule:run 1>> /dev/null 2>&1 ###
$schedule->command('payment:check')->everyMinute();
但当我运行
schedule:run
命令时,它只运行一次,之后什么也不做。我每小时、每天等调用的其他命令根本不起作用


有人能告诉我问题出在哪里吗?

使用Bitnami灯组,可在

以下是我在Laravel上成功设置日程的步骤:

  • 取消对Apache congirutation文件
    /opt/bitnami/apache2/conf/bitnami/bitnami apps prefix.conf下一行的注释:

    #Include "/opt/bitnami/lampstack-5.6.26-3/frameworks/laravel/conf/httpd-prefix.conf"
    
  • 在文件
    /opt/bitnami/frameworks/laravel/app/Console/Kernel.php
    上编辑方法计划:

    protected function schedule(Schedule $schedule)
    {
        $schedule->exec('echo "Hello World"')
          ->everyMinute()
          ->appendOutputTo('/tmp/laravel.log');
    }
    
  • 重启Apache:
    sudo/opt/bitnami/ctlscript.sh重启Apache

  • 运行:
    /opt/bitnami/php/bin/php/opt/bitnami/frameworks/laravel/artisan计划:运行>>/dev/null 2>&1
结果:

  • Laravel样本项目可从以下网址获得:
  • 每分钟都会在/tmp/laravel.log上添加一行“Hello world!”
你应浏览:

  • Bitnami Laravel文件:

  • Laravel官方文件(日程安排):


Laravel的
php artisan schedule:run
命令只运行一次调度器。为了使其工作,您需要将此命令添加到位于/etc目录的cron配置文件(crontab)中。请按照以下步骤操作:

步骤1: 将cron条目添加到crontab文件[使用nano打开文件
/etc/crontab
]

* * * * * root php path/to/artisan schedule:run
注: -****的意思是每分钟运行一次命令 -root是用户名,您应该指定适当的用户名 -请在laravel项目中指定artisan命令的完整路径

步骤2: 重新启动服务

> sudo service cron reload   
> sudo service cron stop  
> sudo service cron start
要检查cron的状态,请运行
sudo服务cron status

步骤3: 确保您已经在App/Console/Kernel中的schedule函数中编写了代码。以下是我在那里写的:

   protected function schedule(Schedule $schedule)
    {
        $schedule->call(function(){
            Mail::send([],[],
                function ($m){
                    $m->to(['test@example.com'],'Notify')
                        ->subject('Renewal Notification')
                        ->setBody('You have upcoming renewal.');
                });
        })->everyTenMinutes();
    }

Laravel提供了许多函数来安排您的调用或命令。我使用了
everyTenMinutes()
函数。然而,Laravel在内部处理这些计划,我们应该只确保在cron配置文件中使用单个条目(在步骤1中提到)频繁调用
schedule:run
命令

抱歉,我不太清楚,因为我的laravel(在bitnami lampstack之外使用vhost)也有问题,我是否需要通过
取消对apache配置文件的注释来遵循您的答案?