IIS安裝CGI,iis6,IIS7安裝CGI圖解
cgi是一種很古老的技術(shù)了,今天又把他翻出來 ,主要是因?yàn)檫@是用c/c++開發(fā)webservice服務(wù)器端一個(gè)相對簡單的方案,借助gsoap,可以很容易的生成相關(guān)的代碼,借助于http server(iis或apache)的強(qiáng)大的功能,可以很容易的開發(fā)出一個(gè)簡單的webservice,你不需要考慮安全的問題,多用戶并發(fā)的問題,會話管理的問題,你只需要站在http server的肩膀上,實(shí)現(xiàn)你自己的業(yè)務(wù)功能就是了.下面是msdn里關(guān)于iis配置cgi的文章,摘過來以便于以后查閱.
配置 CGI 應(yīng)用程序 (IIS 6.0)
IIS 6.0 支持通用網(wǎng)關(guān)接口 (CGI) 應(yīng)用程序。本主題提供了有關(guān)在 Web 服務(wù)器上安裝和配置 CGI 應(yīng)用程序以及設(shè)置 CGI 腳本超時(shí)值的管理信息。
要點(diǎn):
為了最大限度地減少服務(wù)器的攻擊面,默認(rèn)情況下,Windows Server 2003 上不安裝 IIS 6.0。首次安裝 IIS 6.0 時(shí),IIS 6.0 將被鎖定 -- 這表明只啟用處理靜態(tài)網(wǎng)頁的請求,并且只安裝萬維網(wǎng)發(fā)布服務(wù)(WWW 服務(wù))。IIS 上的所有功能都將關(guān)閉,包括 ASP、ASP.NET、CGI 腳本、Microsoft 的 FrontPage? 2002 Server Extensions 以及 WebDAV 發(fā)布功能。如果未啟用這些功能,那么 IIS 將返回 404 錯(cuò)誤。您可以通過 IIS 管理器中的 啟用 Web 服務(wù)擴(kuò)展節(jié)點(diǎn)啟用這些功能。有關(guān)如何解決 404 錯(cuò)誤及其他問題的詳細(xì)信息,請參閱 IIS 6.0 中的疑難解答。
CGI 程序在 Web 服務(wù)器接收到包含 CGI 程序名和程序所需參數(shù)的 URL 時(shí)執(zhí)行。如果將 CGI 程序編譯為可執(zhí)行 (.exe) 文件,則必須提供包含程序執(zhí)行權(quán)限的目錄,以便用戶可以運(yùn)行程序。如果 CGI 程序以腳本形式(例如 Perl 腳本)編寫,則既可為目錄提供執(zhí)行權(quán)限,也可為其提供腳本權(quán)限。要使用腳本權(quán)限,必須將腳本解釋程序標(biāo)記為腳本引擎。
今天一個(gè)客戶反映服務(wù)器不支持CGI,我上去看了一下。原來這客戶只是安裝了ActivePerl,默認(rèn)安裝有些地方?jīng)]有配置清楚,所以CGI不能運(yùn)行。我重新安裝了ActivePerl,并檢查了配置,就可以了。在這里把windows2003的iis6.0環(huán)境下的CGI配置做個(gè)教程,方便自己也方便大家。
第一步:下載ActivePerl,并安裝。
這里可以選擇安裝路徑,一般不用改用默認(rèn)的c:\perl就行了,直接點(diǎn)next
這里是選擇安裝選項(xiàng),一般就是用默認(rèn),直接點(diǎn)next,install安裝,安裝完成。
第二步:檢查權(quán)限,添加CGI映射。
打開c:\perl目錄的屬性,點(diǎn)安全,查一下user賬號對這個(gè)目錄要有讀取,讀取和運(yùn)行,列出文件夾三個(gè)權(quán)限,要不運(yùn)行CGI程序時(shí)會提示輸入用戶名密碼。
打開IIS管理器,WEB服務(wù)擴(kuò)展,允許所有未知CGI擴(kuò)展,Perl CGI Extension,Perl ISAPI Extension,PerlEx ISAPI Extension
然后回到網(wǎng)站屬性,在主目錄選項(xiàng)里點(diǎn)配置,添加CGI后綴映射。點(diǎn)添加,可執(zhí)行文件后面輸入C:\Perl\bin\perl.exe "%s" %s,或者直接把.pl的配置復(fù)制上來,擴(kuò)展名是cgi,限制為GET,HEAD,POST,TRACE,點(diǎn)確定。
到這里CGI的配置就全部完成了,打開你的網(wǎng)站,CGI程序是不是就可以運(yùn)行了。
如何解決IIS7出現(xiàn)“由于 Web 服務(wù)器上的“ISAPI 和 CGI 限制”列表設(shè)置,無法提供您請求的頁面”提示。
1.打開 Internet 信息服務(wù)(IIS)管理器
2.在“功能”視圖中,雙擊“ISAPI 和 CGI 限制” 以確認(rèn) Web 服務(wù)擴(kuò)展被設(shè)置為“允許”。
Tisp:
a、如果該擴(kuò)展不在列表中,請?jiān)凇安僮鳌贝案裰袉螕簟疤砑印薄?br />
b、在“添加 ISAPI 和 CGI 限制”對話框中,在“ISAPI”或“CGI 路徑”框中鍵入 .dll 或 .exe 文件的路徑,或者單擊“瀏覽”導(dǎo)航到相應(yīng)文件的位置。
c、在“描述”框中,鍵入該限制的簡要說明。
d 、(可選)選中“允許執(zhí)行擴(kuò)展路徑”以使限制可以自動運(yùn)行。
e、如果不選中此選項(xiàng),則限制狀態(tài)將為“不允許”,這是默認(rèn)狀態(tài)。您可以在以后選中此選項(xiàng)并單擊“操作”窗格中的“允許”來允許該限制。 單擊“確定”。
鏈接:https://www.zhihu.com/question/19582041/answer/23337307
來源:知乎
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。
對一個(gè) CGI 程序,做的工作其實(shí)只有:從環(huán)境變量(environment variables)和標(biāo)準(zhǔn)輸入(standard input)中讀取數(shù)據(jù)、處理數(shù)據(jù)、向標(biāo)準(zhǔn)輸出(standard output)輸出數(shù)據(jù)。
環(huán)境變量中存儲的叫 Request Meta-Variables,也就是諸如 QUERY_STRING、PATH_INFO 之類的東西,這些是由 Web Server 通過環(huán)境變量傳遞給 CGI 程序的,CGI 程序也是從環(huán)境變量中讀取的。
標(biāo)準(zhǔn)輸入中存放的往往是用戶通過 PUTS 或者 POST 提交的數(shù)據(jù),這些數(shù)據(jù)也是由 Web Server 傳過來的。
就比如,我們剛學(xué) C 語言時(shí)寫的 Hello World,也可以作為一個(gè)合法的 CGI 程序。
現(xiàn)在用 CGI 的已經(jīng)很少了,因?yàn)槊總€(gè) CGI 進(jìn)程只處理一個(gè)請求,換句話說,每個(gè)請求都需要創(chuàng)建一個(gè) CGI 進(jìn)程處理,CGI 程序處理完畢后就退出了。
FastCGI 正是對 CGI 的改進(jìn),而且改進(jìn)了不是一點(diǎn)點(diǎn)。
從總體上看,一個(gè) FastCGI 進(jìn)程可以處理若干請求(一般 FastCGI 進(jìn)程是駐留著的,但不排除 IIS 之類的 Web Server 限制其空閑時(shí)間,在一段時(shí)間內(nèi)沒有請求就自動退出的可能),Web Server 或者 fpm 會控制 FastCGI 進(jìn)程的數(shù)量。
細(xì)節(jié)方面,F(xiàn)astCGI 是一套協(xié)議,不再是通過簡單的環(huán)境變量、標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出來接收和傳遞數(shù)據(jù)了。一般來說,F(xiàn)astCGI 用 TCP 或者命名管道(Named Pipe)傳輸數(shù)據(jù)。
現(xiàn)在絕大多數(shù) PHP 網(wǎng)站都是在用 FastCGI 的。
因此,這個(gè)問題的答案取決于題主對 CGI 的理解。
0 Comments.