随笔分类 -  PHP内核探索

摘要:mod_phpVSmod_fastcgi目录什么是mod_php和mod_fastcgi 1工作原理 1mod_php 2mod_fastcgi 3mod_factcgi的三种配置方式 4静态配置 5动态配置 5远程方式 6php-fpm 6性能测试 8名称解释 8测试内容 8测试结果 8fastc... 阅读全文
posted @ 2015-01-19 19:49 风与叶子 阅读(445) 评论(0) 推荐(0) 编辑
摘要:CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。 CGI描述了客户端和这个程序之间传输数据的一种标准。 CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标... 阅读全文
posted @ 2014-10-16 10:38 风与叶子 阅读(171) 评论(0) 推荐(0) 编辑
摘要:从PHP源码目录结构的介绍以及PHP生命周期可知:嵌入式PHP类似CLI,也是SAPI接口的另一种实现。 一般情况下,它的一个请求的生命周期也会和其它的SAPI一样:模块初始化=>请求初始化=>处理请求=>关闭请求=>关闭模 块。 当然,这只是理想情况。因为特定的应用由自己特殊的需求,只是在处理PH... 阅读全文
posted @ 2014-10-16 10:37 风与叶子 阅读(461) 评论(0) 推荐(0) 编辑
摘要:Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Wi... 阅读全文
posted @ 2014-10-16 10:36 风与叶子 阅读(522) 评论(0) 推荐(0) 编辑
摘要:Apache对PHP的支持是通过Apache的模块mod_php5来支持的。如果希望Apache支持PHP的话,在./configure步 骤需要指定--with-apxs2=/usr/local/apache2/bin/apxs表示告诉编译器通过Apache的mod_php5 /apxs来提供对P... 阅读全文
posted @ 2014-10-16 10:35 风与叶子 阅读(342) 评论(0) 推荐(0) 编辑
摘要:Apache概述Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS... 阅读全文
posted @ 2014-10-16 10:34 风与叶子 阅读(590) 评论(0) 推荐(0) 编辑
摘要:在PHP的生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。 这些内置实现的物理位置在PHP源码的SAPI目录。这个目录存放了PHP对各个服务器抽象层的代码, 例如命令行程序的实现,Apache的mod_php模块实现以及fastcgi的实现等等。在各个服务器抽象层之间遵守着相同的约... 阅读全文
posted @ 2014-10-16 10:34 风与叶子 阅读(251) 评论(0) 推荐(0) 编辑
摘要:相信很多人都听说过 Zend Engine 这个名词,也有很多人知道 Zend Engine 就是 PHP 语言的核心,但若要问一句:Zend Engine 到底存在于何处?或者说,Zend Engine 究竟是在什么时候怎么发挥作用让 PHP 源码输出我们想要的东西的?Zend引擎是PHP实现的核... 阅读全文
posted @ 2014-10-16 10:33 风与叶子 阅读(333) 评论(0) 推荐(0) 编辑
摘要:多进程的SAPI生命周期通常PHP是编译为apache的一个模块来处理PHP请求。Apache一般会采用多进程模式, Apache启动后会fork出多个子进程,每个进程的内存空间独立,每个子进程都会经过开始和结束环节, 不过每个进程的开始阶段只在进程fork出来以来后进行,在整个进程的生命周期内可能... 阅读全文
posted @ 2014-10-16 10:31 风与叶子 阅读(259) 评论(0) 推荐(0) 编辑
摘要:CLI/CGI模式的PHP属于单进程的SAPI模式。这类的请求在处理一次请求后就关闭。也就是只会经过如下几个环节: 开始 - 请求开始 - 请求关闭 - 结束 SAPI接口实现就完成了其生命周期。单进程多请求则如下图所示: 阅读全文
posted @ 2014-10-16 10:30 风与叶子 阅读(186) 评论(0) 推荐(0) 编辑
摘要:我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的。PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口)。PHP总共有三个模块:内核、Zend引擎、以及扩展层。PHP内核用来处理请求、文件流、错误处理等相关操作;Zend引擎(ZE... 阅读全文
posted @ 2014-10-16 10:29 风与叶子 阅读(344) 评论(0) 推荐(0) 编辑
摘要:PHP开始执行以后会经过两个主要的阶段:处理请求之前的开始阶段请求之后的结束阶段开始阶段有两个过程:第一个过程是模块初始化阶段(MINIT), 在整个SAPI生命周期内(例如Apache启动以后的整个生命周期内或者命令行程序整个执行过程中), 该过程只进行一次。第二个过程是模块激活阶段(RINIT)... 阅读全文
posted @ 2014-10-16 10:28 风与叶子 阅读(434) 评论(0) 推荐(0) 编辑
摘要:SAPI:Server Application Programming Interface 服务器端应用编程端口。研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI,只是针对最简单的CGI SAPI,来说明S... 阅读全文
posted @ 2014-10-16 10:27 风与叶子 阅读(278) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示