注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

首先关于几个概念词的总结:  

2011-09-30 13:34:46|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

CGI:“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。在服务器环境中,为“程序”提供标准的接口,通过这个接口,“程序”可以对服务器客户端交换的信息做一些事情。“程序”的言并没有要求。程序对接口进行操作。服务器支持CGI就要提供CGI中要求的环境变量,或者还有别的。我的理解至此为之。

 

CLI:“ 命令行界面”(Command Line Interface),可在用户提示符下键入可执行指令的界面。

 

SAPI:“ 服务器应用程序接口”(Server Application Programme Interface),可以认为是服务器端的API。貌似和CGI是一个东西,每个服务器提供的API可能不同,但是他们都提供了CGI。所以可以理解CGI是每个服务器应该有的SAPI。apache有自己的SAPI,IIS也有自己的。但是php能这些不同的服务器端工作,因为php支持了它们各自的SAPI。(CGI和CLI都是SAPI的)

 

ISAPI:ISAPI 服务器扩展是可以被 HTTP 服务器加载调用的 DLL。Internet 服务器扩展也称为 Internet 服务器应用程序 (ISA),用于增强符合 Internet 服务器 API (ISAPI) 的服务器功能。ISA 通过浏览器应用程序调用,并且将相似的功能提供给通用网关接口 (CGI) 应用程序

 

*(ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI)

*php CGI和php SAPI为php在Web服务器上运行的php环境;php CLI为php命令行运行的接口

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

php的CLI 和 CGI

 

PHP 5 中对 CLI 和 CGI 文件名作了些改变。PHP 5 中,CGI 版本被改名为 php-cgi.exe(以前是 php.exe),现在主目录中的是 CLI 版本(之前是 cli/php.exe)。

PHP 5 中引进了一种新模式php-win.exe。这和 CLI 版本相同,只除了 php-win 不输出任何内容,因此不会提供控制台(屏幕上不会闪过“dos 窗口”)。此行为php-gtk。

PHP 5 中,CLI 版本总会产生全局变量 $argv 和 $argc 而不管 php.ini 是怎么设的。即使将 register_argc_argv 设为 off 也不影响 CLI。

 

 

以CGI方式运行PHP

 

<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Allow from all

#    Deny from all

#不能有deny from all

    Satisfy all

</Directory>

 

AddType application/x-httpd-php .php

ScriptAlias /php5/ "D:/php5/"

#必须有结尾的“/”

Action application/x-httpd-php "/php5/php-cgi.exe"

#必须为php-cgi.exe

#

Apache里PHP以模块方式运行和CGI方式运行的区别: 

在CGI方式运行时占用的资源,在ISAPI模式下的资源相对就较少点,也比较稳定.

 

模式方式运行需要的配置

LoadModule php5_module        modules/libphp5.so

//添加php解析的扩展

AddType application/x-httpd-php .php

//添加.Z解析的扩展

AddType application/x-compress .Z

//添加压缩文件解析的扩展

AddType application/x-gzip .gz .tgz

 

 

以CLI方式运行PHP

 

1*直接在终端执行php

sjolzy@localhost# php -r 'print_r(get_defined_constants());'

 

2*运行php-cli脚本文件

sjolzy@localhost# php my_script.php

sjolzy@localhost# php -f my_script.php

以上两种方法使用或不使用 -f 参数)都能够运行给定的 my_script.php 文件。可以选择任何文件来运行,指定的 PHP 脚本并非必须要以 .php扩展名" title="扩展名" >扩展名,它们可以有任意的文件名和扩展名" title="扩展名" >扩展名。

 

3*通过标准输入(stdin)提供需要运行的 PHP 代码

以上用法提供了非常强大的功能,使得可以如下范例所示,动态地生成 PHP 代码并通过命令行运行这些代码

$ some_application | some_filter | php | sort -u >final_output.txt

 

以上三种运行代码方法不能同时使用

 

用Cron执行php-cli脚本

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,周期性作业,比如备份数据,Preminder定期查询PR等等,添加的方法:打开/etc/crontab,添加:

0 13 * * * /usr/bin/php -f /home/phpscripts/phpcli.php

  评论这张
 
阅读(712)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017