六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

CGI教學:第4章 設置Web Server以運行CGI

[摘要]一、NCSA Server二、CERN httpd三、Netscape Server四、IIS 一、設置NCSA Server或Apache Server以使用CGINCSA Server的CGI1.1只允許用下列兩種方式激活用戶服務器上的腳本:ScriptAlias指令和AddType指令。這兩...
一、NCSA Server
二、CERN httpd
三、Netscape Server
四、IIS
一、設置NCSA Server或Apache Server以使用CGI

NCSA Server的CGI1.1只允許用下列兩種方式激活用戶服務器上的腳本:ScriptAlias指令和AddType指令。這兩條指令都放在srm.conf文件中,該文件一般在用戶的服務器根目錄的conf目錄中。

ScriptAlias指令告訴服務器該目錄中的所有文件都是腳本或者是服務器作為CGI文件執行的程序。該方法能保證用戶的CGI程序在特定位置。AddType指令允許用戶告訴服務器任何具有指定前綴的文件都是可執行文件。如果希望將CGI程序放在服務器中任何地方的話該指令即很有用。

1、ScriptAlias指令

ScriptAlias指令位于Server Resource Map文件(srm.conf)中,程序內容例如下:

DocumentRoot /usr/local/etc/httpd/htdocs
UserDir public_html
REdirect /HTTPD/ http://www.server.com/
Alias /icons/ /usr/local/etc/httpd/icons/
ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/
DirectoryIndex index.html index.shtml index.cgi
IndexOptions FancyIndexing
AddIcon /icons/movie.gif .mpg .qt
AddIcon /icons/menu.gif
AddIcon /icons/blank.xbm
DefaultIcon /icons/unknown.xbm

IndexIgnore */.??* *~ *# */HEADER* */README*
DefaultType text/plain
AccessFileName .htaccess
srm.conf文件允許用戶根據自己系統需要設置HTTP Server。它允許用戶告訴服務器用戶的主頁在什么地方,目錄中的哪個文檔是索引文檔,如果不存在索引文件的話將裝載什么圖片文件以顯示文件的類型,等等。srm.conf及其他配置文件的說明可查閱http://www.nease.net/tppmsgs/msgs0.htm#34。

2、AddType指令
AddType指令是執行CGI程序的另一種方式,它是在srm.conf文件中加入下列行:

AddType application/x-httpd-cgi.cgi

在自己的系統中設置了該指令后,任何在服務器控制范圍內的擴展名為.cgi的文件都會被作為CGI程序執行而不是作為文本文件閱讀。這意味著用戶可以在他的個人目錄中創建腳本并能執行它。但是如果腳本寫得不正確,就可能導致對文件系統、口令文件等的不同類型傷害。

AddType指令可以擴展為允許擴展名不是.cgi的程序同樣被執行。大家經常會看見以.pl(Perl腳本的常見擴展名)或.sh(Bourne Shell腳本的常見擴展名)結尾的腳本。如果想支持其他擴展名的程序,只需簡單地將它們加入AddType指令中,如下所示:

AddType application/x-httpd-cgi .cgi .pl .sh

3、訪問配置文件
為了支持CGI程序的執行必須多加入一條指令。在Server Root/conf目錄中是一個名為access.conf的配置文件。該文件允許用戶設置ServerRoot下的哪個目錄能夠訪問的全局限制,甚至允許用戶控制哪些站點可以訪問這些目錄。下面是access.conf文件的一個例子:

<Directory /usr/local/etc/httpd/cgi-bin>
Options INdexes Exec CGI
</Directory>

<Directory /usr/local/etc/httpd/htdocs>
Options Indexes FollowSymLinks
AllowOverride All
<Limit GET>
order allow,deny
allow from all
</Limit>
</Directory>
Exec CGI表示允許執行該目錄中的CGI腳本。Options Indexes FollowSymLinks表示允許索引(顯示某文件夾中的內容)并能夠遵循符號鏈(這就意味著在ServerRoot之外的文件也能被訪問)。AllowOverride指令允許用戶決定哪個指令可以被目錄的.htaccess文件覆蓋。中設置了對該目錄中允許使用GET方式的限制。在HTTPD中,部分指令的選項是GET、POST和PUT(目前PUT尚未實現)。order allow,deny一行告訴服務器先找allow行再找deny行。下一行則是告訴服務器允許所有站點訪問該目錄中的頁面。

二、設置CERN HTTP服務器以使用CGI
CERN HTTP服務器(也稱為W3C HTTP服務器)僅需要編輯/etc/httpd.conf文件即可支持在服務器內使用CGI程序。這個指令類似于NCSA Server使用的指令:

Exec /url-prefix/* /physical-path/*

其中/url-prefix/定義了客戶能看見的路徑,而/physical-path/則是包含腳本的目錄的實際路徑。

三、設置Netscape以使用CGI
首先要啟動管理服務器。以root身份登錄,并運行/ServerRoot/admserv/start-admin,缺省端口為81。然后啟動瀏覽器連接。在Netscape Admin頁面中,單擊Select URL Mapping,從彈出窗口中選擇Map a URL to a Local Directory。然后單擊Select CGI and Server Parsed HTML,從彈出窗口中選擇Activate CGI as a File Type,F在即可單擊Browse Files并選擇欲激活的目錄。選擇完目錄后,單擊I'd Like to Activate CGI as a File Type。在ServerRoot中即會看到Conf目錄中的obj.conf配置文件中已加入了下列行:

NameTrans form="/cgi-bin" fn="pfx2dir" dir="/usr/local/web/cgi-bin" name="cgi"

name=cgi調用了下列行:

<Object name="cgi">
ObjectType fn="force-type" type="magnus-internal/cgi"
Service fn="send-cgi"
</Object>
它告訴服務器此為一個CGI目錄,其中的所有文件都將用Netscape內部提供的CGI執行。 四、設置IIS以使用CGI

在IIS上運行CGI有十個簡單的步驟:

1)安裝Internet Service Manager。
2)從列表中選擇WWW Servive。
3)選擇Properties/Service Properties命令。
4)單擊Directories標簽。
5)單擊Add按鈕。
6)指定自己的cgi-bin目錄的完整路徑(例如,c:\webfiles\scripts)。
7)使用/scripts作為目錄別名。
8)選中Execute檢查框。
9)單擊OK保存修改。
10)將自己的CGI程序放在c:\webfiles\scripts中并在HTML中作為/scripts/someprogram.exe引用。
在使用IIS時經常出現的問題與設置IIS沒太大關系而是和基本的操作系統功能有很大關系。IIS與底層的操作系統聯系很緊密,即使已經設置為服務,Web服務器基本上是作為應用程序來運行的,通常只有一個用戶安全環境,Web服務器能訪問到的與Web服務器下的CGI程序能訪問到的內容幾乎沒什么不同(這類似于UNIX環境,在UNIX環境下,很重要的一點就是不要將Web服務器作為root來運行)。IIS的工作很像一個擴展的文件系統。每個用戶有自己的權限。CGI程序在執行該程序的訪問者的用戶安全環境中運行。對于未驗證的頁面,這就是缺省提供的“無名的”用戶,而對驗證的頁面,安全環境就像用戶位于服務器控制臺前手工運行該程序一樣。使大部分初學者犯錯誤的正是這種額外的安全層次。

IIS管理員最常抱怨的一個錯誤信息是"The Application misbehaved by not returning a complete set of headers"。錯誤消息接下來列出服務器接收到的頭標--一般是個空的清單。這種討厭的不明確的錯誤有一個直接的原因,不過這個原因與CGI腳本的錯誤操作沒有一點關系。如果因為某種原因某個CGI腳本不能運行,它就不能產生任何頭標。IIS將錯誤的責任推在腳本身上,實際上卻幾乎總是服務器管理員的錯。CGI腳本需要訪問系統DLLs、系統的臨時目錄以及它們使用的任何其他資源。如果該腳本是按靜態約束進行編譯的,那么除非所有組件均可用,否則操作系統不會裝載該程序的。如果系統管理員鎖緊了安全級使得腳本不能裝載它的DLLs,那么腳本就不能運行。當腳本不能運行時,它也就不產生任何頭標了(或者其他的輸入),從而導致出現本段開頭引用的錯誤消息。

如果管理員是在一個安全目錄中運行腳本的(安全目錄即是一個需要單獨用戶驗證才能訪問的目錄),那么每個可能訪問系統的用戶都必須有下列安全權限。如果是無名地運行腳本,那么只有無名用戶需要這些權限:

.對%systemroot%system(一般為c:\winnt\system)的讀權限
.對%systemroot%system32(一般為c:\winnt\system32)的讀權限
.對臨時目錄(一般為c:\temp)的修改權限
.對Web根的讀權限
.對CGI目錄的修改權限
如果在有了這些訪問權限之后仍然出問題,可以進一步臨時給特殊的用戶帳號Everyone賦予這些目錄的修改權限。如果問題解決了,就可以認定是少了一個步驟(或一個用戶)。糾正問題然后慢慢回收權限直至服務器重新安全。




主站蜘蛛池模板: 色窝窝免费播放视频在线 | 色www永久免费视频 色www亚洲 | 午夜小影院 | 欧美线在线精品观看视频 | 色噜噜狠狠一区二区 | 亚洲第五页 | 欧美在线看欧美高清视频免费 | 在线观看黄免费 | 日本一区二区三区在线 观看网站 | 日日爱视频 | 亚洲福利视频网址 | 亚欧在线| 色域综合网 | 亚洲a区视频| 完整欧美一级淫片免费看 | 日本亚洲网站 | 日本系列 1页 亚洲系列 | 欧美亚洲综合在线 | 天天干天天拍天天射 | 中文字幕在线视频免费观看 | 伊人网在线免费视频 | 亚洲高清国产品国语在线观看 | 伊人网在线视频观看 | 性生免费视频 | 欧美视频中文字幕 | 三级三级三三级a级全黄 | 亚洲一区二区免费在线观看 | 欧美又大又粗又爽又硬 | 婷婷六月丁香色婷婷网 | 天堂在线观看中文字幕 | 色综合色狠狠天天综合色hd | 亚洲无限乱码一二三四区 | 青青青久97在线观看香蕉 | 网站在线观看免费 | 欧美亚洲高清 | 日韩免费专区 | 一级做a爰片久久毛片免费看 | 亚洲欧美日韩在线精品一区二区 | 在线免费视频国产 | 青青青国产成人久久111网站 | 午夜视频在线免费 |