Kylix开发Linux的Web应用(Apache Module)出错:找不到文件 libhttpd.so ,请问哪位高手能解决此难题??急!!! (200分)

  • 主题发起人 主题发起人 drroc
  • 开始时间 开始时间
D

drroc

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Kylix开发Linux下的Web应用(Apache Module),得到一libtest.so
在Apache加载后,重启Apache报错:没找到libhttpd.so文件。我翻遍了整个硬盘都找不到
那文件。
我用的Apache是TLS6.5自带的,所以找来最新源码包,重装Apache后,还是没能
发现libhttpd.so
查看kylix的Src发现httpd单元使用了libhttpd.so,
libhttpd.so的作用等同win32下的ApacheCore.dll
请问哪位高手有此文件,help me!!!!!!!!!!!!!!
那里得到,请告诉我,Email:drroc@21cn.com
QQ:89984173
开发Apache Module过程如下:
随着Internet 的飞速发展,动态网页的开发方法五花八门,有ASP,JSP,PHP,CGI
等等,其中web server主要集中在IIS,Apache等上,MS 的IIS 以其强大的功能吸引了
很多的开发者,ASP 是IIS上用的最多的网页开发方法,可是ASP 对开发非MS 产品的
数据库程序时,简直就是一场恶梦,同时IIS 的漏洞越来越多,系统管理员每天都得
注意最新的漏洞补丁,否则不是被黑客攻翻就是被病毒感染,最近的uecode,nimda
就是例子。
具有速度快,安全性好,跨平台而且是完全免费的apache http server吸引了越来越
多的开发者,而borland 新推出的delphi6 开始支持Apache,功能强大的delphi 和
快速安全的apache 是一对非常好的动态网站开发方式,而且delphi6 的工程源码几乎
不用动就可以用kylix 编译,并在lunix 下的apache 上运行,厉害吧,动手吧,让
我们开始做一个简单的网页吧!
1.环境设置
先从http://www.apache.org 上下载apache http server for windows 版,
最新的版本是1.3.22,然后安装到服务器上,调试阶段最好现在本机上安装,
反正apache 支持win9x:),安装完毕后,在IE里面输入http://localhost,
会正常显示apache 默认页,说明安装成功!
2.现在打开delphi6 ,点菜单file-new-other,在new页里面选web server
aplication,出现下面图片选择Apache shared Module(DLL),系统就会建立一个空的工程.
把工程另存为test,unit1另存为wmp.pas.delphi 就会生成以下的工程代码
library test;
uses
WebBroker,
ApacheApp,
wmp in 'wmp.pas' {WebModule1: TWebModule};
{$R *.res}
exports
apache_module name 'Project1_module';
begin
Application.Initialize;
Application.CreateForm(TWebModule1, WebModule1);
Application.Run;
end.
把'Project1_module' 改为'test_module'
然后在applicaiotn.Initilize 后面加入一下代码(很重要),
ModuleName:='test_module';
ContentType:= 'test-handler';
以上是让apache 加载dll是用的,如果与apache 的配置不一样的话,是无法运行的.
然后设置WebModule1的name 为wm(这仅仅是为了以后编程简单^_^),
打开wm的actions,出现一个editing wm.actions窗口,点击add new,出现一个新的
item,
设置其name 为index,pathinfo 为/index,default 为true,
然后到events 页双击onaction
code editor出现一下代码:
procedure Twm.wmindexAction(Sender: TObject;
Request: TWebRequest;
Response: TWebResponse;
var Handled: Boolean);
begin

end;

加入一下代码
procedure Twm.wmindexAction(Sender: TObject;
Request: TWebRequest;
Response: TWebResponse;
var Handled: Boolean);
const
chweek:array [1..7]of string[2]=('日','一','二','三','四','五','六');
var
s:string;
yy,mm,dd:word;
begin
decodedate(date,yy,mm,dd);
s:='今天是'+inttostr(yy)+'年'+inttostr(mm)+'月'+inttostr(dd)+'日';
s:=s+' 星期'+chweek[dayofweek(date)];
s:=s+'nt> 欢迎你访问delphi窑洞!';
Response.content := s;
end;

end;

OK! 编译,如果按F9 会出现错误!(因为它是个DLL呀!)
把编译出来的test.dll 拷到apache 目录下的modules目录
然后用文本编辑器打开apache 目录下的conf目录里面的httpd.conf
最上面加入一下文本
LoadModule test_module "C:/Program Files/Apache
Group/Apache/modules/test.dll"
<Location /test>
SetHandler test-Handler
cation>
如果httpd.conf 里面的ClearModuleList 前面没有# 的话,一定要加上!!!!
现在先stop apache server,然后再start apache server
在IE 里面输入http://localhost/test
怎样出来了吗?
浏览器里面是不是显示
今天是2001年10月30日 星期二 欢迎你访问delphi窑洞!
如果你看到这样的话,那么你成功了!
还算简单吧!
 
?我记得昨天我回了一样的帖子,不知道是不是你的
好像是要重新编译apache,按动态连接方式编吧。
 
TO:Chenlili
你做过成功的例子吗?
 
apache的通用性还是很好的,代码质量还是很高的。
ibm rs600上面的aix4.3都能跑,更何况linux
 
我是说用kylix开发Apache的DSO,不知哪里有成功的例子,及实现方法,快一个月了,还是没进展
 
哎,编译方式不对啦,不要用Turbo linux带的src.rpm,
先去www.apache.org下载个1.3.x的tar.gz包
然后tar 开 tar xzvf apache-1.3.x.tar.gz
然后./configure /
"--with-layout=Apache" /
"--enable-module=so" /
"--enable-rule=SHARED_CORE" /
然后make
在src目录下你要的东西就有了
 
我就是这样做的,libhttpd.so已经有了,且用kylix编译ApacheDSO时也不会出现警告。
可用apache加载时就是失败,且没有出错信息,提示Apache已启动,而事实上Apache并
没有启动。没Apache进程。Apache是从Apache.org下当的源码包。编译完全正确。
我不知道是不是还要设置环境变量什么的。
Apache我编译了不下20次。
perl,php,jsp的mod支持非常正常。
我在公司负责系统集成和架设。安装apache,php,perl,jsp。
我是想用kylix开发一个webmail.以前用php写的webmail安全性较差。
可就是kylix的DSO不能成功,急啊。
 
那你没有想过用其他来做webmail,例如perl, cgi-bin或者其他?
 
为什么不编译成CGI呢?我写的程序都在使用了。
Linux7.2+mysql+apache+soap
 
我用的apache版本是1.3.22
 
问题已解决,谢谢各位,第一个DSO项目进入验收阶段,发分。
 
drroc,既然已经成功,就把经验贴出来共享吧,我现在在做win下的,不久也要转到linux做
多帮忙了,先谢了
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部