Apache启动过程(PHP_MINIT_FUNCTION的调用)
2017-09-06 16:14
197 查看
信件内容,to eng-all;
Hi all:
上次我做的讲座中,讲到,PHP模块的MINIT_FUNCTION在多进程的环境下,会被调用多次,也就是,每个apache的自进程都会去调用一次。
今天早上的时候,学鹏经过实际验证发现事实不是这样。
于是经过反复验证 ,终于得出如下结论:
当Apache启动的时候,主进程会首先把所有模块load进来,然后又卸载掉 他们,这是第一遍,目的是为了检查配置文件。如果一切正常,Apache就会重新 load一便所有的模块,然后才fork子进程,这样,PHP模块就会只被初始化一次, 然后在fork的时候复制给子进程。
当apache关闭的时候 ,每个自进程都会去调用一次模块的关闭函数。
也就是说, PHP模块的初始化函数只会被调用一次,而关闭函数会被调用多次。
猜想是因为apache1.5x以后,做了优化,造成现在的这种机制,apache1.3应 该还是和我当时讲的一样。
最后,非常感谢学鹏的实际验证,没有实际验证,这个问题就不会被发现。
真正要了解一个东西,不应该只是听听就算,应该去动手验证一下,再次对学 鹏师兄表示,赞!
来源:http://www.laruence.com/2008/07/24/206.html
Hi all:
上次我做的讲座中,讲到,PHP模块的MINIT_FUNCTION在多进程的环境下,会被调用多次,也就是,每个apache的自进程都会去调用一次。
今天早上的时候,学鹏经过实际验证发现事实不是这样。
于是经过反复验证 ,终于得出如下结论:
当Apache启动的时候,主进程会首先把所有模块load进来,然后又卸载掉 他们,这是第一遍,目的是为了检查配置文件。如果一切正常,Apache就会重新 load一便所有的模块,然后才fork子进程,这样,PHP模块就会只被初始化一次, 然后在fork的时候复制给子进程。
当apache关闭的时候 ,每个自进程都会去调用一次模块的关闭函数。
也就是说, PHP模块的初始化函数只会被调用一次,而关闭函数会被调用多次。
猜想是因为apache1.5x以后,做了优化,造成现在的这种机制,apache1.3应 该还是和我当时讲的一样。
最后,非常感谢学鹏的实际验证,没有实际验证,这个问题就不会被发现。
真正要了解一个东西,不应该只是听听就算,应该去动手验证一下,再次对学 鹏师兄表示,赞!
来源:http://www.laruence.com/2008/07/24/206.html
相关文章推荐
- Apache启动过程(PHP_MINIT_FUNCTION的调用)
- Apache启动过程(研究PHP_MINIT_FUNCTION的调用)
- 获取PHP里function调用过程
- php页面相调用过程
- PHP创建与调用MySQL存储过程实例
- apache定时自动启动脚本程序代码-apache-Php教程
- 【服务器】PHP+APACHE+MYSQL 建站全过程,包括二级域名设置 (
- 用PHP调用C扩展整个配置过程(好辛苦呀)
- U-Boot启动的函数调用过程(以arm926ejs为例)
- PHP调用MySQL存储过程并返回值的方法
- [PHP]PDO调用存储过程
- php调用mysql存储过程实例分析
- php和apache安装memcache的过程
- PHP调用MySQL的存储过程的实现代码
- WINDOWS系统启动过程中是如何调用硬盘数据的?
- php底层深度探索(3) ---Apache启动阶段分析 王泽宾 推荐
- PHP调用MYSQL存储过程实例
- PHP调用存储过程失败(没有执行到)--mysql_error()--can't return a result set in the given context
- linux+php+apache web调用python脚本权限问题
- 解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值