A. CGI與php之間的關系是什麼

CGI程序的功能:首先Nginx等webserver向這個CGI程序請求某個頁面,如果該頁面存在,CGI程序就會去獲取那個頁面的原始數據,然後把它轉換成html並把結果返回給webserver進而輸出給用戶瀏覽器

PHP等只要能夠處理文本的語言都可以用於編寫CGI程序。

B. PHP運行模式是ISAPI和CGI的區別

ISAPI執行方式是以DLL動態庫的形式使用,它能實現CGI提供的全部功能,並在此基礎上回進行了擴展,可以答在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,這樣來提高程序的執行效率;

CGI執行方式,把網頁和WEB伺服器中的執行程序連接起來,它把HTML接收的指令傳遞給伺服器的執行程序,再把伺服器執行程序的結果返還給HTML頁。CGI 的跨平台性能極佳,幾乎可以在任何操作系統上實現。 CGI方式在遇到連接請求(用戶請求)先要創建cgi的子進程,激活一個CGI進程,然後處理請求,處理完後結束這個子進程。這就是fork-and-execute模式。所以用cgi 方式的伺服器有多少連接請求就會有多少cgi子進程,子進程反復載入是cgi性能低下的主要原因。都會當用戶請求數量非常多時,會大量擠占系統的資源如內存,CPU時間等,造成效能低下。

C. php和cgi是什麼關系

一般的網頁服來務架構是這樣的:自

瀏覽器
|
網站伺服器(apache,nginx等)只支持靜態內容(html,圖片,文件)
|
CGIFastCGI(兩種編程規范,按照特定的方式讀輸入,寫輸出。也叫協議。)
||
任何語言任何語言(按照上面的規范來寫代碼,提供動態內容,比如讀寫資料庫,根據資料庫展示不同內容)

任何語言中就包括了php


其中CGI的方式就是,網站伺服器會把CGI程序當成普通的程序一樣調用,然後把CGI程序的標准輸出流作為內容返回給瀏覽器。每來一個請求,就要啟動一個CGI程序。所以php可以直接加上可執行屬性(僅linux),就可以讓網站伺服器調用。缺點是響應慢而且佔用內存多(每次啟動程序的消耗較大)。


而FastCGI的方式就是,網站伺服器通過socket跟FastCGI程序獲取輸入輸出。FastCGI程序會啟動一個程序一直運行並監聽埠。每來一個請求,不需要再啟動新的程序。php提供了php-fpm這個東東來監聽埠。

D. 關於FastCGI、php-cgi、php-fpm的區別是什麼,各自有什麼用途,以及相互間的關系是什麼

fastcgi是一個通用網關介面,用於web伺服器(iis, apache)和應用程序通信。

php-cgi是php平台的cgi程序
以上兩個結合,可以使php整合在web服務中
php-fpm是一個獨立的php-fcgi管理軟體,它要整合進web服務中,需要使用代理模式
一般與nginx搭配。也可以與apache搭配
php-fpm一般不直接作為服務容器提供外網訪問,而是通過常用web容器作代理

php作為伺服器端的解析程序,運行模式分很多種,fastcgi, mod_php, proxy(代理)等。
與iis搭配時一般採用fast-cgi模式,iis自帶fast-cgi引擎,配置好php參數即可
與apache搭配,在windows平台下,一般也是fast-cgi模式,在linux系統中一般是mod_php模式,把php作為一個子模塊載入
也可以配置php-fpm 然後在apache中配置代理模式
與nginx搭配,一般就是用php-fpm+代理模式了

E. php和cgi之間的區別

CGI是通用網關協議,是開發動態網頁的一個標准,遵循這個標准就可以用BAT、CMD、sh、PERL、C、C++、PERL以及PHP等語言編寫程序處理網頁請求和返回數據到客戶端瀏覽器。CGI是協議和標准,是一種規范,不是語言。

PHP是一個動態網頁開發語言,主要用於處理瀏覽器提交的數據以及返回結果給瀏覽器。PHP可以以CGI方式工作,也可以以ISAPI、NSAPI等模塊方式工作。

F. cgi是什麼php—cgi又是什麼這兩個有什麼關系

CGI是公共網關介面,是網站伺服器進程經過操作系統和互聯網客戶端進行通訊的一套規范標准。
PHP-CGI是PHP支持CGI標準的執行檔。

傳統CGI需要為每個訪問開一個操作系統進程,導致負荷很大。基本在伺服器部署上已經不採用CGI。現在主要應用Fast-CGI標准

G. CGI和ASP,PHP是什麼關系啊

都是用來做網站的語言

一、CGI:Common Gateway Interface
CGI代表Common Gateway Interface(通用網關界面),它使在網路伺服器下運行外部分應用程序(或網關)成為可能。CGI-BIN 目錄是存放CGI腳本的地方。這些腳本使WWW伺服器和瀏覽器能運行外部程序,而無需啟動另一個原因程序。

它是運行在Web伺服器上的一個程序,並由來自於瀏覽者的輸人觸發。CGI是在HTTP伺服器下運行外部程序(或網關)的一個介面,它能讓網路用戶訪問遠程系統上的使用類型程序,就好像他們在實際使用那些遠程計算機一樣。

CGI能夠讓瀏覽者與伺服器進行交互,如果你曾經遇到過在網路上填表或者進行搜索,就很有可能就是用的CGI。

盡管CGI易於使用,但是當大批人同時使用一個CGI應用程序是會反應較慢,網路伺服器 速度也會受到很大 影響。CGI應用程序的優點是可以獨立運行。

CGI應用程序可以由大多數的編程語言編寫,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不過對於那些沒有太多編程經驗的網頁製作人來說,實在是一個不小的難題。

CGI應用程序的工作原理是這樣的:

1.瀏覽器通過HTML表單或超鏈接請求指上一個CGI應用程序的URL。

2.伺服器收發到請求。

3.伺服器執行指定所CGI應用程序。

4.CGI應用程序執行所需要的操作,通常是基於瀏覽者輸人的內容。

5.CGI應用程序把結果格式化為網路伺服器和瀏覽器能夠理解的文檔(通常是HTML網頁)。

6.網路伺服器把結果返回到瀏覽器中。

有關CGI應用程序要注意的是:

CGI應用程序運行在瀏覽器可以請求的伺服器系統上,執行時需要使用伺服器CPU時間和內存。如果有成千上萬的這種程序會同時運行,那會對伺服器系統提出極高的要求。你要慎重考慮這個問題,以防止伺服器系統崩潰。

不完善的CGI應用程序可能成為別人非法進人伺服器系統的通道,有可能導致重要的資料被刪除或外泄。

CGI應用程序主要的用途有以下幾種:

根據瀏覽者填寫的HTML表單發送定製的答復。

創建可單擊的圖像縮小圖。

創建一個瀏覽者可以搜索內容的資料庫。

提供伺服器與資料庫的介面,並把結果轉換成HTML文檔。

製作動態HTML文擋。

如果一個CGI腳本可以在每台計算機上做同樣的事情;編寫腳本就會變的很容易。不幸的是,CGI腳本依賴於伺服器的操作系統,因此,對於非UNIX伺服器來說,Prl(UNIX下編寫腳本的一個常用工具)腳本毫無用處。所以,你必須定製安裝你的CGI腳本。

大多數伺服器都提供CGI-BIN目錄,但是這還不夠。因為你應該擁有自己的CGI-BIN。這樣,你就能運行自己的腳本(而不是讓自己的系統去適應已存在於系統上的腳本)。因此,你的提供商應安裝CGI-BIN,且能夠幫助你編寫腳本

二、ASP:Active Server Pages
ASP,活動伺服器頁面,就是一個編程環境,在其中,可以混合使用HTML、腳本語言以及組件來創建伺服器端功能強大的Internet應用程序。 如果你以前創建過一個站點,其中混合了HTML、腳本語言以及組件,你就可以在其中加入ASP程序代碼。通過在HTML頁面中加入腳本命令,你可以創建一個HTML用戶界面,並且,還可以通過使用組件包含一些商業邏輯規則。組件可以被腳本程序調用,也可以由其他的組件調用。
ASP的工作原理:
當在Web站點中融入ASP功能後,將發生以下事情:
1、用戶調出站點內容,默認頁面的擴展名是.asp。
2、瀏覽器從伺服器上請求ASP文件。
3、伺服器端腳本開始運行ASP。
4、ASP文件按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。
5、頁面信息發送到瀏覽器。
因為腳本是在伺服器端運行的,所以Web伺服器完成所有處理後,將標準的HTML頁面送往瀏覽器。這意味著,ASP只能在可以支持的伺服器上運行。讓腳本駐留在伺服器端的另外一個益處是:用戶不可能看到原始腳本程序的代碼,用戶看到的,僅僅是最終產生的HTML內容

三、PHP:Personal Home Page
PHP 是一種伺服器端的,嵌入HTML的腳本語言。PHP區別其他像客戶端Javascript的地方是它的代碼在伺服器端執行.PHP能做什麼?
最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格數據,生成動態頁面內容,或者收發cookies.可能最強大,最有意義的特性是PHP支持大范圍的資料庫.書寫一個支持資料庫的Web 頁面是難以置信的簡單.
下面是當前支持的資料庫:
Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL
PHP通過協議也支持與其他服務的"交談",像IMAP, SNMP, NNTP, POP3, 甚至是 HTTP. 你也可以打開晦澀的 網路介面和其他協議交互.
PHP的簡要歷史
1994年秋季, Rasmus Lerdorf 開始構思 PHP. 早期的非發行版本被用在他的主頁上,以追蹤誰在看他的在線簡歷. 1995年年初第一版本出台,當時PHP只被認為是個人主頁開發工具.它由一個非常單純的只能理解很少數特殊宏的分析引擎和 一些用在主頁後端通用的工具組成.如留言簿,計數器和其他一些東西.這個分析器在1995年年中被重寫並被命名為 PHP/FI 第二版. FI來自 Rasmus 寫的另外一個包, 用於解釋 html 形式的數據.他結合了個人主頁工具腳本和形式解析器,並加 上mSQL支持.這樣就產生 PHP/FI 了. PHP/FI以令人驚奇的步調成長,人們開始把自己的代碼貢獻給它.
很難給出它的硬統計表,但可以估計在1996年末,整個世界至少有15,000個網站在用PHP/FI.到1997年年中,這個 數字已經超過50,000了. 而在此時PHP的發展也發生了變化.由Rasmus自己偏愛的和幾個人開發的項目變成一個更有組織的團 體成就.Zeev Suraski和Andi Gutmans重寫了解析器.這個新的解析器成為PHP版本3的基礎.許多有用的代碼從PHP/FI 繼承到PHP3,並且很多是完全重寫的.
今天(1999年年中)不管是PHP/FI或PHP3與很多商業產品捆綁在一塊,例如C2級強度的Web伺服器和紅帽子Linux. 根據NetCraft提供的數據推斷,保守估計全世界應用PHP的網站已超過150,000個.由此看來,它比在網際網路上運行Netscape 的旗艦企業伺服器的站點還多.

H. php5-cgi和php5-fpm 這兩個東西是什麼意思啊有什麼區別

什麼是PHP-CGI:
PHP-CGI是PHP自帶的FastCGI管理器。
啟動PHP-CGI,使用如下命令:
php-cgi -b 127.0.0.1:9000
PHP-CGI的不足:
1、php-cgi變更php.ini配置後需重啟php-cgi才能讓新的php-ini生效,不可以平滑重啟
2、直接殺死php-cgi進程,php就不能運行了。(PHP-FPM和Spawn-FCGI就沒有這個問題,守護進程會平滑從新生成新的子進程。)
什麼是PHP-FPM
PHP-FPM是一個PHP FastCGI管理器,是只用於PHP的,可以在 http://php-fpm.org/download下載得到.
PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。必須將它patch到你的PHP源代碼中,在編譯安裝PHP後才可以使用。
現在我們可以在最新的PHP 5.3.2的源碼樹里下載得到直接整合了PHP-FPM的分支,據說下個版本會融合進PHP的主分支去。相對Spawn-FCGI,PHP-FPM在CPU和內存方面的控制都更勝一籌,而且前者很容易崩潰,必須用crontab進行監控,而PHP-FPM則沒有這種煩惱。
PHP5.3.3已經集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,比spawn-fcgi具有更多有點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM。
二者的區別:
php-cgi是被調用的進程,php-fpm是配置和管理進程的。

I. php和cgi程序那種好用

通用網關介面(Common Gateway Interface/CGI)是一種重要的互聯網技術,可以讓一個客戶端,從網頁瀏覽器向執行在Web伺服器上的程序,請求數據。CGI描述了客戶端和這個程序之間傳輸數據的一種標准。
理解了這句話就知道cgi和php並不是一個概念。

cgi是那個標准,而php是那個程序。
記得有人說過任何有標准輸入輸出的語言都可以用來寫cgi,甚至win系統的批處理(bat)

所以,你喜歡什麼就用什麼。
php用的人多,安裝配置及入門都很容易。

J. php 與 php-cgi問題

建議你暫時放開CGI,實在放不下就看看下面的啰嗦:CGI是一種協議,是WEB伺服器調用可執行程序的協議。PHP一般有兩種工作模式,一是作為模塊,一是作為CGI。因此CGI和PHP就發生了關系。