PHP Life Cycle

PHP Life Cyclesegmentfault

PHP 生命週期,一切從 SAPI 開始。多線程

PHP函數

  • 內核:處理請求、文件流、錯誤處理等相關操做。spa

  • Zend引擎:將源文件轉換成機器語言,而後在虛擬機上運行它。線程

  • 擴展層:一組函數、類庫和流。code

單進程SAPI生命週期生命週期

一個 PHP 進程,在其生命週期內,經歷了數個階段。進程

MINIT:每一個模塊都依次執行模塊初始化。涉及全局變量,常量,INI文件,類。
RINIT:當進程開始處理 PHP 請求時,每一個模塊依次執行請求初始化。涉及請求變量、環境變量。
Zend Engine:編譯,執行。
RSHUTDOWN:當請求處理完畢,每一個模塊依次執行請求終止。
Zend Engine:垃圾收集 - 變量釋放。
MSHUTDOWN:當 PHP 進程關閉時,與其關聯的模塊將依次從內存中銷燬,即模塊關閉。圖片

單進程SAPI生命週期

多線程SAPI生命週期內存

多線程的 SAPI 生命週期,MINITMSHUTDOWN 在進程的存活期內,只須要執行一次。

多線程SAPI生命週期

Apache的生命週期

請輸入圖片描述

Apache的請求處理流程

Apache的請求處理流程

相關文章
相關標籤/搜索