thinkphp3.2 cli模式的正确使用方法
最近要使用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模式的正确使用方法相关推荐
- php cli模式下获取参数的方法
转载声明:http://blog.csdn.net/fdipzone/article/details/51945892 php在cli模式下接收参数有两种方法 1.使用argv数组 <?php ...
- php cli获取参数,php cli模式下获取参数的方法
PHP在cli模式下接收参数有两种方法 1.使用argv数组 2.使用getopt方法 1.使用argv数组 例如:需要执行一个php,并传递三个参数(type=news, is_hot=1, lim ...
- PHP CLI模式开发
PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合. 有两种方法可以运行PHP CLI脚本. 第一种方法是使用php -f /path ...
- php cgi远程控制,php-cgi如何使用(php cli模式执行php文件)
php-cgi如何使用(php cli模式执行php文件) php-cgi如何使用(php cli模式执行php文件) 需求:如果使用浏览器,发邮件100万封邮件.这个时候浏览器就不能动了要一直在发邮 ...
- mybatis是什么_为什么SpringMVC可以正确解析方法参数名称,但MyBatis却不行?
对Java字节码有一定了解的朋友应该知道,Java 在编译的时候,默认不会保留方法参数名,因此我们无法在运行时获取参数名称.但是在使用 SpringMVC 的时候,我发现一个奇怪的现象:当我们需要接收 ...
- python工厂模式 django_python设计模式-工厂方法模式
题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...
- react避免子组件渲染_如何与React一起使用正确的方法来避免一些常见的陷阱
react避免子组件渲染 One thing I hear quite often is "Let's go for Redux" in our new React app. It ...
- 创建型模式二:工厂方法模式
1. 工厂模式介绍 工厂模式(Factory Pattern)的意义就跟它的名字一样,在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象.工厂模式根据不同的参数来实现不同的分配方案和创建对象. ...
- 测线仪正确使用方法图解1
测线仪正确使用方法图解1 测线仪正确使用方法图解2 测线仪正确使用方法图解3 测线仪正确使用方法图解,我们来使用莱视威测试仪YN891,先说说第一个功能,测线,首先,我们打开旁边的电源开关,可以看到测 ...
最新文章
- Go语言中的匿名函数和闭包的样子
- 初学__Python——Python的流程控制语句 if、for、while
- 小小鸡蛋竟然能够承受1200kg重量!?
- 是网关吗_智能家居网关功能这么多,你都知道吗?
- Swagger 注解~用于模型
- libjpeg学习3:turbojpeg试用
- python核心编程源代码
- python2.7中文手册下载_python 2.7.12中文文档下载|
- android跳转到rn界面,第五章 RN与Native—由原生页面跳转到Rn页面;在Rn页面调用Android Native组件和Native数据...
- 《Game说》| 揭秘百万DAU抖音现象级小游戏背后的故事
- 解决phpstorm运行很卡问题
- matlab数学实验报告西安交通大学微分方程模型高为16米,数学实验第二次作业——常微分方程数值求解...
- 【1071】C语言程序设计教程(第三版)课后习题6.9
- osgEarth2.10.2中关于空间参考系的一些理解
- 华为OJ 初级:人民币转换
- 如何写好大型项目的项目周工作汇报
- Ubuntu 下的阿里旺旺
- The Design of Everyday Things 读书笔记
- 教培机构如何利用社群引流招生
- ESP32开发之旅——AS608指纹识别模块