Apache启动过程(研究PHP_MINIT_FUNCTION的调用)
来源:互联网 发布:数控车内螺纹编程 编辑:程序博客网 时间:2024/06/16 22:40
· 作者:laruence(http://www.laruence.com/)
· 本文地址: 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
· 转载请注明出处
信件内容
HI all:
上次我做的讲座中,讲到,PHP模块的MINIT_FUNCTION在多进程的环境下,会被调用多次,也就是,每个apache的自进程都会去调用一次。
今天早上的时候,学鹏经过实际验证发现事实不是这样。
于是经过反复验证 ,终于得出如下结论:
当Apache启动的时候,主进程会首先把所有模块load进来,然后又卸载掉 他们,这是第一遍,目的是为了检查配置文件。如果一切正常,Apache就会重新 load一便所有的模块,然后才fork子进程,这样,PHP模块就会只被初始化一次, 然后在fork的时候复制给子进程。
当apache关闭的时候 ,每个自进程都会去调用一次模块的关闭函数。
也就是说, PHP模块的初始化函数只会被调用一次,而关闭函数会被调用多次。
猜想是因为apache1.5x以后,做了优化,造成现在的这种机制,apache1.3应 该还是和我当时讲的一样。
最后,非常感谢学鹏的实际验证,没有实际验证,这个问题就不会被发现。
真正要了解一个东西,不应该只是听听就算,应该去动手验证一下,再次对学 鹏师兄表示,赞!
--
惠新宸 xinchen.hui | Engineer | +86 659-86111 |Y! China
- Apache启动过程(研究PHP_MINIT_FUNCTION的调用)
- Apache启动过程(PHP_MINIT_FUNCTION的调用)
- 深入研究 - Slackware的启动(init)过程
- 对Android启动过程的进一步研究
- Android启动过程的深入研究
- Android启动过程的深入研究
- 函数调用过程研究
- chromium启动的函数调用过程
- Tomcat启动过程源码研究
- 基于Linux2.6.35内核的zImage启动过程研究
- Linux系统调用过程研究
- 汇编函数调用过程研究
- linux的启动过程与系统调用过程
- 记录Apache服务启动失败的解决过程
- iOS开发-APP启动main()调用之前的加载过程
- zookeeper启动过程函数调用
- Shark 工作流研究3-启动流程过程
- ubuntu 和upstart启动过程研究
- 在sql server 2005中的单引号包含单引号的写法
- 2008換工作,走或留?七大性格禁忌 (转贴)
- tostring大全
- 三读bootmem
- datagrid删除
- Apache启动过程(研究PHP_MINIT_FUNCTION的调用)
- Struts+Hibernate中解决汉字编码
- Ext中文文档在线版与AIR绿色打包版alpha 0.1
- C++数据类型长度问题
- Java回调的一个实例
- 工作太累了
- 内存泄露 CListCtrl详解
- System.Configuration.ConfigurationSettings.AppSettings 已过时
- 不要重复DAO!使用Hibernate 和Spring AOP 构建泛型类型安全的DAO