Apache启动过程(PHP_MINIT_FUNCTION的调用)
信件內(nèi)容,to eng-all;
Hi all:
上次我做的講座中,講到,PHP模塊的MINIT_FUNCTION在多進程的環(huán)境下,會被調(diào)用多次,也就是,每個apache的自進程都會去調(diào)用一次。
今天早上的時候,學(xué)鵬經(jīng)過實際驗證發(fā)現(xiàn)事實不是這樣。
于是經(jīng)過反復(fù)驗證 ,終于得出如下結(jié)論:
當Apache啟動的時候,主進程會首先把所有模塊load進來,然后又卸載掉 他們,這是第一遍,目的是為了檢查配置文件。如果一切正常,Apache就會重新 load一便所有的模塊,然后才fork子進程,這樣,PHP模塊就會只被初始化一次, 然后在fork的時候復(fù)制給子進程。
當apache關(guān)閉的時候 ,每個自進程都會去調(diào)用一次模塊的關(guān)閉函數(shù)。
也就是說, PHP模塊的初始化函數(shù)只會被調(diào)用一次,而關(guān)閉函數(shù)會被調(diào)用多次。
猜想是因為apache1.5x以后,做了優(yōu)化,造成現(xiàn)在的這種機制,apache1.3應(yīng) 該還是和我當時講的一樣。
最后,非常感謝學(xué)鵬的實際驗證,沒有實際驗證,這個問題就不會被發(fā)現(xiàn)。
真正要了解一個東西,不應(yīng)該只是聽聽就算,應(yīng)該去動手驗證一下,再次對學(xué) 鵬師兄表示,贊!
來源:http://www.laruence.com/2008/07/24/206.html
總結(jié)
以上是生活随笔為你收集整理的Apache启动过程(PHP_MINIT_FUNCTION的调用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小规模季度45万免税会计分录
- 下一篇: 自己动手用C扩展PHP(三)