📄 intraweb开发学习笔记(五).htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0034)http://www.51delphi.com/wz/19.html -->
<HTML><HEAD><TITLE>IntraWeb开发学习笔记(五)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
FONT-SIZE: 9pt; FONT-FAMILY: "Tahoma", "宋体"
}
.Title {
FONT-WEIGHT: bold; FONT-SIZE: 12pt; TEXT-INDENT: 0pt; LINE-HEIGHT: 14pt; FONT-FAMILY: "Tahoma", "宋体"; BACKGROUND-COLOR: #ccccff; TEXT-ALIGN: center
}
TD {
FONT-SIZE: 10pt; TEXT-INDENT: 20pt; LINE-HEIGHT: 14pt; FONT-FAMILY: "Tahoma", "宋体"
}
.prog {
FONT-SIZE: 9pt; TEXT-INDENT: 0pt; FONT-FAMILY: "Courier New", "Courier"; BACKGROUND-COLOR: #ffffff
}
.SubTitle {
FONT-SIZE: 10pt; TEXT-INDENT: 0pt; LINE-HEIGHT: 14pt; FONT-FAMILY: "Tahoma", "宋体"; BACKGROUND-COLOR: #cc99ff
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=1 width="80%" align=center bgColor=#0000ff border=0>
<TBODY>
<TR>
<TD class=Title bgColor=#ffffff>
<P>IntraWeb开发学习笔记(五)</P>
<P align=right><FONT size=-1>作者:bnPYSse(原创)</FONT></P></TD></TR>
<TR>
<TD bgColor=#ffffff>
<P>最近有些朋友来信问到在Apache环境下开发IntraWeb应用程序的问题,因为涉及的内容比较多,每次回复起来特别的麻烦,所以,在这一期学习笔记里面,我将为大家着重介绍一下在Apache环境下的IntraWeb的开发与发布问题。</P></TD></TR>
<TR>
<TD class=SubTitle bgColor=#ffffff>21、IntraWeb的Apache开发问题</TD></TR>
<TR>
<TD bgColor=#ffffff>
<P>首先要对Delphi7进行修改,使之适应于Apache.v.2.0.45。Apache的最新版本可在<A
href="http://nagoya.apache.org/mirror/httpd/binaries/win32/apache_2.0.45-win32-x86-no_ssl.exe">这里</A>下载。关于Apache的安装就不多说了,如果机器已经配置了IIS服务,可更改WEB服务端口为8080。安装完成如果能顺利启动Apache服务的话,在浏览器窗口键入http://localhost:8080/index.html.en,如出现说明文件,则说明Apache已经顺利启动了。</P>
<P>Apache是一个非常优秀的WEB服务器软件,在全球的装机量据统计占到50%以上,其安全性、可靠性、灵活性及速度均有不凡的表现。Delphi7对Apache提供了完备的支持,不过由于最新版本的Apache对接口进行了修改,所以,需要对Delphi的<FONT
face="Courier New, Courier, mono">httpd2.pas</FONT>文件进行一点修改才成。这个具体的修改过程,Xalion已在其文章<A
href="http://www.51delphi.com/wz/11.html">《使Delphi 6.0 支持 Apache
2.0》</A>进行了详细的说明,并且已经提供了修改好的文件下载,点击<A
href="http://www.51delphi.com/file/apache2d.rar">这里</A>下载该修改包,将该包解压到Delphi7的Lib目录下,并删除掉这个三个文件的.dcu,编译你的程序,则会对这三个文件重新编译的。</P>
<P>1、新建IntraWeb应用,并选择其中的Apache 2.x Shared
Module,则Delphi7会为你自动生成一个框架文件:</P>
<TABLE cellSpacing=1 width="90%" align=center bgColor=#cccccc border=0>
<TBODY>
<TR>
<TD class=prog><STRONG>library</STRONG> Project1;
<P><STRONG>uses</STRONG><BR> IWInitApacheTwo,<BR> ApacheTwoApp,<BR> ServerController
<STRONG>in</STRONG> 'ServerController.pas'
{IWServerController:TIWServerControllerBase},<BR> Unit1
<STRONG>in</STRONG> 'Unit1.pas' {IWForm1: TIWFormModuleBase};</P>
<P><FONT color=#00cc00>{$E so}</FONT></P>
<P><FONT color=#00cc00>{$R *.RES}</FONT></P>
<P><STRONG>exports</STRONG><BR> apache_module <STRONG>name</STRONG>
'IWDSO2Project_module';</P>
<P><STRONG>begin</STRONG><BR> IWRun;<BR><STRONG>end.</STRONG><BR></P></TD></TR></TBODY></TABLE>
<P><FONT face="Courier New, Courier, mono" color=#00cc00>{$E
so}</FONT>编译选项是生成<FONT
face="Courier New, Courier, mono">*.so文件,</FONT>默认的情况下,生成的文件名为<FONT
face="Courier New, Courier, mono">IWDSO2Project_module.so</FONT>,你也可以根据需要对这个文件名进行任意的更改。比如,我们将其改为<FONT
face="Courier New, Courier, mono">Test_module</FONT>。</P>
<P>2、选择<FONT face="Courier New, Courier, mono">IWForm1,</FONT>放入一个<FONT
face="Courier New, Courier, mono">IWLabel</FONT>,并更改其文本属性为“Apache2演示”。按下Ctrl+F9编译,在当前目录下会产生一个<FONT
face="Courier New, Courier, mono">Project1.so</FONT>文件。</P>
<P>3、打开Apache安装目录下conf\httpd.conf配置文件,找到LoadModule区段,加入如下的语句:</P>
<P><FONT face="Courier New, Courier, mono">LoadModule Test_module
"D:/Borland/Delphi7/Projects/Project1.so"</FONT></P>
<P><FONT
face="Courier New, Courier, mono">LoadModule</FONT>分两部分,一是你设定的<FONT
face="Courier New, Courier, mono"><STRONG>export</STRONG></FONT>的名称,在这里是<FONT
face="Courier New, Courier, mono">Test_Module</FONT>,二是生成的物理文件,亦即工程文件名+"<FONT
face="Courier New, Courier, mono">.so</FONT>",可以使用物理路径,如果不想使用物理路径,可以<FONT
face="Courier New, Courier, mono">Project1.so</FONT>文件拷贝到Apache安装目录下的modules下,并修改其为<FONT
face="Courier New, Courier, mono">modules/Project1.so</FONT>。</P>
<P>需要注意的问题有几点:一是大小写,二是要将<FONT
face="Courier New, Courier, mono">LoadModule语句</FONT>加入到<FONT
face="Courier New, Courier, mono">LoadModule</FONT>区段的顶部,三是路径必须是反斜线。</P>
<P>4、另外要添加Location内容如下:</P>
<TABLE cellSpacing=1 width="80%" align=center bgColor=#cccccc border=0>
<TBODY>
<TR>
<TD class=prog><Location /Test><BR> SetHandler
Project1-handler<BR></Location></TD></TR></TBODY></TABLE>
<P>关于<FONT
face="Courier New, Courier, mono">Location</FONT>你可以设定任意的名称,需要注意的是<FONT
face="Courier New, Courier, mono">SetHandler</FONT>要设定的处理句柄必须是<FONT
face="Courier New, Courier, mono">Project1</FONT>,而且是严格区分大小写的。</P>
<P>5、重新启动Apache服务。</P>
<P>6、打开浏览器,键入http://localhost:8080/Test,Test要保证与<FONT
face="Courier New, Courier, mono">Location</FONT>设定的内容相匹配,则应该可以看得到运行结果。</P></TD></TR>
<TR>
<TD class=SubTitle bgColor=#ffffff>22、IntraWeb.v.5.1版本的一些新的变量。</TD></TR>
<TR>
<TD bgColor=#ffffff>
<P>这些变量大多集中在WebApplication对象中,附上一段小代码,编译后,你也可以在你的机器上试试(实在没什么可写的了,有凑字之嫌,大家批评)。</P>
<TABLE cellSpacing=1 width="80%" align=center bgColor=#cccccc border=0>
<TBODY>
<TR>
<TD class=prog>
<P><STRONG>procedure</STRONG>
TIWForm1.IWButton1Click(<STRONG>Sender</STRONG>:
TObject);<BR><STRONG>var</STRONG><BR> s:<STRONG>String</STRONG>;<BR><STRONG>begin</STRONG>
<BR>s:='<table width="80%" border="0" align="center"
cellspacing="1" bgcolor="#0033FF">'+<BR> '<tr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -