php_cli模式简介
php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以用来写后台的程序。 PHP的CLI shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端!——注:windows和linux下都支持php_cli模式
PHP-cli应用场景:
1.多线程应用
这方面的好处,引用鸟哥的话:
优点:
1. 使用多进程, 子进程结束以后, 内核会负责回收资源
2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.
3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚.
php的多线程—没错就是php多线程应用,虽然大家都普遍认为php没有多线程(curl属于模拟多线程而不是真实的),但是在php_cli模式下的php彻底的是属于多线程。这个时候php属于linux的一个守护进程。 你就会发现这个程序执行的很快,php多线程执行的优势被彻底表现出来了.
备注:这种多线程方式不是很成熟,不适合大规模的生成应用,偶尔使用还是可以的
2.定时执行php程序
利用linux的cron方式
3.开发桌面程序
你可以做您的Windows或Linux中使用PHP的图形用户界面(GUI)应用!所有你需要的是PHP的命令行接口和一包GTK。这将允许建立真正的便携式图形用户界面应用程序,并且不需要学习别的。
4.编写PHP的shell脚本
使用cli(命令行)模式执行php程序,方便调试php程序,首先把php的执行文件加入的bash的环境
vi /etc/profile #找到第54行左右
PATH=$PATH:/usr/local/php/bin #加上这个语句:注意自己的php路径
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL #在这句前面加
#保存后使它生效
source /etc/profile
#测试
<?php
echo 'www.myfreax.com';
?>
#错误的程序测试
<?php
echo 'www.myfreax.comn'
echo QQ群:151327334
?>
将会出现提示
记得上次,我的朋友的网站在Windows下一切正常输出,但是到Linux服务器,打开浏览器后,什么也没有输出,一片空白;然后我叫他关闭selinux iptables试试,但还是老样子,把我的朋友搞到愁死,找不到原因,然后他干脆把服务器给我搞了,经过一番研究后,在Linux的终端里执行
php index.php
马上提示哪里出错了,原来我的朋友使用短标签,导致不能被正解释php,他的程序中有短标签还有长标签,搞得乱乱的,我问他你是不是使用短标签的服务器环境,而他说自己在Windows使用apmserver,什么都有改过,应该是apmserver开启短标签了
但是这里有个问题:为什么php没有把错误输出到浏览器