1. 设置Windows的任务计划
可以参考win7计划任务的设置方法
2. 新建Windows执行文件bat
新建cron.bat文件,内容如下:
D:
cd \wamp\www\tp32
D:\wamp\bin\php\php.exe index.php /Home/Crontab/test
PHP在命令环境下执行ThinkPHP框架程序时,必须进入到ThinkPHP框架的根目录下执行,否则会执行失败
3. 在执行某些新增的PHP扩展时,在浏览器上运行可以执行,在命令行执行则报错(==使用wamp环境==)
出现这种情况主要是由于这两种环境下加载的php.ini文件不一样
- 在浏览器环境下通过url访问执行执行是,是通过Apache来调用PHP的,所以此时的加载的php.ini是在D:\wamp\bin\apache\apache2.4.9\bin\目录下的。
- 而在命令行执行时,是直接通过PHP来执行程序的,所以此时加载的php.ini文件是在PHP的安装目录下的,即D:\wamp\bin\php\php5.5.12\目录下
- 其实我们可以通过在浏览器端打印phpinfo()和在命令行执行php -m,如果两个php.ini的配置文件不一样的话我们会发现他们所列出的扩展是不一样的
d:
cd D:\workspace\dzx2
php.exe D:\workspace\dzx2\index_cli.php Sms/sendjob>c:\smslog.txt
意思以此是:当前目录移动到d盘,当前目录移动到D:\workspace\dzx2文件夹下(我的项目入口文件),通过绝对路径的php.exe 空格输入绝对的项目cli入口文件,后面空格+参数(我已经把php.exe添加到了系统的环境变量的path变量中,所以只写了php.exe)
简单就是:当前目录移动到项目入口文件,绝对路径的php.exe+绝对路径的项目入口文件+参数
把txt文件改为bat后缀的可执行文件,单击测试是否把执行了方法
(可以在bat文件最后写个Pause,来看看是否报错,或直接写入“>c:\smslog.txt ”吧输出的内容导入到一个txt文件,运行后查看该文件就知道报错与否或报哪些错误)