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

IntraWeb and Apache

答題得分者是:sos_admin
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 14:41:40 IP:218.17.xxx.xxx 未訂閱
D7, IntraWeb v6.0.14 可以直接 New 一个Project for Apache2.X Project里的New是这样的: uses IWInitApacheTwo, ApacheTwoApp, ServerController in 'ServerController.pas' {IWServerController: TIWServerControllerBase}, Unit1 in 'Unit1.pas' {IWForm1: TIWFormModuleBase}; ------------------ 看来的确是支持Apache2的。 然后拖一个 TIWButton 到页面上,然后 Build , 直接就生成了一个 .so 的文件。 把这个文件放到Apache下,Apache的版本是2.0.47 httpd.conf 里这样写: LoadModule IWDSO2Project_module cgi-bin\testApache.so SetHandler IWDSO2Project_handler 然后,重新启动Apache 2的时候,提示: module "testApache.so" is not compatible with this version of Apache. 那么,是IntraWeb的这个版本并不支持Apache 2.0.47?
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-15 16:36:05 IP:61.155.xxx.xxx 未訂閱
[转贴] 作者:Xalion 使Delphi 6.0 支持 Apache 2.0 我们都知道,Bolrand 从Delphi 6.0 以后开始支持Apache web 服务器,而Apache 以其出色的性能及安全性是很多人青睐。Apache 现在最新的版本为2.0.43。虽然Borland 今年新出的Delphi 7 开始支持Apache 2.0 版本,但是Delphi 6 只支持Apache 1.x 版本,而Delphi 7 发行的版本也只支持到Apache 2.0.39 版,对Apache 2.0.40 以后的版本无法支持,本文给出了让Delphi 6和Delphi7 支持最新的Apache 2.0.43 的方法。 首先让我们对Delphi 7 进行改造,Delphi 7.0 不支持 Apache 2.0.40 以后的版本的原因是Apache 2.0.40 以后版本修改了接口文件,因此要对Delphi 7.0 对应的接口文件进行修改, 具体的修改文件为: HTTPD2.pas,修改内容为: 打开 HTTPD2.pas (在c:\ Program Files\borland\delphi7\source\ Internet下) 修改一下常数: · MODULE_MAGIC_NUMBER_MAJOR = 20020628; { Apache 2.0.40 } · 如果是Apache 2.0.43 的话,应该修改为 · MODULE_MAGIC_NUMBER_MAJOR = 20020903; { Apache 2.0.43 } MODULE_MAGIC_NUMBER_MINOR = 0; (* 0...n *) 在结构 conn_rec 的定义里加入以下: · ap_conn_keepalive_e = (AP_CONN_UNKNOWN, AP_CONN_CLOSE, AP_CONN_KEEPALIVE); 在结构 conn_rec 的定义里替换: · (** Are we still talking? *) · flags: Cardinal; · { The following are in the flags bitset: · unsigned aborted:1; · · (** Are we going to keep the connection alive for another request? · * -1 fatal error, 0 undecided, 1 yes *) · signed int keepalive:2; · · (** have we done double-reverse DNS? -1 yes/failure, 0 not yet, · * 1 yes/success *) · signed int double_reverse:2; · } 为: (** Are we still talking? *) flags1: Cardinal; { The following are in the flags bitset: unsigned aborted:1; } (** Are we going to keep the connection alive for another request? * @see ap_conn_keepalive_e *) keepalive: ap_conn_keepalive_e; flags2: Cardinal; { The following are in the flags bitset: (** have we done double-reverse DNS? -1 yes/failure, 0 not yet, * 1 yes/success *) signed int double_reverse:2; } 好了,保存这个文件,然后拷入c:\ Program Files\borland\delphi7\lib 目录。 重新编译你的程序,加入相应的Apache 的配置(具体配置方法请参照我以前的文章),启动Apache,打开浏览器。 ok! 没问题了吧!好。 现在我们看看怎么在Delphi 6 里面实现Apache 2.0 的支持,实际上很简单,只要把Delphi 7 里面相应的文件拷入 Delphi 6 的LIB 目录就可以了,具体为以下三个文件: ApacheTwoHTTP.pas, ApacheTwoApp.pas, HTTPD2.pas,然后打开你的现有的Apache 1.x 的程序,修改project 上面的 use 部分,把 Apacheapp改为Apachetwoapp,再把下面的ContentType 改为handler,好了,所有手术完成,现在你编译出来的就是支持Apache 2.0.43 的动态共享模块了。 注意:以上的修改为非官方修改,不能保证不出问题,请大家慎重处理。 为了方便没有Delphi 7.0 的网友,我把修改过的三个文件放在网站上了,大家可以下载:http://www.51delphi.com/file/apache2d.rar。 谢谢大家的阅读!
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-15 16:40:58 IP:218.17.xxx.xxx 未訂閱
谢谢!!
系統時間:2024-05-07 0:54:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!