background image

PHP

 

     运行模式

 

 

PHP 运行模式有 4 钟:

1)cgi 通用网关接口(Common Gateway Interface))

2

 

) fast-cgi 

 

常驻 (long-live) 

 

型的 CGI

3

 

) cli  

   

命令行运行 (Command Line Interface)

 4)web

 

模块模式 (apache 等 web 服务器运行的模块模式)

1、cgi (Common Gateway Interface)

      CGI 即通用网关接口(Common Gateway Interface),它是一段程序, 通俗的讲 CGI

就象是一座桥,把网页和 WEB 服务器中的执行程序连接起来,它把 HTML 接收的指令

传递给服务器的执行程序,再把服务器执行程序的结果返还给 HTML 页。CGI 的跨平台性

 

能极佳,几乎可以在任何操作系统上实现。 CGI 已经是比较老的模式了,这几年都很少

用了。

      每有一个用户请求,都会先要创建 cgi 的子进程,然后处理请求,处理完后结束

这个子进程,这就是 fork-and-execute

 

模式。 当用户请求数量非常多时,会大量挤占系统

的资源如内存,CPU 时间等,造成效能低下。所以用 cgi 方式的服务器有多少连接请求就

会有多少 cgi 子进程,子进程反复加载是 cgi 性能低下的主要原因。

      

 

如果不想把 PHP 

 

嵌入到服务器端软件(如 Apache)作为一个模块安装的话,可

 

以选择以 CGI 

 

的模式安装。或者把 PHP 

 

用于不同的 CGI 封装以便为代码创建安全的 

chroot  

 

和 setuid   环 境 。 这 样 每 个 客 户 机 请 求 一 个 php 文 件 , Web 服 务 器 就 调 用

php.exe(win 下是 php.exe,linux 是 php)去解释这个文件,然后再把解释的结果以网页的

 

 

形式返回给客户机。 这种安装方式通常会把 PHP 

 

的可执行文件安装到 web 

 

服务器的 cgi-

bin 目录。CERT 

 

建议书

CA-96.11

 

 

建议不要把任何的解释器放到 cgi-bin 目录。

     这种方式的好处是把 web server 和具体的程序处理独立开来,结构清晰,可控性

强,同时缺点就是如果在高访问需求的情况下,cgi 的进程 fork 就会成为很大的服务器负

 

担,想 象一下数百个并发请求导致服务器 fork 出数百个进程就明白了。这也是为什么 cgi

一直背负性能低下,高资源消耗的恶名的原因。

CGI 模式安装:

     CGI 已经是比较老的模式了,这几年都很少用了,所以我们只是为了测试。

     安装 CGI 模式需要注释掉