首页 > PHP > PHP基础入门——理论篇(1)

PHP基础入门——理论篇(1)

本文主要介绍PHP的一些理论知识,需要对linux操作系统和linux平台软件有所了解。

PHP(Hypertext Preprocessor)是一种动态脚本语言,拥有5种运行模式:


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

一种与语言无关的协议,兼容性极好但性能低下的运行模式,因为它每一个请求都会先创建cgi子进程然后处理进程,现在很少有人用了,略过。

2. Fast-CGI(CGI的升级版)

相对于CGI可以在一个进程中一次完成多个请求从而提高效率。例如,启动PHP-FPM(Fast-CGI的进程管理器)后,会启动多个子进程(php-cgi解释器),当web server接收到用户的请求后将CGI环境变量和标准输入发送到FastCGI子进程php-cgi,当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。

3. CLI(PHP的命令运行模式)

常用的命令如php -v,php -m等命令,还可以直接编写脚本执行操作系统命令。

4. ISAPI(微软提供的一套面向Internet服务的API接口)

一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个请求,还可以在一个DLL里设置多个用户请求处理函数,此外,ISAPI的DLL应用程序和WWW服务器处于同一个进程中,效率要显著高于CGI。

5. web模式(Apache或lighttpd或Nginx)

 a).Apache中的mod_php5模块接收传递过来的请求,处理之后再返回给Apache。

 b).lighttpd+spawn-fcgi,后来发现有缺陷,略过。

 c).Nginx+PHP-FPM,Nginx是一款轻量级web服务器,高并发,内存占用低等优势。自身PHP-FPM作为PHP官方推荐FastCGI处理器具有处理高并发,平滑重启等优势。


对于以上每种运行模式(前2种是协议,灰色的例外)都有自己的优缺点,没有绝对的好与坏,主要是看大家在什么环境下面有什么样的需求了。一般情况作为生产服务器的用linux+apache或linux+nginx,也有windows+IIS,不过很少。如果作为初学者实在不想立即了解他们的区别,可以在windows中下载wamp或者xampp一键安装包,他们会自动帮你安装一个性能不错,稳定性也很不错的开发环境。对于linux,建议下载最新的apache或者nginx以及php进行编译安装,之后便会慢慢理解这几种运行模式。


附上web模式下各种webserver软件的对比:

server

Apache

Nginx     

Lighttpd

Proxy代理

非常好

非常好

一般

Rewriter

非常好

一般

Fcgi

不好

非常好

热部署

不支持

支持

不支持

系统压力比较

很大

很小

比较小

稳定性

非常好

不好

安全性

一般

一般

技术支持

非常好

很少

一般

静态文件处理

一般

非常好

Vhosts虚拟主机

支持

不支持

支持

反向代理

一般

非常好

一般

Session sticky

支持

不支持

不支持


教程地址:http://blog.zhengshuiguang.com/php/phprumen1.html

欢迎转载!但请带上文章地址^^

标签:nginx 运行模式 apache cgi原理

相关文章

评论已关闭