2016/04/12

IntraWeb + Apache -- 開啟 ISAPI 支援功能

最近又沉迷 IntraWeb 的開發,在 IIS 實機一直撞牆,於是心一橫,決定使用 Apache 上試試看。

我使用的是 XAMPP Lite 1.7.2 版,在建立環境上是很簡單的。

不論是 XAMPP 是哪一個版本,搭配的 Apache 都是 2.2 版,所以設定上應該都大同小異。

一、打開 httpd.conf

找到「LoadModule isapi_module modules/mod_isapi.so」並解開註解,此時 httpd.conf 應該會如下圖所示:

並在 httpd.conf 的最底下,加入以下的內容:

<IfModule mod_alias.c>
    # This allows ISAPI dll's and CGI exe's (both are required for regular aliases)
    AddHandler isapi-isa .dll
    AddHandler cgi-script .exe

    Alias /isapi "c:\xampplite\htdocs\isapi"

    <Directory "c:\xampplite\htdocs\isapi;
        Options  ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>
    

設定好應該如下所示:


接下來就是測試成果了:
IntraWeb可以在Apache下正常工作!


實際上 Delphi 所開發的 ISAPI 應該都可以在這個環境上執行,終於不用再依賴龐大的 IIS 囉!


See Also:

5 則留言:

  1. 大大你好,ISAPI的程式是個DLL檔,被啟動後,就會常駐在記憶體裡,請問,新版程式如何更新?關閉IIS?有沒有其他方案?

    回覆刪除
    回覆
    1. 我都是利用 iisreset 重啟 IIS 然後更新 ISAPI.dll

      目前我還不知道其它的做法.

      刪除
    2. 不知道將舊的dll改名字再把新版dll放上去,這個方式是否可行。

      刪除
    3. 舊的 dll 也是要等 IIS 回收該 instance 後才能更名,怎麼更新真的是 ISAPI 的大問題

      刪除
  2. 更名我有試,不可行, 感謝大大們的回答.看起來,應該是沒有較好的解決方法了. 另外, 再請教另一個問題, 用Delphi寫webservice,也是編成DLL,是不是也有相同的問題?

    回覆刪除