線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1648
推到 Plurk!
推到 Facebook!

IntraWeb開發學習筆記

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-10 22:55:39 IP:220.143.xxx.xxx 未訂閱
http://www.51delphi.com/wz/19.html
IntraWeb開發學習筆記(五)    最近有些朋友來信問到在Apache環境下開發IntraWeb應用程式的問題,因為涉及的內容比較多,每次回復起來特別的麻煩,所以,在這一期學習筆記裏面,我將為大家著重介紹一下在Apache環境下的IntraWeb的開發與發佈問題。
 
21、IntraWeb的Apache開發問題 
首先要對Delphi7進行修改,使之適應於Apache.v.2.0.45。Apache的最新版本可在這裏下載。關於Apache的安裝就不多說了,如果機器已經配置了IIS服務,可更改WEB服務埠為8080。安裝完成如果能順利啟動Apache服務的話,在流覽器視窗鍵入http://localhost:8080/index.html.en,如出現說明文件,則說明Apache已經順利啟動了。    Apache是一個非常優秀的WEB伺服器軟體,在全球的裝機量據統計占到50%以上,其安全性、可靠性、靈活性及速度均有不凡的表現。Delphi7對Apache提供了完備的支援,不過由於最新版本的Apache對介面進行了修改,所以,需要對Delphi的httpd2.pas檔進行一點修改才成。這個具體的修改過程,Xalion已在其文章《使Delphi 6.0 支持 Apache 2.0》進行了詳細的說明,並且已經提供了修改好的檔下載,點擊這裏下載該修改包,將該包解壓到Delphi7的Lib目錄下,並刪除掉這個三個檔的.dcu,編譯你的程式,則會對這三個檔重新編譯的。    1、新建IntraWeb應用,並選擇其中的Apache 2.x Shared Module,則Delphi7會為你自動生成一個框架檔:    library Project1; 
uses
  IWInitApacheTwo,
  ApacheTwoApp,
  ServerController in 'ServerController.pas' {IWServerController:TIWServerControllerBase},
  Unit1 in 'Unit1.pas' {IWForm1: TIWFormModuleBase};    {$E so}    {$R *.RES}    exports
  apache_module name 'IWDSO2Project_module';    begin
  IWRun;
end.    {$E so}編譯選項是生成*.so檔,默認的情況下,生成的檔案名為IWDSO2Project_module.so,你也可以根據需要對這個檔案名進行任意的更改。比如,我們將其改為Test_module。    2、選擇IWForm1,放入一個IWLabel,並更改其文本屬性為“Apache2演示”。按下Ctrl F9編譯,在當前目錄下會產生一個Project1.so文件。    3、打開Apache安裝目錄下conf\httpd.conf配置檔,找到LoadModule區段,加入如下的語句:    LoadModule Test_module "D:/Borland/Delphi7/Projects/Project1.so"    LoadModule分兩部分,一是你設定的export的名稱,在這裏是Test_Module,二是生成的物理檔,亦即工程檔案名+".so",可以使用物理路徑,如果不想使用物理路徑,可以Project1.so檔拷貝到Apache安裝目錄下的modules下,並修改其為modules/Project1.so。    需要注意的問題有幾點:一是大小寫,二是要將LoadModule語句加入到LoadModule區段的頂部,三是路徑必須是反斜線。    4、另外要添加Location內容如下:

  SetHandler Project1-handler

關於Location你可以設定任意的名稱,需要注意的是SetHandler要設定的處理控制碼必須是Project1,而且是嚴格區分大小寫的。    5、重新啟動Apache服務。    6、打開流覽器,鍵入http://localhost:8080/Test,Test要保證與Location設定的內容相匹配,則應該可以看得到運行結果。
22、IntraWeb.v.5.1版本的一些新的變數。
這些變數大多集中在WebApplication物件中,附上一段小代碼,編譯後,你也可以在你的機器上試試(實在沒什麼可寫的了,有湊字之嫌,大家批評)。    procedure TIWForm1.IWButton1Click(Sender: TObject);
var
 s:String;
begin 
s:='' 
  '' 
  ' ' 
  ' ' 
  '' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  ' ' 
  '' 
  ' ' 
  ' ' 
  ''  
  '' 
  ' ' 
  ' ' 
  '' 
  '' 
  ' ' 
  ' ' 
  '' 
  '' 
  ' ' 
  ' ' 
  '' 
  '' 
  ' ' 
  ' ' 
  '' 
  '' 
  ' ' 
  ' ' 
  '' 
  '
Accept' WebApplication.Request.Accept '
Authorization' WebApplication.Request.Authorization '
CacheControl' WebApplication.Request.CacheControl '
Connection' WebApplication.Request.Connection '
Content' WebApplication.Request.Content '
ContentEncoding' WebApplication.Request.ContentEncoding '
ContentType' WebApplication.Request.ContentType '
From' WebApplication.Request.From '
Host' WebApplication.Request.Host '
DerivedFrom' WebApplication.Request.DerivedFrom '
Request.InternalPathInfo' WebApplication.Request.InternalPathInfo '
Request.InternalScriptName' WebApplication.Request.InternalScriptName '
Request.PathInfo' WebApplication.Request.PathInfo '
Request.PathTranslated' WebApplication.Request.PathTranslated '
Request.ProtocolVersion' WebApplication.Request.ProtocolVersion '
Request.Referer' WebApplication.Request.Referer '
Request.RemoteAddr' WebApplication.Request.RemoteAddr '
Request.RemoteHost' WebApplication.Request.RemoteHost '
Request.URL' WebApplication.Request.URL '
Request.UserAgent' WebApplication.Request.UserAgent '
Request.TranslateURI("http://www.sina.com.cn/")' WebApplication.Request.TranslateURI('http://www.sina.com.cn/') '
Request.ScriptName' WebApplication.Request.ScriptName '
Request.Title' WebApplication.Request.Title '
系統路徑' WebApplication.ApplicationPath '
WebApplication.AppID' WebApplication.AppID '
WebApplication.SessionTimeStamp' WebApplication.SessionTimeStamp '
WebApplication.UserCacheDir' WebApplication.UserCacheDir '
WebApplication.IP' WebApplication.IP '
WebApplication.AppURLBase' WebApplication.AppURLBase '
'; IWText1.Lines.add(s); end; 程式當中用到了一個CSS表,你可以打開表單的ExtraHeader屬性,輸入如下的CSS定義: <style type="text/css"> <!-- td { font-family: "Tahoma", "宋體"; font-size: 12px; } .SubTitle { font-weight: bold; color: #FF0000; background-color: #FFFF99; } --> </style> 編譯成功後,點擊按鈕,會啟動這段代碼,為你取出系統變數,可以在IIS、Apache、StandAlone、Service等幾種不同的模式下運行,看一看結果,比較一下,也許會有一些收穫的。我想。
系統時間:2024-06-02 18:48:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!