这是php-5.3.10-nts-Win32-VC9-x86.msi下载,是(shì)英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌(qiàn)式的语(yǔ)言(yán),是一种(zhǒng)在服务器端执行的嵌(qiàn)入(rù)HTML文档(dàng)的脚本语(yǔ)言,语言(yán)的风格有类似于C语言,被广(guǎng)泛地运用。
php-5.3.10-nts-Win32-VC9-x86.msi是一共分为五大运行模式:包括cgi 、fast-cgi、cli、isapi、apache 模块的 DLLCGI
CGI即通用网关(guān)接(jiē)口(Common Gateway Interface),它是一段程序,通俗(sú)的讲CGI就象是一座桥,把网页和WEB服务(wù)器中的执行程序连接(jiē)起来,它把HTML接收(shōu)的(de)指令(lìng)传递(dì)给服(fú)务(wù)器的执 行程序,再把服务器执行程序(xù)的结果(guǒ)返还给HTML页。CGI 的(de)跨平(píng)台性能极佳,几乎(hū)可以在(zài)任何操作系统(tǒng)上实现(xiàn)。
CGI方式在遇到连接请求(用户 请求)先(xiān)要创建cgi的子进程,激(jī)活一个(gè)CGI进程,然后处理请求,处理完后(hòu)结束这个子进程。这就是fork-and-execute模式。所以用cgi 方式的服务器有多(duō)少连接(jiē)请求就会有多少cgi子(zǐ)进程,子进(jìn)程反(fǎn)复加(jiā)载是cgi性能低(dī)下的(de)主要原因。都会(huì)当用户请求数量(liàng)非常多(duō)时,会大(dà)量挤占系统的(de)资源如内 存,CPU时间等,造成效能低下。
1、Web Server启动时载入FastCGI进(jìn)程管(guǎn)理(lǐ)器(IIS ISAPI或Apache Module)
2、FastCGI进(jìn)程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待(dài)来自Web Server的连接。
3、当(dāng)客户端(duān)请求(qiú)到达Web Server时,FastCGI进程管理器选(xuǎn)择并(bìng)连接(jiē)到一个CGI解释器。Web server将(jiāng)CGI环境变量和标准(zhǔn)输入发送(sòng)到(dào)FastCGI子(zǐ)进程php-cgi。
4、 FastCGI子进(jìn)程完(wán)成处理(lǐ)后将标准(zhǔn)输出和错误信(xìn)息从同一连接返回(huí)Web Server。当(dāng)FastCGI子进程关闭连接时,请求便(biàn)告处理完成。FastCGI子进程接着等待并(bìng)处(chù)理来自FastCGI进程(chéng)管理器(运(yùn)行在Web Server中)的下一(yī)个连接。 在CGI模(mó)式中,php-cgi在(zài)此(cǐ)便退出了。在上(shàng)述情况中,你可以想象CGI通常有多(duō)慢。每一个Web 请求PHP都必(bì)须重新解析php.ini、重(chóng)新载入(rù)全部扩展并重初始化全部数(shù)据结构。使用FastCGI,所有(yǒu)这些都只在(zài)进程启动时发生一次。一(yī)个(gè)额(é)外的 好处(chù)是,持续数据(jù)库连接(Persistent database connection)可以工作。APACHE2HANDLER
PHP作为Apache模(mó)块,Apache服务器在系统启动(dòng)后,预先生成多(duō)个进程副本驻留在内存中,一旦有(yǒu)请求出 现,就立(lì)即使用这(zhè)些(xiē)空余(yú)的子进程进行处理(lǐ),这样就不存(cún)在生成子进(jìn)程造(zào)成(chéng)的(de)延迟了。这些服务(wù)器副本在处理(lǐ)完一次(cì)HTTP请求之后并不立即(jí)退出,而是停留(liú)在计 算机(jī)中(zhōng)等待下次请(qǐng)求。对于客户浏(liú)览器的请求(qiú)反(fǎn)应更快,性(xìng)能较高。
一个ISAPI的DLL,可以在被用户请求激(jī)活(huó)后长驻内(nèi)存,等(děng)待用(yòng)户(hù)的另(lìng)一个(gè)请求,还可以(yǐ)在一个DLL里设置多个用户请求处理函数,此外(wài),
ISAPI的DLL应用程(chéng)序(xù)和WWW服(fú)务器处于同一(yī)个进程中,效率要(yào)显著高于(yú)CGI。(由于微软的排他性,只(zhī)能运行于windows环境)cli:
cli是php的命令行运行模(mó)式,大家经(jīng)常会使(shǐ)用它,但(dàn)是可能并没有注意到(例如:我们在linux下经常使用 “php -m”查找PHP安装了那些扩(kuò)展就是PHP命令行运行模式;有兴趣的(de)同(tóng)学可以输入php -h去深入研究该运行(háng)模式)总结:
每种运(yùn)行模式都有自己的优缺点,没有绝对(duì)的好与坏,主(zhǔ)要(yào)是看(kàn)大家处理何种环境。
