在Yii2.0中,我在控制台控制器中设置了cron作业以发送邮件。当我在提示符中执行cmd php yii cron 时,它正在工作。
我需要每小时执行一次这个文件。 Cpanel没有每小时执行一次为什么?
答案 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"]