首页 > 代码库 > yii crontab 命令使用 经测试

yii crontab 命令使用 经测试

今天要用到crontab 项目是用的yii框架  于是乎 上网查了下看看怎么用 结果得到了不少提示 也被坑的好惨, 最后还是自己研究下然后实现了, 所以写此文以便解救迷雾中的道友


Yii的文件结构里呢 有个文件夹commands 若没有的话 自己建一个 看好目录的位置 和名字不要写错


Yii框架呢 他的公外部调用的命令都是放在这个文件夹下的 它的调用时靠protected/yiic.php 来做入口文件的

配置yiic代码


画红框的地方是需要注意的

可以看到 我在代码中注释掉了AB区域这个地方使用的是相对路径 二C区域呢使用的是绝对路径为什么这么写呢,我们继续往下看

在commands文件下建一个文件 TestCommand.php代码如下

class TestCommand  extends CConsoleCommand 
{

    public function run($args)
    {
		echo '测试command';
	}
}

然后呢我们在linux运行下这个脚本看看可以不

[root@S1 protected]#  /usr/local/php/bin/php yiic.php  Test >> commands/t.log

我解释下这行代码:首先进图到项目的protected文件夹下, /usr/local/php/bin/php这一段是你的php可执行文件的位置就相当于window下的那个php安装目录的php.exe文件位置 yiic.php这个入口文件  Test就是我们刚刚建的那个命令文件    >> commands/t.log 这一段的意思是吧结果输入到这个t.log文件里

这个时候能 若你yiic.php里的文件用的是相对路径的话可能会出现包含文件不存在的错误,解决方法,第一你把那个路径输入到log文件里看下 路径对不对然后自己改对,还有一种就是用绝对路径,但是要注意绝对路径虽然省事但是一旦换了环境 可能会由于目录结构有些差异导致包含文件找不到。

在这个地方还可能抱一个错误,就是yiic.php是不允许访问的错 你可以通过修改yiic的权限解决,至于怎么把这航命令放在crontab让系统自己定时跑 自己去Google吧,欢迎指出文档错误内容,我会及时修改,一起学习研究。


yii crontab 命令使用 经测试