我用delphi+intraweb做了个Apache的so.
但是发布不了.就是Apache server根本启动不起来我的操作步骤:
1.将Project1.so拷贝到modules目录下
2.我的在httpd.conf中添加LoadModule Test_module modules/Project1.so

解决方案 »

  1.   

    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內容如下:
    <Location /Test>
      SetHandler Project1-handler
    </Location>
    關於Location你可以設定任意的名稱,需要注意的是SetHandler要設定的處理控制碼必須是Project1,而且是嚴格區分大小寫的。5、重新啟動Apache服務。6、打開流覽器,鍵入http://localhost:8080/Test,Test要保證與Location設定的內容相匹配,則應該可以看得到運行結果。