您的位置:首页 > 运维架构 > Apache

Apache启动过程(研究PHP_MINIT_FUNCTION的调用)

2008-07-24 14:36 801 查看
· 作者: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应
该还是和我当时讲的一样。

   最后,非常感谢学鹏的实际验证,没有实际验证,这个问题就不会被发现。

    真正要了解一个东西,不应该只是听听就算,应该去动手验证一下,再次对学
鹏师兄表示,赞!

-- 


惠新宸 xinchen.hui | Engineer | +86 659-86111 |
Y! China
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息