最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容易解决的,但是后来还有其他各种报错,经过查看相关核心代码,终于找到无需修改代码,就可以轻易使用cli模式的方法。

步骤如下:
1、官方下载的框架文件里面的index.php文件引入其他文件使用的是相对路径,这导致了定时执行的时候引入ThinkPHP.php文件不存在的问题,修改成绝对路径即可。
define( 'APP_PATH', dirname(__FILE__).'/Application/' );
require dirname( __FILE__).’/ThinkPHP/ThinkPHP.php';

2、思维要倒回去第半步,刚刚说index.php文件的相对路径跟绝对路径的问题,但是执行cli模式的时候,我们的入口文件要有别于通过web服务访问的index.php文件,比如增加cli模式的入口文件cli.php,内容跟index.php的一样,同时增加一句话
define(‘APP_MODE’,'cli');
定义APP的执行模式。此时,我们有两个入口文件,一个是web服务访问方式的index.php,另一个是cli模式访问的cli.php
3、在路径 /ThinkPHP/Mode 下面有个文件,名字叫做common.php ,复制一份出来,命名为cli.php,然后把里面引入日志类的代码注释或者删除掉
'Think\Log' => CORE_PATH . ‘Log'.EXT,

4、删除缓存下面的所有缓存——记得是所有

5、再啰嗦一句,以后cli模式调用的时候,就用cli.php入口文件,比如定时任务 0 * * * * php /www/cli.php home/article/get ,如果是web服务访问,则依然使用index.php文件

转载于:https://www.cnblogs.com/shifu204/p/6814098.html

thinkphp3.2 cli模式的正确使用方法相关推荐

  1. php cli模式下获取参数的方法

    转载声明:http://blog.csdn.net/fdipzone/article/details/51945892 php在cli模式下接收参数有两种方法 1.使用argv数组 <?php ...

  2. php cli获取参数,php cli模式下获取参数的方法

    PHP在cli模式下接收参数有两种方法 1.使用argv数组 2.使用getopt方法 1.使用argv数组 例如:需要执行一个php,并传递三个参数(type=news, is_hot=1, lim ...

  3. PHP CLI模式开发

    PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合. 有两种方法可以运行PHP CLI脚本. 第一种方法是使用php -f /path ...

  4. php cgi远程控制,php-cgi如何使用(php cli模式执行php文件)

    php-cgi如何使用(php cli模式执行php文件) php-cgi如何使用(php cli模式执行php文件) 需求:如果使用浏览器,发邮件100万封邮件.这个时候浏览器就不能动了要一直在发邮 ...

  5. mybatis是什么_为什么SpringMVC可以正确解析方法参数名称,但MyBatis却不行?

    对Java字节码有一定了解的朋友应该知道,Java 在编译的时候,默认不会保留方法参数名,因此我们无法在运行时获取参数名称.但是在使用 SpringMVC 的时候,我发现一个奇怪的现象:当我们需要接收 ...

  6. python工厂模式 django_python设计模式-工厂方法模式

    题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...

  7. react避免子组件渲染_如何与React一起使用正确的方法来避免一些常见的陷阱

    react避免子组件渲染 One thing I hear quite often is "Let's go for Redux" in our new React app. It ...

  8. 创建型模式二:工厂方法模式

    1. 工厂模式介绍 工厂模式(Factory Pattern)的意义就跟它的名字一样,在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象.工厂模式根据不同的参数来实现不同的分配方案和创建对象. ...

  9. 测线仪正确使用方法图解1

    测线仪正确使用方法图解1 测线仪正确使用方法图解2 测线仪正确使用方法图解3 测线仪正确使用方法图解,我们来使用莱视威测试仪YN891,先说说第一个功能,测线,首先,我们打开旁边的电源开关,可以看到测 ...

最新文章

  1. Go语言中的匿名函数和闭包的样子
  2. 初学__Python——Python的流程控制语句 if、for、while
  3. 小小鸡蛋竟然能够承受1200kg重量!?
  4. 是网关吗_智能家居网关功能这么多,你都知道吗?
  5. Swagger 注解~用于模型
  6. libjpeg学习3:turbojpeg试用
  7. python核心编程源代码
  8. python2.7中文手册下载_python 2.7.12中文文档下载|
  9. android跳转到rn界面,第五章 RN与Native—由原生页面跳转到Rn页面;在Rn页面调用Android Native组件和Native数据...
  10. 《Game说》| 揭秘百万DAU抖音现象级小游戏背后的故事
  11. 解决phpstorm运行很卡问题
  12. matlab数学实验报告西安交通大学微分方程模型高为16米,数学实验第二次作业——常微分方程数值求解...
  13. 【1071】C语言程序设计教程(第三版)课后习题6.9
  14. osgEarth2.10.2中关于空间参考系的一些理解
  15. 华为OJ 初级:人民币转换
  16. 如何写好大型项目的项目周工作汇报
  17. Ubuntu 下的阿里旺旺
  18. The Design of Everyday Things 读书笔记
  19. 教培机构如何利用社群引流招生
  20. ESP32开发之旅——AS608指纹识别模块

热门文章

  1. 润乾报表使用问题总结
  2. spring 中bean初始化
  3. 【转】 Objective C实现多继承
  4. Java数组数字排列
  5. mysqldump 导出数据库中每个表的前100条(前n条)
  6. 设计模式的七大设计原则:其六:迪米特法则
  7. 发现一个很nice的API调试工具
  8. c++语言代码游戏,c++小游戏(贪吃蛇)源程序
  9. 前端,后端,全栈哪个好找工作?
  10. Web前端入门学习之JS基础知识梳理汇总