⑴ CGI服務時什麼
CGI(Common Gateway Interface,通用網關介面)是運行在伺服器上的一種程序,它能讓網頁跟Web伺服器溝通,達到跟使用者互動的效果。簡單來說,CGI程式就是能夠動態產生WWW網頁,並讓一般使用者經由WWW取用現存在傳統資訊系統內的資料。CGI提供同客戶端HTML頁面的介面,通俗的講,CGI就像是一座橋,把網頁和Web伺服器中的執行程序連接起來,把HTML接收的指令傳遞給伺服器,再把伺服器執行的結果返還給HTML頁;用CGI可以實現處理表格、資料庫查詢、發送電子郵件等許多操作,常見的CGI就是計數器。CGI使網頁變得不是靜態的,而是互動式的。 如果資料天天更新,那麼天天更新HTML文件是一件很繁瑣、勞累的事情。萬一放在WWW上的資料是分分秒秒都在變動的,那麼利用CGI自動根據資料產生HTML文件可以說是最好的選擇。
⑵ CGI 程序指什麼
一、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 的旗艦企業伺服器的站點還多.
⑶ cgi是什麼意思
cgi是通用網關介面。
通用網關介面(Common Gateway Interface/CGI)是一種重要的互聯網技術,可以讓一個客戶端,從網頁瀏覽器向執行在網路伺服器上的程序請求數據。CGI描述了伺服器和請求處理程序之間傳輸數據的一種標准。
最初,CGI是在1993年由美國國家超級電腦應用中心(NCSA)為NCSA HTTPdWeb伺服器開發的。這個Web伺服器使用了UNIXshell環境變數來保存從Web伺服器傳遞出去的參數,然後生成一個運行CGI的獨立的進程。
cgi變通方法:
如果代碼只是偶爾改變的話,我們可以在伺服器產生一個新的進程在編譯代碼之前進行處理。有一個例子是FastCGI,當然還包括其它編寫的加速器,它會在第一次調用腳本時,在系統的某個地方保存腳本編譯過的版本。
這樣對這個文件以後的請求就會自動轉向這個編譯過的代碼,而不用每次調用腳本解釋器來解釋腳本。當更改了腳本,加速器的臨時緩存會被清空來保證調用的是新的版本的腳本。
⑷ lighttpd伺服器cgi程序500,該怎麼處理
下面是我成功地配置Nginx+PHP5FastCGI的過程首先安裝或編譯Nginx安裝Nginx源碼包可以在官方主頁上下載。Ubuntu7.10可以直接通過apt安裝,也可以從這里下載最新的deb包:sudoapt-getinstallnginx如果要自己編譯的話,需要確保自己已經有編譯器和PCRE的庫(用於Nginx的rewrite模塊,如果不需要這個模塊可以在configure時使用./configure–without-rewrite),編譯方法如下:wgettarzxvfnginx-0.5.34.tar.gzcdnginx-0.5.34./configure#默認配置安裝路徑為/usr/local/nginx可以追加--prefix=/usr設置到/usrmake&&makeinstall#install要求有root許可權Ubuntu安裝之後的文件結構大致為:所有的配置文件都在/etc/nginx下,並且每個虛擬主機已經安排在了/etc/nginx/sites-available下程序文件在/usr/sbin/nginx日誌放在了/var/log/nginx中並已經在/etc/init.d/下創建了啟動腳本nginx默認的虛擬主機的目錄設置在了/var/www/nginx-default而自己利用默認配置編譯的,則放在/usr/local/nginx下,以下是目錄結構:/usr/local/nginx/conf配置目錄/usr/local/nginx/html默認的網站根目錄/usr/local/nginx/logs日誌和pid文件目錄/usr/local/nginx/sbin執行文件目錄下面可以啟動nginx來看看效果(請確保80埠沒有其他服務在使用):Ubuntu請運行:sudo/etc/init.d/nginxstart其他請運行:/usr/local/nginx/sbin/nginx然後就可以通過;location~.*.php${include/usr/local/nginx/conf/fastcgi_params;#請根據自己保存的路徑進行設置fastcgi_indexindex.php;fastcgi_pass127.0.0.1:9000;#請根據自己的FastCGI綁定的地址和埠進行配置}}通知Nginx重新載入配置:kill-HUP`cat/usr/local/nginx/logs/nginx.pid`Ubuntu用戶可以使用init腳本:sudo/etc/init.d/nginxreload然後啟動php-cgi-b127.0.0.1:9000假設你在文檔根目錄放了index.php,並包含」phpinfo();」的內容,現在再看rc.local文件底部,這樣系統啟動的時候也可以同時啟動PHP的FastCGI進程。
⑸ 求CGI伺服器架設教程
1、 安裝需要的軟體
2、 配置iis的完全過程
3、 舉例說明:安裝一個cgi留言本
(給新手:電腦上一定要已經裝上了iis,iis在windows2000 ser和winnt是默認安裝的,而windows2000 pro卻要手工安裝。手工安裝可在「控制面版」à「添加/刪除」à「添加/刪除windows組件」中選擇,打開ie輸入127.0.0.1,出現iis的頁面,表示安裝成功)
如果你的操作系統是windows nt的話,那你還有一項要做,就是要安裝instmsi.exe這個程序安裝器,你可以在nt的系統盤里找到這個程序安裝器。(注意:只是操作系統為nt才需要安裝,如果你用的是win2k,那你就可以跳過這步了)。安裝很簡單,這里不說了,安裝完需要重啟一遍。
一、安裝需要的軟體
我們知道windows2000或者winnt的iis是默認支持asp的,但是對cgi和perl卻要手工調試,所以我們要安裝activeperl,
首先安裝activeperl, 他會問你安在哪個盤下,輸入全路徑名(如f:\perl),剩下的基本上就是一路都是「y」安裝完後,你可以在你所安裝的盤下找到perl(或者你自己設定的文件夾),同樣,安裝完後同樣需要重啟計算機。
二、配置iis的完全過程
ok!一切安裝任務全部完成了,下面我們就該來配置iis,打開「我的電腦」à「控制面板」à「管理工具」à「internet服務管理器」中右擊「默認web站點」選擇屬性,在web站點選項卡中看一下web站點標示àip地址是否為127.0.0.1,其餘的可以默認。
然後選擇主目錄選項卡,察看一下本地路徑是否為你的inetpub的路徑(這里建議把c盤下inetpub的默認路徑改一下,如:可以挪到其他盤的目錄下,這樣相對安全一些,如果你的默認路徑改了,那麼這里的本地路徑就要作相應調整,否則iis會報錯)
我們先建立cgi和pl的映射,我們安裝完activeperl,伺服器已經可以執行perl和cgi程序了,但並不是默認運行,需要我們手工設置一下映射,
1、「我的電腦」à「控制面板」à「管理工具」à「internet服務管理器」中右擊「默認web站點」選擇屬性,
2、選主目錄選項卡[如圖2],點擊配置à添加。
4、 輸入c:\perl\bin\perl.exe %s %s(兩個%s中間有空格),
5、 擴展名添.cgi,,
6、 檢查腳本是否存在打上勾。
7、 如果是win2000「動作」中添入get,head,post [如圖3]。(如果是nt則這一步不作。)
然後回到主目錄選項卡,重復剛才這7個步驟,只是在第5個步驟中擴展名改成.pl[如圖4]
現在我們要建立虛擬路徑,如果沒有這一步可是不行的,(給新手:什麼是虛擬路徑?如www.itsfocus..net /bbs/its/index.htm中的/bbs/its/index.htm就是虛擬路徑。什麼是絕對路徑?如:f:\myhome\bbs\its\index.htm就是絕對路徑)知道了什麼是虛擬路徑,現在我們來建一個虛擬路徑,
1、 在任意一個盤下建一個文件夾,文件夾名可以任意起,這里我起名叫myhome(當然你可以隨便起,這個名字會顯示在你的url後面,如127.0.0.1/myhome/)[如圖5],這就是你要映射的cgi腳本目錄。
2、 然後我們點擊「我的電腦」à「控制面板」à「管理工具」à「internet服務管理器」從中點擊你的計算機名,選擇右擊「默認web站點」,選擇新建à虛擬目錄[如圖6],
3、 單擊下一步,在別名出添入一個名字,這就是虛擬目錄的名字,然後選擇你建的絕對路徑(就是就是剛才我們建的f:\myhome),
4、 然後在訪問許可權中選擇讀取、運行腳本、執行,然後一路回車,這就完成了~~~,現在我們就可以把自己的cgi腳本放在f:\myhome下。最後別忘了重啟一下。ok了~~~
三、安裝一個cgi留言本
我們下面來安裝一個cgi的留言本,就算是實戰了,我就拿前不久炒的挺火的agb留言本來作咱們今天的例子吧!先將從網上下載下來的留言本解壓縮至任意一個目錄下,然後我們在f:\myhome\下建一個agb的目錄,在將解壓縮的腳本文件復制到agb下。
現在打開瀏覽器,輸入安裝的腳本文件127.0.0.1/myhome/agb/install.cgi[如圖7]就可以看到你的留言本了。說明一下:大家可能看出來了myhome 後邊的路徑就是映射的絕對目錄的路徑,所以往後可以以此類推,只要將你要調試的腳本放在你建的虛擬目錄下,然後在瀏覽器中輸入其路徑就可以訪問了,留言本是這樣,論壇也是,大家可以自己試一下。(也許你會問:你怎麼知道是install.cgi?agb的幫助文件中寫的呀!)
最後添寫一些相應內容,看!! 我的留言本也做好了,可以進行測試了!!![如圖8]
希望大家能從這篇文章中學到些什麼,那樣的話我寫文章的目的也就達到了,當然如果你有什麼意見或者還有什麼不明白的可以直接問我,我會很樂意為大家解答問題!
⑹ 怎麼在apache伺服器上面運行cgi
將圖片處理的函數編譯成庫,在接受圖片的cgi程序裡面調用圖片處理cgi程序的方法就行了
⑺ cgi是什麼意思
公共網關介面(Common Gateway Interface,CGI)是Web 伺服器運行時外部程序的規范,按CGI 編寫的程序可以擴展伺服器功能。
CGI是 Web 伺服器運行時外部程序的規范,按CGI編寫的程序可以擴展伺服器功能。CGI應用程序能與瀏覽器進行交互,還可通過資料庫 API 與資料庫伺服器等外部數據源進行通信,從資料庫伺服器中獲取數據。
格式化為 HTML 文檔後,發送給瀏覽器,也可以將從瀏覽器獲得的數據放到資料庫中。幾乎所有伺服器都支持CGI,可用任何語言編寫CGI,包括流行的 C、C ++、VB 和 Delphi 等。CGI分為標准CGI和間接CGI兩種。
標准CGI使用命令行參數或環境變數表示伺服器的詳細請求,伺服器與瀏覽器通信採用標准輸入輸出方式。間接CGI又稱緩沖CGI,在CGI程序和CGI介面之間插入一個緩沖程序,緩沖程序與CGI介面間用標准輸入輸出進行通信。
⑻ CGI是什麼怎樣用
CGI是什麼?
什麼是CGI。Common Gate Intergace聽起來讓人有些專業,
我們就管它叫CGI好了。在物理上,CGI是一段程序,它運行在Server上,提供同客戶段 Html頁
面的介面。這樣說大概還不好理解。那麼我們看一個實際例子: 現在的個人主頁上大部分都有
一個留言本。留言本的工作是這樣的:先由用戶在客戶段輸入一些信息,如名字之類的東西。接
著用戶按一下「留言」(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到伺服器的CGI
目錄下特定的cgi程序中,於是cgi程序在伺服器上按照預定的方法進行處理。在本例中就是把
用戶提交的信息存入指定的文件中。然後cgi程序給客戶端發送一個信息,表示請求的任務已經
結束。此時用戶在瀏覽器里將看到「留言結束」的字樣。整個過程結束。
⑼ CGI的伺服器配置
CGI程序不是放在伺服器上就能順利運行,如果要想使其在伺服器上順利的運行並准確的處理用戶的請求,則須對所使用的伺服器進行必要的設置。
配置:根據所使用的伺服器類型以及它的設置把CGI程序放在某一特定的目錄中或使其帶有特定的擴展名。
⑴CREN格式伺服器的配置:
編輯CREN格式伺服器的配置文件(通常為/etc/httpd.conf)在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec。命令中出現的第一個參數cgi-bin/*指出了在URL中出現的目錄名字,並表示它出現在系統主機後的第一個目錄中,如:http://edgar.stern.nyn.***/cgi-bin/。命令中的第二個參數表示CGI程序目錄放在系統中的真實路徑。
CGI目錄除了可以跟網路文件放在同一目錄中,也可以放在系統的其它目錄中,但必須保證在你的系統中也具有同樣的目錄。在對伺服器完成設置後,須重新啟動伺服器(除非HTTP伺服器是用inetd啟動的)。
⑵NCSA格式伺服器的配置
在NCSA格式伺服器上有兩種方法進行設置:
①在srm.conf文件(通常在conf目錄下)中加入:Script Alias/cgi-bin/cgi-bin/。Script Alias命令指出某一目錄下的文件是可執行程序,且這個命令是用來執行這些程序的;此命令的兩個參數與CERN格式伺服器中的Exec命令的參數的含意一樣。
②在srm.conf文件加入:Add type application/x-httpd-cgi.cgi。此命令表示在伺服器上增加了一種新的文件類型,其後第一個參數為CGI程序的MIME類型,第二個參數是文件的擴展名,表示以這一擴展名為擴展名的文件是CGI程序。
在用上述方法之一設置伺服器後,都得重新啟動伺服器(除非HTTP伺服器是用inetd啟動的)。
⑽ boa伺服器的CGI
在物理上是一段程序,運行在伺服器上,提供同客戶端HTML頁面的介面。即客戶端與伺服器的介面。
比如留言本的工作流程:先由用戶在客戶端輸入一些信息,如名字之類的東西。接著用戶按一下「留言」(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到伺服器的CGI目錄下特定的cgi程序中,於是cgi程序在伺服器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然後cgi程序給客戶端發送一個信息,表示請求的任務已經結束。此時用戶在瀏覽器里將看到「留言結束」的字樣。整個過程結束。