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
欢迎转载!但请带上文章地址^^
评论已关闭