PHP緩存加速器原理

LAMP環境的PHP緩存加速器原理

在LAMP環境中,Apache服務是使用libphp5.so響應處理PHP程序請求的,整個流程如下:

1、Apache接收客戶端的PHP程序請求並根據規則過濾。

2、Apache將PHP程序請求傳遞給PHP處理模塊libphp5.so

3、PHP引擎定位磁盤上的PHP文件,並將其加載到內存中解析

4、PHP處理模塊libphp5.so將PHP源代碼編譯成爲opcode

5、PHP處理模塊libphp5.so執行opcode,然後把opcode緩存起來

6、Apache接收客戶端新的PHP程序請求,PHP引擎直接讀取緩存執行opcode文件,並將結果返回。在這一次任務中,就無第4步的編譯解析了,從而提升了PHP編譯解析效率

 

LNMP環境PHP緩存加速器原理

在LNMP環境中,PHP引擎不再使用libphp5.so模塊了,而是啓動了獨立的FCGI即php-fpm進程,由它監聽來自nginx的PHP程序請求,並交給PHP引擎解析處理,整個執行流程大概如下:

1)Nginx接收客戶端的PHP程序訪問請求。

2)Nginx根據擴展名等過濾規則將PHP程序請求傳遞給解析PHP的FCGI進程(PHP-FPM)

3)PHP FPM進程調用PHP解析器讀取站點磁盤上的PHP文件,並加載到內存中。

4)PHP解析器將PHP程序編譯爲opcode文件,然後把opcode緩存起來。

5)PHP FPM引擎執行opcode樹,返回數據給Nginx,進而返回客戶端。

6)Nginx 接收客戶新的PHP程序請求,PHP FPM引擎就會直接讀取緩存中的opcode執行,將結果返回,該過程中無需第4步操作,從而提升了PHP編譯解析效率。

發佈了117 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章