php 程序區別認識

2021-06-27 01:21:47 字數 1507 閱讀 9693

cgi全稱是「公共閘道器介面」

fastcgi像是乙個常駐(long-live)型的cgi

cgi,fastcgi也具有語言無關性.

php-cgi是php自帶的fastcgi管理器。

fastcgi的不足

因為是多程序,所以比cgi多執行緒消耗更多的伺服器記憶體,php-cgi直譯器每程序消耗7至25兆記憶體

fastcgi的工作原理

1、web server啟動時載入fastcgi程序管理器(iis isapi或apache module)  

2、fastcgi程序管理器自身初始化,啟動多個cgi直譯器程序(可見多個php-cgi)並等待來自web server的連線。  

3、當客戶端請求到達web server時,fastcgi程序管理器選擇並連線到乙個cgi直譯器。web server

將cgi環境變數

和標準輸入傳送到fastcgi子程序php-cgi。  

4、fastcgi子程序完成處理後將標準輸出和錯誤資訊從同一連線返回web server。當fastcgi子程序關閉連線時,請求便告處理完成。

fastcgi子程序接著等待並處理來自fastcgi程序管理器(執行在web server中)的下乙個連線。 在cgi模式中,php-cgi在此便退出了。

php-fpm是乙個php fastcgi管理器,是只用於php的

php-fpm.conf有兩個至關重要的引數,乙個是」max_children」,另乙個是」request_terminate_timeout」

php指令碼沒有系迴圈或bug的話你可以直接將」request_terminate_timeout」設定成0s。0s的含義是讓php-cgi一直執行下去而沒有時間限制。

如果「request_terminate_timeout」設定的時間不夠,則會導致php-cgi死掉而出現502 bad gateway這個錯誤。

」max_children」這個值原則上是越大越好,php-cgi的程序多了就會處理的很快,排隊的請求就會很少。

而如果我的」max_children」設定的較小,比如5-10個,那麼php-cgi就會「很累」,處理速度也很慢,等待的時間也較長。

如果長時間沒有得到處理的請求就會出現504 gateway time-out這個錯誤,而正在處理的很累的那幾個php-cgi如果遇到了問題就會出現502 bad gateway這個錯誤。

php-cgi的不足

1、php-cgi變更php.ini配置後需重啟php-cgi才能讓新的php-ini生效,不可以平滑重啟

2、直接殺死php

-cgi程序,php就不能執行了。(php-fpm和spawn-fcgi就沒有這個問題,守護程序會平滑從新生成新的子程序。)

php-cgi直譯器每程序消耗7至25兆記憶體

程序的初步認識

程序是作業系統結構的基礎 是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。在程式的實現中,程序使用大有裨益。1.程序的建立函式 fork vfork 前者父子程序執行順序不定。2.在子...

PHP學習(一) 認識PHP

php hypertext preprocessor,超文字預處理器 是一種被廣泛應用 開放源 多用途 執行在伺服器端的指令碼語言。php可以簡單地視為一種較流行的開發動態網頁用的程式語言,是一種伺服器端的,嵌入到html中的指令碼語言,是開發web應用程式的理想工具。它具有開源免費 語法簡單 跨平...

PHP之認識PHP 一

1.1php乙個最簡單的例子 echo my first php script 1.2php的使用 1.3注釋 這是 php 單行注釋 這是 php 多行 注釋 1.4變數 php 變數規則 1.5echo與print echo print 和 print r的區別 1.6資料型別 string 字...