Sun ONE logo      上一個      目錄      索引      下一個     

Sun ONE Web Server 6.1 管理員指南

第 15 章
藉由程式延伸伺服器

本章論述了在 Sun ONE Web Server 上安裝程式 (可應用戶端請求動態產生 HTML 頁面) 的方式。這些程式稱為伺服器端應用程式。(用戶端應用程式下載到用戶端並在用戶端機器上執行。)

本章包含下列小節:


伺服器端程式簡介

Java servlet 與 CGI 程式有不同的功能和用法。以下清單展示了這些伺服器端程式之間的區別︰

在伺服器上執行的伺服器端應用程式類型

Sun ONE Web Server 可以執行下列類型的伺服器端應用程式,以動態產生內容︰

Sun ONE Web Server 也可以執行可延伸或修改伺服器本身行為的程式。這些程式稱為 Plug-in,它們是使用 Netscape 伺服器應用程式設計介面 (NSAPI) 撰寫的。如需有關撰寫和安裝 Plug-in 的資訊,請參閱「Sun ONE Web Server 6.1 NSAPI Programmer's Guide」。

在伺服器上安裝伺服器端應用程式的方式

每種類型的程式均以不同方式安裝到伺服器上。以下清單彙總了這些程序︰

下列小節描述了這些安裝程序。


Java Servlet 與 JavaServer Pages (JSP)

本節論述了在 Sun ONE Web Server 上安裝和使用 Java Servlet 與 JavaServer Pages 的方式。

描述了下列主題︰

Servlet 與 JavaServer Pages 的簡介

Sun ONE Web Server 6.1 支援 Servlet 2.3 API 規格,允許 Servlet 和 JSP 納入到 Web 應用程式中。

Web 應用程式集合了 Servlet、JavaServer Pages、HTML 文件以及其他可能包含影像檔、壓縮歸檔檔案與其他資料的 Web 資源。Web 應用程式可以封裝到歸檔檔案中 (WAR 檔案),或存在於開放式目錄結構中。


備註

Servlet API 版本 2.3 與版本 2.1 是完全向下相容的,因此在不進行修改或重新編譯的情況下,所有現有 Servlet 仍將繼續工作。


若要開發 Servlet,請使用 Sun Microsystems 的 Java Servlet API。如需有關有關使用 Java Servlet API 的資訊,請參閱 Sun Microsystems 提供的文件,該文件位於︰

http://java.sun.com/products/servlet/index.jsp

JSP 是與 HTML 頁面頗為相似的頁面,可在 Web 瀏覽器中檢視它。但是,除 HTML 標籤以外,此頁面還可包含與 Java 程式碼混合的 JSP 標籤與指令集,用於延伸網頁設計師的能力,以便在頁面內加入動態內容。這些附加功能可提供諸如顯示特性值和使用簡單條件式等的功能。Sun ONE Web Server 6.1 支援 JavaServer Pages (JSP) 1.2 API 規格。


備註

請確定您的應用程式請求的 URI 大小寫 (例如 /foo.JSP) 匹配檔案系統路徑的正規大小寫 (例如 C:\Program Files\WebServer\docs\foo.jsp)。這很有必要,因為 Sun ONE Web Server 6.1 Java Web 容器目前執行區分大小寫的型樣匹配。


如需有關建立 JSP 的資訊,請參閱 Sun Microsystems 的 JavaServer Pages 網站,該網站位於︰

http://java.sun.com/products/jsp/index.jsp

如需有關開發 Servlet 和 JSP 以便與 Sun ONE Web Server 配合使用的資訊,請參閱「Sun ONE Web Server 6.1 Programmer's Guide to Web Applications」。

伺服器執行 Servlet 所需要的工具

Sun ONE Web Server 包含 Java 開發工具 (JDK) 版本 1.4.1_03。但在舊版 Web Server 中,將 Java 配置為伺服器範圍,在 6.1 發行版本中,您可按照 Web Server 實例配置 Java。

可以使用 Sun ONE Web Server 6.1 隨附的 JDK,或使用您選擇的 JDK (在此情況下,必須指定 JDK 路徑)。如需關於如何執行此動作的更多資訊,請參閱「配置 JVM 設定」。

依預設,安裝 Sun ONE Web Server 時將停用 Java。若要啟用 Servlet,必須先啟用 Java。

如需有關如何啟用 Java 的資訊,請參閱「啟用與停用 Java」。

部署 Web 應用程式

下列小節描述了透過 wdeploy 指令行公用程式 (以手動方式) 或透過使用者介面來部署、編輯和刪除 Web 應用程式的方式。

使用 server.xml 檔案

部署後,將依預設啟用 Web 應用程式。若要手動停用已部署的 Web 應用程式,需要修改 server.xml 檔案,如下所述︰

<VS>
<WEBAPP uri="/mywebapp" path="/webappdir" enabled = "false" >
</WEBAPP>

...

</VS>

如果您不慎使用同一個描述部署或編輯了多個 Web 應用程式,並且停用了其中一個,則伺服器將忽略 enabled = "false",並繼續使用預設設定 enabled = "true"

如需有關 server.xml 檔案的更多資訊,請參閱「Sun ONE Web Server 6.1 Programmer's Guide to Web Applications」。

您可以使用下列兩種方式部署和編輯 Web 應用程式︰

使用 Administration Server 介面

使用 Sun ONE Web Server 6.1,您可以部署、編輯、刪除、停用和啟用指定虛擬伺服器的 Web 應用程式。

部署 Web 應用程式

您可以透過選取 [Virtual Server Manager] 的 [Web Applications] 標籤下的 [Deploy Web Applications],存取 [Deploy Web Applications] 頁面。

若要部署 Web 應用程式,請執行以下步驟︰

  1. 從 [WAR File On] 下拉式清單中,選取 [Local Machine] 或 [Server Machine]。
  2. 將 WAR 檔案上載至伺服器時,選取 [Local Machine]。若 WAR 檔案已經駐留在伺服器中,則選取 [Server Machine]。

  3. 在提供的欄位中,輸入 WAR 檔案 (包含 Web 應用程式) 於本機或伺服器機器上的路徑。
  4. 在伺服器機器上,輸入 WAR 檔案的絕對路徑。

    在本機上,可以瀏覽可用路徑。按一下 [browse] 將開啟 [File Upload] 視窗,可讓您選取要上載至伺服器的 WAR 檔案。

  5. 在提供的欄位中,輸入 Web 應用程式於虛擬伺服器上的 URI。
  6. 輸入伺服器機器上目錄 (將把 WAR 檔案內容擷取到其中) 的絕對路徑。如果目錄不存在,將建立該目錄。
  7. 按一下 [OK]。
  8. 按一下 [Apply]。
  9. 為要部署的 Web 應用程式選取 [Dynamic Reconfiguration]。
編輯 Web 應用程式

您可以編輯、刪除、停用或啟用已部署的 Web 應用程式。可以透過選取 [Virtual Server Manager] 的 [Web Applications] 標籤下的 [Edit Web Applications],存取 [Edit Web Applications] 頁面。

若要編輯、刪除、停用或啟用已部署的 Web 應用程式,請執行以下步驟︰

  1. 在您正在編輯的 Web 應用程式旁的 [Action] 欄中,從下拉式清單內選取要執行的動作。請選擇︰
    • [Edit],以變更可在其中存取 Web 應用程式的 URI。
    • [Delete],以便從 Web 應用程式檔案中刪除 Web 應用程式項目,以及刪除已部署此應用程式的目錄。
    • [Disable],以便無法從 URI 存取 Web 應用程式,但不是刪除它。
    • [Enable],以重新啟動先前停用的 Web 應用程式。

      警告

      刪除 Web 應用程式也會刪除已部署此應用程式的目錄。


  2. (可選) 如果您正在編輯 Web 應用程式,請在 [URI] 欄位中輸入新的 URI。
  3. 按一下 [OK]。
  4. 按一下 [Apply]。
  5. 為要部署的 Web 應用程式選取 [Dynamic Reconfiguration]。

使用指令行介面

手動部署 Web 應用程式之前,您必須先確定路徑中含有 server_root/bin/https/httpsadmin/bin 目錄,並且已將 IWS_SERVER_HOME 環境變數設定為 server_root 目錄。

部署虛擬伺服器 Web 應用程式︰

您可以在指令行上使用 wdeploy 公用程式,將 WAR 檔案部署到虛擬伺服器 Web 應用程式環境中︰

wdeploy deploy -u <uri_path> -i <instance> -v <vs_id> [ [-V <verboseLevel>]| [-q] ] [-n] [-d <directory>] <war_file>

刪除虛擬伺服器 Web 應用程式︰

wdeploy delete -u <uri_path> -i <instance> -v <vs_id> [ [-V <verboseLevel>] | [-q] ] [-n] hard|soft

列示虛擬伺服器的 Web 應用程式 URI 和目錄︰

wdeploy list -i <instance> -v <vs_id> [ [-V <verboseLevel>] | [ -q] ]

指令參數有下列含義︰

uri_path

Web 應用程式的 URI 前綴。

instance

伺服器實例名稱。

vs_id

虛擬伺服器 ID。

directory

(可選) 部署應用程式的目錄或從中刪除應用程式的目錄。如果未指定部署目錄,將把應用程式部署到文件根目錄中。

hard | soft

指定是否刪除目錄和 server.xml 項目 (hard),或僅刪除 server.xml 項目 (soft)。

war_file

WAR 檔案名稱

verboseLevel

用來在主控台上顯示日誌訊息的冗長層級。值的範圍是 0 到 4,預設值為 1。

請注意,在 Sun ONE Web Server 6.1 中,使用 server.xmlLOG 元素的 loglevel 屬性替代該元素。

-q

(靜音) 將冗長層級設定為零。其等同於設定 -V 0

-n

防止 wdeploy 自動將 reconfigure 指令傳送至 Web Server。如需更多資訊,請參閱在 wdeploy 指令中使用 -n


警告

如果您要部署 Web 應用程式,但沒有指定 directory,則將把此應用程式部署到文件根目錄中。如果您隨後使用 hard 參數刪除此應用程式,則也會刪除文件根目錄。


執行 wdeploy deploy 指令時,將發生以下三種情況︰

例如︰

wdeploy deploy -u /hello -i server.sun.com -v acme.com -d /s1ws61/https-server.sun.com/acme.com/web-apps/hello /s1ws61/plugins/servlets/examples/web-apps/HelloWorld/HelloWorld.war

此公用程式可產生以下 server.xml 項目︰

<VS>
<WEBAPP uri="/hello"
dir="/s1ws61/https-server.sun.com/acme.com/webapps/hello"/>
</VS>

/s1ws61/https-server.sun.com/acme.com/web-apps/hello 目錄含有以下內容︰

colors
index.jsp
META-INF
WEB-INF/
  web.xml
  /classes/
    HelloWorldServlet.class
    HelloWorldServlet.java
    SnoopServlet.class
    SnoopServlet.java

在 wdeploy 指令中使用 -n

在 Sun ONE Web Server 6.1 中,部署或刪除 Web 應用程式之後,wdeploy 將動態重新配置伺服器,使伺服器載入或卸下已部署或刪除的 Web 應用程式。先前,您必須透過執行以下動作之一明確地重新配置伺服器,才能讓變更生效︰

現在將自動啟用成功的 wdeploy 指令,以便為新 Web 應用程式的請求提供服務,或停止為已刪除 Web 應用程式的請求提供服務。

-n 選項可防止 wdeploy 自動將 reconfigure 指令傳送至 Web Server。部署或取消部署多個 Web 應用程式時 (例如,在程序檔中),並且部署完最後一個 Web 應用程式之後,您只想重新配置伺服器一次,則請在指令中使用 -n 選項。

存取已部署的 Web 應用程式

部署完應用程式之後,您可以從瀏覽器中存取,如下所述︰

http://vs_urlhost[:vs_port]/uri_path/[index_page]

此 URL 各部分的涵義如下︰

vs_urlhost

虛擬伺服器的 urlhosts 值之一。

vs_port

(可選) 僅當虛擬伺服器使用非預設連接埠時才需要。

uri_path

您用來部署應用程式的同一個指令。這也是環境路徑。

index_page

(可選) 一般使用者打算首先存取的應用程式中的頁面。

例如︰

http://acme.com:80/hello/index.jsp

或︰

http://acme.com/hello/

傳回值

wdeploy 選項可傳回以下結束值︰

不在 Web 應用程式中部署 Servlet 和 JSP

您可以在 Web 應用程式之外部署 4.x Servlet 和 JSP,但只能在預設虛擬伺服器內。如需相關資訊,請參閱「Sun ONE Web Server 6.1 Programmer's Guide to Web Applications」。

配置 JVM 設定

您可以在 [Server Manager] 的 [Java] 標籤中為 Java 虛擬機器 (JVM) 配置屬性。

如需有關這些選項的更多資訊,請參閱「Sun ONE Web Server 6.1 Programmer's Guide to Web Applications」。

刪除版本檔案

[Server Manager] 的 [Java] 標籤上的 [Delete Version Files] 頁面可讓您刪除包含 JavaServer Pages 類別快取記憶體版本號碼和階段作業資料快取記憶體版本號碼的檔案。此頁面含有以下欄位︰

清除階段作業資料

刪除 SessionData 目錄 (如果伺服器使用 MMapSessionManager 階段作業管理員,則該目錄儲存永久性階段作業資訊)。

刪除 JSP ClassCache 檔案

刪除 ClassCache 目錄 (其可快取針對 JavaServer Pages (JSP) 的資訊)。此目錄的預設位置為︰

server_root/https-server_id/ClassCache/virtual_server_id/webapp_uri/

當伺服器提供 JSP 頁面時,它可建立與 JSP 關聯的 .java 檔案和 .class 檔案,並將它們儲存在 ClassCache 目錄下的 JSP 類別快取記憶體中。

伺服器使用兩個目錄來快取 JavaServer Pages (JSP) 和 Servlet 的資訊︰

每個快取記憶體都有一個 version 檔案,其包含伺服器用來決定快取記憶體中目錄與檔案結構的版本號碼。您可以透過僅僅刪除此版本檔案來清空快取記憶體。

在伺服器啟動時,如果它找不到版本檔案,便會刪除相應快取記憶體的目錄結構,並重新建立版本檔案。在伺服器下次提供 JSP 頁面時,它將重新建立 JSP 類別快取記憶體。若下次伺服器使用 MMappedSessionManager 階段作業管理員提供 JSP 頁面或 Servlet,它將重新建立階段作業資料快取記憶體。

如果伺服器的未來升級使用不同的快取記憶體格式,則伺服器將檢查版本檔案的號碼,如果版本號碼不正確,將清除快取記憶體。


安裝 CGI 程式

本節論述了安裝 CGI 程式的方式。描述了下列主題︰

另外,以下小節論述了安裝 Windows 特有的 CGI 程式的方式︰

CGI 簡介

可以用任意多種程式設計語言來定義共用閘道介面 (CGI) 程式。在 UNIX/Linux 機器上,可能會存在以 Bourne shell 或 Perl 程序檔撰寫的 CGI 程式。


備註

在 UNIX/Linux 下,執行著額外的 CGIStub 程序,其可供伺服器用來協助 CGI 執行。這些程序僅在初次存取 CGI 時建立。它們的數目依 CGI 載入伺服器的方式不同而不同。請勿終止這些 CGIStub 程序。伺服器停止時,它們將消失。


在 Windows 電腦上,您可能會找到以 C++ 或批次檔案撰寫的 CGI 程式。對於 Windows,以基於 Windows 的程式設計語言 (如 Visual Basic) 撰寫的 CGI 程式使用不同的機制與伺服器配合工作。它們稱為 Windows CGI 程式。請參閱安裝 Windows CGI 程式以取得關於 Windows CGI 的資訊。


備註

若要執行指令行公用程式,需要手動設定 Path 變數,以包含 server_root/bin/https/bin


無論程式設計語言為何,所有 CGI 程式都以相同方式接受和傳回資料。如需有關撰寫 CGI 程式的資訊,請參閱以下資訊來源︰

在伺服器機器上,可以用兩種方式儲存 CGI 程式︰

如果需要,您可以同時啟用這兩個選項。

任一種執行方式都有優點。如果您只想讓特定的使用者集增加 CGI 程式,請將此程式保留在指定目錄中,並限制存取這些目錄。如果您想讓可以增加 HTML 檔案的任何人都能增加 CGI 程式,則請使用替代的檔案類型。使用者可將他們的 CGI 檔案與 HTML 檔案保留在相同目錄中。

如果您選擇目錄選項,伺服器可嘗試將該目錄中的任何檔案解釋為 CGI 程式。同樣,如果您選擇檔案類型選項,伺服器可嘗試將副檔名為 .cgi.exe.bat 的任何檔案處理為 CGI 程式。如果某個檔案具有這些副檔名之一,但不是 CGI 程式,則當使用者嘗試存取該檔案時,會發生錯誤。


備註

依預設,CGI 程式的副檔名為 .cgi.exe.bat。不過,您可以透過修改 MIME 類型檔案來變更指示 CGI 程式的副檔名。您可以透過選擇 [Server Preferences] 標籤並按一下 [MIME Types] 連結來執行此動作。


指定 CGI 目錄

若要為虛擬伺服器類別指定一個僅用於 CGI 的目錄,請執行以下步驟︰

  1. 從 [Class Manager],選擇 [Programs] 標籤。
  2. [CGI Directory] 視窗將顯示。

  3. 在 [URL Prefix] 欄位中,鍵入要用於該目錄的 URL 前綴。即您鍵入的文字將在 URL 中顯示為 CGI 程式的目錄。
  4. 例如,如果您鍵入 cgi-bin 作為 URL 前綴,則這些 CGI 程式的所有 URL 將使用以下結構︰

    http://yourserver.domain.com/cgi-bin/program-name


    備註

    您指定的 URL 前綴可與上一步中指定的實際 CGI 目錄不同。


  5. 在 [CGI Directory] 文字欄位中,以絕對路徑形式鍵入目錄位置。請注意,此目錄無須位於文件根下。這是因為,在下一步中需要指定一個 URL 前綴。
  6. 按一下 [OK]。
  7. 儲存並套用變更。

若要移除現有 CGI 目錄,請在 [CGI Directory] 表單中按一下該目錄的 [Remove] 按鈕。若要變更現有目錄的 URL 前綴或 CGI 目錄,請按一下該目錄的 [Edit] 按鈕。

將 CGI 程式複製到您指定的目錄中。請記住,這些目錄中的任何檔案都將被作為 CGI 檔案進行處理,因此,請勿將 HTML 檔案放入 CGI 目錄中。

為每個軟體虛擬伺服器配置唯一的 CGI 屬性

若要為單一虛擬伺服器指定 CGI 屬性,請執行以下步驟︰

  1. 從 [Class Manager],選擇 [Manager Virtual Servers] 按鈕。
  2. 從 [Virtual Server Manager],選擇 [Settings] 連結。
  3. 在 [CGI User] 文字欄位中,鍵入要執行 CGI 程式的使用者名稱。
  4. 在 [CGI Group] 文字欄位中,鍵入要執行 CGI 程式的群組名稱。
  5. 在 [CGI Directory] 文字欄位中,鍵入 chdir 的目錄 (在 chroot 之後、但在執行開始之前)。
  6. (僅限於 UNIX) 在 [CGI Nice] 文字欄位中,鍵入可決定 CGI 程式相對於伺服器之優先權的增量。通常,以 nice 值 0 執行伺服器並且 nice 增量處於 0 (CGI 程式以和伺服器相同的優先權執行) 與 19 (CGI 程式以遠遠低於伺服器的優先權執行) 之間。雖然可以透過指定 nice 增量 -1 來提高 CGI 程式優先權,使其高於伺服器優先權,但是不建議這樣做。
  7. 在 [Chroot Directory] 文字欄位中,鍵入 chroot 的目錄 (在執行開始之前)。
  8. 按一下 [OK]。
  9. 儲存並套用變更。

將 CGI 指定為檔案類型

若要將 CGI 程式指定為檔案類型,請執行以下步驟︰

  1. 從 [Class Manager],選擇 [Programs] 標籤。
  2. 按一下 [CGI File Type] 頁面。
  3. [CGI as a File Type] 視窗將顯示。

  4. 從編輯挑選器中,選擇您要讓此變更套用至的資源。
  5. 按一下 [Activate CGI as a File Type] 下的 [Yes] 單選按鈕。
  6. 按一下 [OK]。
  7. 儲存並套用變更。

CGI 檔案必須具有副檔名 .bat.exe.cgi。伺服器將把任何具有這些副檔名的非 CGI 檔案作為 CGI 檔案處理,從而導致錯誤。

下載可執行檔

如果您將 .exe 作為 CGI 檔案類型,則無法將 .exe 檔案下載為可執行檔。

此問題的一個解決方案是壓縮您要讓使用者下載的可執行檔,以便副檔名不是 .exe。此解決方案還可以縮短下載時間。

另一個可能的解決方案是從 magnus-internal/cgi 類型中移除副檔名 .exe,然後將其增加至 application/octet-stream 類型 (一般可下載檔案的 MIME 類型)。您可以透過在 [Server Manager] 中選擇 [Server Preferences] 標籤並按一下 [MIME Types] 連結來執行此動作。但是,此方法的缺點為進行此變更後,將無法將 .exe 檔案用作 CGI 程式。

另一個解決方案是編輯伺服器的 obj.conf 檔案,以設定下載目錄 (該目錄中的任何檔案都可自動下載)。伺服器的其餘部分不受影響。如需更多資訊,請參閱:

http://developer.netscape.com/docs/manuals/enterprise/admnunix/programs.htm


安裝 Windows CGI 程式

本節論述了安裝 Windows CGI 程式的方式。本節包含以下主題:

Windows CGI 程式簡介

Windows CGI 程式的處理方式與其他 CGI 程式幾乎相同。您可以指定僅包含 Windows CGI 程式的目錄,或指定所有 Windows CGI 程式都使用同一個副檔名。請注意,與其他 CGI 程式一樣,您可以在需要時同時使用這兩種方法。例如,您可以為所有 Windows CGI 程式建立一個目錄,並指定 Windows CGI 副檔名。

雖然 Windows CGI 程式的行為與一般 CGI 程式相似,但伺服器處理實際程式的方式仍略有不同。因此,您需要為 Windows CGI 程式指定不同的目錄。如果您啟用 Windows CGI 檔案類型,它將使用副檔名 .wcg

Sun ONE Web Server 支援 Windows CGI 1.3a 非正式規格,包含下列區別︰

指定 Windows CGI 目錄

若要指定僅用於 Windows CGI 的目錄,請︰

  1. 從 [Class Manager],選擇 [Programs] 標籤。
  2. 按一下 [WinCGI Directory] 連結。
  3. [WinCGI Directory] 視窗將顯示。

  4. 在 [URL Prefix] 文字欄位中,輸入要用於該目錄的 URL 前綴。
  5. 即您鍵入的文字將在 URL 中顯示為 Windows CGI 程式的目錄。例如,如果您鍵入 wcgi-programs 作為 URL 前綴,則這些 Windows CGI 程式的所有 URL 將使用以下結構︰

    http://yourserver.domain.com/wcgi-programs/program-name


    備註

    您指定的 URL 前綴可與步驟 5中指定的實際 Windows CGI 目錄不同。


  6. 選擇您是否要啟用程序檔追蹤。
  7. 按一下 [Enable Script Tracing?] 下的 [Yes] 或 [No] 單選按鈕。

    CGI 參數可透過檔案從伺服器傳送至 Windows CGI 程式,在 Windows CGI 程式完成執行後,伺服器通常會刪除這些檔案。如果您啟用程序檔追蹤功能,這些檔案將保留在 /temp 目錄中或環境變數 TMP 和 TEMP 指向的任何位置。並且,若啟用了程序檔追蹤功能,Windows CGI 程式引發的任何視窗都會顯示。

  8. 在 [WinCGI Directory] 欄位中,以絕對路徑形式輸入目錄位置。
  9. 請注意,此目錄無須位於文件根下。這就是在步驟 3中需要指定一個 URL 前綴的原因。

  10. 按一下 [OK]。
  11. 儲存並套用變更。

若要移除現有 Windows CGI 目錄,請在 [Windows CGI Directory] 表單中按一下該目錄的 [Remove] 按鈕。若要變更現有目錄的 URL 前綴或 Windows CGI 目錄,請按一下該目錄的 [Edit] 按鈕。

將 Windows CGI 程式複製到您指定的目錄中。請記住,這些目錄中的任何檔案都會被作為 Windows CGI 檔案處理。

將 Windows CGI 指定為檔案類型

若要為 Windows CGI 檔案指定副檔名,請執行以下步驟︰

  1. 從 [Server Manager],選擇 [Server Preferences] 標籤。
  2. 按一下 [MIME Types] 連結。
  3. 螢幕上將顯示 [Global MIME Types] 視窗。如需有關全域 MIME 類型的更多資訊,請參閱「選擇 MIME 類型」。

  4. 藉由下列設定增加新的 MIME 類型︰
    • 類型︰type
    • 內容類型︰magnus-internal/wincgi
    • 檔案後綴︰輸入您要讓伺服器與 Windows CGI 關聯的檔案後綴。如果啟動了 CGI、WinCGI 和 shell CGI 檔案類型,則必須為每種類型的 CGI 指定不同後綴。例如,您無法將後綴 .exe 同時用於 CGI 程式和 shell CGI 程式。如果需要,可以編輯頁面上的其他 MIME 類型欄位,以便使後綴保持唯一。
  5. 按一下 [New Type] 按鈕。
  6. 儲存並套用變更。


為 Windows 安裝 Shell CGI 程式

本節論述了為 Windows 安裝 Shell CGI 程式的方式。本節包含以下主題:

Windows 的 Shell CGI 程式簡介

Shell CGI 是一種伺服器配置,它可讓您使用 Windows 中設定的檔案關聯來執行 CGI 應用程式。

例如,如果伺服器取得稱為 hello.pl 的 shell CGI 檔案請求,它將透過與 .pl 副檔名關聯的程式,使用 Windows 檔案關聯來執行該檔案。如果 .pl 副檔名與程式 C:\bin\perl.exe 相關聯,伺服器將嘗試執行 hello.pl 檔案,如下所述︰

配置 shell CGI 的最簡便方式是在伺服器文件根下建立一個僅包含 shell CGI 檔案的目錄。但是,您也可以透過從 Sun ONE Web Server 編輯 MIME 類型來配置伺服器,以便將特定副檔名與 shell CGI 關聯起來。


備註

如需有關設定 Windows 副檔名的資訊,請參閱 Windows 文件。


指定 Shell CGI 目錄 (Windows)

若要為 shell CGI 檔案建立目錄,請執行以下步驟︰

  1. 在您的電腦上建立 shell 目錄。此目錄無須是文件根目錄的子目錄。
  2. 從 [Server Manager],選擇 [Class Manager] 連結。
  3. 然後,選擇 [Class Manager]。
  4. 將亮顯 [shell CGI Directory] 連結,並且顯示 CGI 視窗。

  5. 在 [URL Prefix] 欄位中,輸入您要與 shell CGI 目錄關聯的 URL 前綴。
  6. 例如,假設您將所有 shell CGI 檔案儲存在稱為
    C:\docs\programs\cgi\shell-cgi 的目錄中,但您想讓使用者看到以下形式的目錄︰http://www.yourserver.com/shell/。在此情況下,可以鍵入 shell 作為 URL 前綴。

  7. 在 [Shell CGI Directory] 欄位中,輸入您所建立目錄的絕對路徑。

  8. 警告

    伺服器必須擁有該目錄的讀取和執行許可權。對於 Windows 而言,伺服器用以執行的使用者帳號 (例如,LocalSystem) 必須有權讀取和執行 shell CGI 目錄中的程式。


  9. 請確定 shell CGI 目錄中的任何檔案也在 Windows 內設定了檔案關聯。如果伺服器嘗試執行一個沒有副檔名關聯的檔案,它將會傳回錯誤。

將 Shell CGI 指定為檔案類型 (Windows)

您可以使用 Sun ONE Web Server 的 [MIME Types] 視窗,將副檔名與 shell CGI 功能關聯起來。這不同於在 Windows 內建立關聯。

若要在伺服器內將副檔名與 shell CGI 功能關聯起來,例如,您可以為副檔名為 .pl 的檔案建立關聯。當伺服器取得具有該副檔名的檔案請求時,它會呼叫 Windows 中與該副檔名關聯的可執行檔,從而將此檔案處理為 shell CGI 檔案。

若要將副檔名關聯為 shell CGI 檔案,請執行以下步驟︰

  1. 在您的電腦上建立 shell 目錄。此目錄無須是文件根目錄的子目錄。
  2. 從 [Server Manager],選擇 [Server Preferences]。
  3. 按一下 [MIME Types] 連結。
  4. 螢幕上將顯示 [Global MIME Types] 視窗。如需有關全域 MIME 類型的更多資訊,請參閱「選擇 MIME 類型」。

  5. 藉由下列設定增加新的 MIME 類型︰
    • 類型︰type
    • 內容類型︰magnus-internal/shellcgi
    • 檔案後綴︰輸入您要讓伺服器與 shell CGI 關聯的檔案後綴。如果啟動了 CGI、WinCGI 和 shell CGI 檔案類型,則必須為每種類型的 CGI 指定不同後綴。例如,您無法將後綴 .exe 同時用於 CGI 程式和 Shell CGI 程式。如果需要,可以編輯頁面上的其他 MIME 類型欄位,以便使後綴保持唯一。
  6. 按一下 [New Type] 按鈕。
  7. 儲存並套用變更。


使用查詢處理程式


備註

使用查詢處理程式已過時。雖然 Sun ONE Web Server 和 Netscape Navigator 用戶端仍然支援它,但很少使用。人們通常使用 HTML 頁面中的表單來提交查詢。


您可以指定一個預設查詢處理程式 CGI 程式。查詢處理程式可處理經由 HTML 檔案中的 ISINDEX 標籤傳送給它的文字。

ISINDEX 與表單文字欄位類似,因為它可以在可接受鍵入輸入的 HTML 頁面中建立文字欄位。但是,與表單文字欄位中的資訊不同,使用者按下 Return 鍵後,將立即提交 ISINDEX 方塊中的資訊。指定預設的查詢處理程式時,您可告知伺服器將輸入導向至哪個程式。如需有關 ISINDEX 標籤的深入論述,請參閱 HTML 參照手冊。

若要設定查詢處理程式,請執行以下步驟︰

  1. 從 [Class Manager],選擇 [Programs] 標籤。
  2. 按一下 [Query Handler] 連結。
  3. [Query Handler] 視窗將顯示。

  4. 使用編輯挑選器來選取您要藉由預設查詢處理程式設定的資源。
  5. 如果您選擇一個目錄,則指定的查詢處理程式僅在伺服器收到針對此目錄的 URL 或此目錄中的任何檔案時才會執行。

  6. 在 [Default Query Handler] 欄位中,輸入要作為所選資源預設程式的 CGI 程式的完整路徑。
  7. 按一下 [OK]。
  8. 儲存並套用變更。


上一個      目錄      索引      下一個     


Copyright 2004 Sun Microsystems, Inc. 版權所有。