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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- gitbash PHP執行輸出中文亂編解決方式GitPHP
- java--執行緒池--建立執行緒池的幾種方式與執行緒池操作詳解Java執行緒
- Java實現多執行緒詳解一 ( 繼承Thread方式 )Java執行緒繼承thread
- PHP FFI詳解 - 一種全新的PHP擴充套件方式PHP套件
- jDeveloper執行慢解決方式Developer
- 多執行緒詳解執行緒
- 詳解多執行緒執行緒
- 詳解Java執行緒安全Java執行緒
- iOS 多執行緒詳解iOS執行緒
- iOS執行器performSelector詳解iOSperformSelector
- js執行機制詳解JS
- Java執行緒池詳解Java執行緒
- Explain執行計劃詳解AI
- Java多執行緒詳解Java執行緒
- Java 執行緒池詳解Java執行緒
- 多執行緒03:?執行緒傳參詳解執行緒
- Java 執行時(RUNTIME)註解詳解Java
- vsCode不能執行vue命令解決方式VSCodeVue
- 詳解GaussDB(DWS)中的行執行引擎
- mysql explain 執行計劃詳解MySqlAI
- Android 多執行緒-----AsyncTask詳解Android執行緒
- mysql後臺執行緒詳解MySql執行緒
- iOS多執行緒:NSOperation詳解iOS執行緒
- iOS多執行緒:GCD詳解iOS執行緒GC
- JAVA多執行緒詳解(一)Java執行緒
- MySQL執行緒狀態詳解MySql執行緒
- IDEA執行maven專案詳解IdeaMaven
- MySQL Explain執行計劃 - 詳解MySqlAI
- Java 多執行緒詳解(一)Java執行緒
- Java多執行緒超詳解Java執行緒
- PHP 執行模式PHP模式
- PHP執行sqlPHPSQL
- PHP執行模式PHP模式
- java多執行緒與併發 - 執行緒池詳解Java執行緒
- JAVA多執行緒詳解(3)執行緒同步和鎖Java執行緒
- PHP CURL詳解PHP
- iOS多執行緒詳解:概念篇iOS執行緒
- 詳解 JUC 執行緒池中的 ThreadPoolExecutor執行緒thread