首先关于几个概念词的总结:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CGI :“公共网关接口”(Common Gateway Interface),HTTP 与你的或其它机器上的 “交谈”的一种 ,其 须运行在 上。在 环境中,为“ ”提供 的接口,通过这个接口,“ ”可以对 与 交换的 做一些 。“ ”的 言并没有要求。 对接口 操作。 要 CGI就要提供CGI中要求的环境 ,或者还有别的。我的理解至此为之。
CLI :“ 行界面”(Command Line Interface),可在 提示符下键入可执行 的界面。
SAPI :“ 应用 接口”(Server Application Programme Interface),可以认为是端的API。貌似和CGI是一个 ,每个 提供的API可能不同,但是他们都提供了CGI。所以可以理解CGI是每个 都 有的SAPI。 有自己的SAPI,IIS也有自己的。但是 能这些不同的 端工作,因为 了它们各自的SAPI。(CGI和CLI都是SAPI的 型 )
ISAPI :ISAPI 是可以被 HTTP 和 的 DLL。Internet 也称为 Internet 应用 (ISA),用于增强符合 Internet API (ISAPI) 的 的。ISA 通过 应用 ,并且将相似的 提供给通用网关接口 (CGI) 应用 。
*(ISAPI的DLL应用 和WEB 处于同一个 中, 要显著高于CGI)
* CGI和 SAPI为 在Web 上运行的 环境; CLI为 在 行运行的接口
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
的CLI 和 CGI
PHP 5 中对 CLI 和 CGI 名作了些改变。PHP 5 中,CGI 被改名为 -cgi. (以前是 . ),现在主 中的是 CLI (之前是 cli/ . )。
PHP 5 中引进了一种新 : -win. 。这和 CLI 相同,只除了 -win 不 任何 ,因此 提供 (屏幕上 闪过“dos 窗口”)。此行为 似 -gtk。
PHP 5 中,CLI 总会产生全局 $argv 和 $argc 而不管 .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- - .
Scr tAlias / 5/ "D:/ 5/"
#必须有结尾的“/”
Action application/x- - "/ 5/ -cgi. "
#必须为 -cgi.
#
Apache里PHP以 运行和CGI 运行的 :
在CGI 运行时占用的 较 ,在ISAPI 下的 相对就较少点,也比较稳定.
以 运行需要的 :
LoadModule 5_module modules/lib 5.so
//添加 解析的
AddType application/x- - .
//添加.Z解析的
AddType application/x-comp s .Z
//添加压缩 解析的
AddType application/x-gz .gz .tgz
以CLI 运行PHP
1*直接在终端执行
sjolzy@localhost# -r ' _r(get_defined_constants());'
2*运行 -cli
sjolzy@localhost# my_scr t.
sjolzy@localhost# -f my_scr t.
以上两种 ( 或不 -f )都能够运行给定的 my_scr t. 。可以 任何 来运行,指定的 PHP 并非必须要以 . 为 名,它们可以有任意的 名和 名。
3*通过 输入(stdin)提供需要运行的 PHP 。
以上用法提供了非常强大的 ,使得可以如下范例所示, 地生成 PHP 并通过 行运行这些 :
$ some_application | some_ | | sort -u >final_output.txt
以上三种运行 的 不能同时 。
用Cron执行 -cli
cron是一个 下的定时执行 ,可以在无需人工干预的情况下运行作业, 性作业,比如备份 ,Preminder定期查询PR等等,添加的 :打开/etc/crontab,添加:
0 13 * * * /usr/bin/ -f /home/ scr ts/ cli.
--EOF--