Yii2使用控制台控制器

时间:2016-02-13 09:58:49

标签: php cron yii2

在Yii2.0中,我在控制台控制器中设置了cron作业以发送邮件。当我在提示符中执行cmd php yii cron 时,它正在工作。

我需要每小时执行一次这个文件。 Cpanel没有每小时执行一次为什么?

3 个答案:

答案 0 :(得分:4)

你需要使用php和yii的绝对路径:

* */1 * * * /usr/bin/php /var/www/mysite/yii controller/action

如果您提供正确的路径,那应该可以解决问题。

要找出php的完整路径是什么,请在控制台提示符下运行:

which php

答案 1 :(得分:0)

您可以在cron中为cpanel

设置如下命令

usr / bin / curl -k http://xxxxxxx.com/cron

OR

wget -O / dev / null http://xxxxxxx.com/cron

你的时间设置应该是

0 * * * *

由于

0 * / 3 * * *你的命令在这里

答案 2 :(得分:0)

创建控制台应用程序

事先模板中已有一个文件yii。而且没有必要像php那样运行它,它是Linux脚本。

创建cron服务命令

在控制台/控制器中创建控制器

我创建了TestController.php

<?php

namespace console\controllers;

use yii\console\Controller;

/**
 * Test controller
 */
class TestController extends Controller {

    public function actionIndex() {
        echo "cron service runnning";
    }

    public function actionMail($to) {
        echo "Sending mail to " . $to;
    }

}
?>

此控制器应使用控制台控制器名称空间

use yii\console\Controller;

如何运行

将其作为

运行
yii test

我已经通过运行

在Windows上测试了它
D:\xampp\htdocs\yii2>d:\xampp\php\php yii test
cron service runnning
D:\xampp\htdocs\yii2>

如何传递参数

yii test/mail [--to="ali@hackers.com.pk"]

在Windows中测试它运行为。

D:\xampp\htdocs\yii2>d:\xampp\php\php yii test/mail [--to="ali@hackers.com.pk"]
Sending mail to [--to="ali@hackers.com.pk"]