PHP介绍和Apache的Module、CGI与FastCGI

  静态网站是指全部由HTML(标准通用标记语言的子集)代码格式页面组成的网站,所有的内容包含在网页文件中。网页上也可以出现各种视觉动态效果,如GIF动画、FLASH动画、滚动字幕等,而网站主要是静态化的页面和代码组成,一般文件名均以htm、html、shtml等为后缀。

创新互联建站是专业的双清网站建设公司,双清接单;提供做网站、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行双清网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

  动态网站是指通过网页程序语言编写,当客户请求时执行网页程序脚本,将程序执行的结果返回给客户端。PHP、JSP、ASP等等都是比较常见的动态网页程序。

  PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。  --百度百科

  PHP的Zend引擎将整个PHP执行分为两个阶段:

  1.分析PHP代码将其转换为Zend Opcode格式,并存储在内存中
  2.之后执行这些转换后的opcode(opcode是一种将PHP脚本编译后的中间语言,可以加快php的执行速度)

  Zend引擎执行PHP代码的具体流程如下:

  1.扫描--将PHP代码转换为语言片段(Tokens)

  2.分析--将Tokens转换成简单而有意义的表达式

  3.编译--将表达式编译成opcode

  4.执行--顺次执行opcode,每次一条

PHP结合Apache的方式有三种:

  1. 作为模块:PHP作为Apache的模块,当有php页面的请求时,Apache加载php模块,加载资源并执行php程序,将执行结果返还给客户端。

  2. CGI方式(注:CGI是一个协议,可以实现web服务程序和解释器通信):PHP作为一个独立的功能程序,当有php页面的请求时,Apache通过CGI方式启动一个PHP进程,PHP进程获取资源并执行后,将执行结果返回给Apache,Apache返回给客户端,之后Apache销毁该进程。

  3. FastCGI(注:FastCGI是CGI协议的一个扩展,可以实现将PHP作为一个独立进程,由PHP自身实现进程的创建和销毁):PHP作为一个独立程序,根据配置文件事前启动N个作业进程用来等待处理用户请求(类似于Apache的Prefork模型,规定默认启动进程数、最大启动进程数、最小启动进程数等等),当有php页面的请求时,Apache通过代理方式使用FastCGI协议将请求发送给PHP进程,并指定php网页文件所在位置(URL),PHP进程接收后为其分配一个作业进程并执行脚本。FastCGI好处在于可以使PHP服务作为一个独立服务器,通过Socket与httpd通信,可以使服务分离,可扩展性更强,并且无需像CGI一样需要Apache来控制PHP的启动,提高了Apache的工作效率。


名称栏目:PHP介绍和Apache的Module、CGI与FastCGI
文章URL:http://myzitong.com/article/jesesj.html