PHP 執行方式詳解

PHP定製開發發表於2022-09-19
PHP 執行方式詳解

1、  CGI 的含義是通用閘道器協議(Common Gateway Interface),它允許 web 伺服器透過特定的協議與應用程式通訊,呼叫原理如下: 使用者請求   ->   Web 伺服器接收請求   ->   fork 子程式 呼叫程式 / 執行程式   ->   程式返回內容 / 程式呼叫結束   ->   W eb 伺服器接收內容 ->   返回給使用者 由於每次使用者請求都得 fork 建立子程式呼叫應用程式,請求結束後銷燬程式,所以效能比較低。

2、  Fast-CGI 是 CGI 模式的升級版,它像是一個常駐記憶體的 CGI,只要開啟後,就可以一直處理請求,不再需要結束程式。呼叫過程如下: Web 伺服器 Fast-CGI 程式管理器初始化  ->   預先 fork 多個程式使用者請求  ->   Web 伺服器接收請求  -> Web 伺服器將請求交給 Fast-CGI 程式管理器  -> Fast-CGI 程式管理器接收,給其中一個空閒的的 Fast-CGI 程式處理  ->  處理完成  Fast-CGI 程式變為空閒狀態,等待下次請求  -> Web 伺服器接收內容 ->  返回給使用者  Fast-CGI 和 CGI 都是一種協議,開啟的程式是單獨實現該協議的程式

3、 模組模式  Apache + php 執行時,預設使用的是模組模式,它把 php 作為 Apache 的模組隨 Apache 啟動而啟動。接收到用請求時,直接透過呼叫 Apache 的 mod_php 模組進行處理。

4、 php-cli 模式  php-cli 模式屬於命令列模式,該模式不需要藉助其他程式,直接在命令列就可以執行 php 程式碼,命令類似下面這樣: php xxx.php

注意事項:

1、在命令列模式下,沒有超時時間,也無法透過 set_time_limit

2、設定超時時間 在命令列模式下,預設關閉 buffer 緩衝。在普通的 Web 模式中,echo var_dump 等輸出語句 / 函式,預設情況下是先進入 php 緩衝區,等緩衝區到達一定數量,才開始傳輸給 Web 伺服器。可以透過 ob 等系列函式操作快取區,例如 ob_get_contents

3、 在 php-cli 模式下,預設是關閉 buffer,直接輸出。例如:echo var_dump phpinfo 等輸出直接輸出到控制檯


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021881/viewspace-2915316/,如需轉載,請註明出處,否則將追究法律責任。

相關文章