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
建议书
建议不要把任何的解释器放到 cgi-bin 目录。
这种方式的好处是把 web server 和具体的程序处理独立开来,结构清晰,可控性
强,同时缺点就是如果在高访问需求的情况下,cgi 的进程 fork 就会成为很大的服务器负
担,想 象一下数百个并发请求导致服务器 fork 出数百个进程就明白了。这也是为什么 cgi
一直背负性能低下,高资源消耗的恶名的原因。
CGI 模式安装:
CGI 已经是比较老的模式了,这几年都很少用了,所以我们只是为了测试。
安装 CGI 模式需要注释掉