我将介绍两个关于安装模块的例子,其中第二个例子将介绍mod_perl模块。一旦你了
解了这个过程,你就可以为Apache网络服务器配置其它各种不同的模块。请看
扩展使用模块的Apache是相当方便的,只要下载打算要用的模块。要了解如何
安装和使用模块,我用如下一个简单的例子来阐明:当服务器接收到一个给定页面
的请求时,服务器返回"HelloWorld"。
假设你已经完成如下工作:在Apache安装时,已经带有了编译过的
已经完成该步,就可以添加新模块到Apache中,而无须再编译。为了判断是否已经安装
编译过的
请阅读
为了让HelloWorld模块能够在你的服务器上运行,就要编译mod_hello_world,之
后,就会创建一个名为mod_hello_world.so的文件,把该文件复制到Apache的libexec目
录中,此时,我们已经完成了一半的任务,我们现在只要修改conf目录中的httpd.conf
文件:打开httpd.conf文件,找到LoadModule行,在该部分的最后一行后面,添加如下行:
如果你有ClearModuleList,在你的配置文件中就会有AddModule部分,(如果你
没有ClearModuleList,你可以跳过此步)在AddModule部分的末尾,添加如下行:
最后,在配置文件的AddModule部分后面的任何一处,添加如下内容:
SetHandlerhello_world
</Location>
该行告诉Apache,任何对名为"/hello"的页面的请求,将会被转到
hello_world模块,现在,重新启动网络服务器,发出请求:
你将在你的浏览器中看到"HelloWorld!"。
选择合适的模块
我们现在遇到的最大问题是:在构造模块时,只用到C语言编写的模块,为了让这
些程序能够在特定的服务器上运行,这些源程序在编译时还必须带上正确的编译开关。
在每次安装Apache时,都必须重新编译这些源程序。要了解使用哪些编译开关的问题,
可以通过运行Apache附带的apxs脚本来获得,但是每次在新的服务器上运行时,都得重
新编译该模块,重新编译始终是个问题。
有个模块可以解决这些问题,而且该模块还带有更多其他的功能,这就是mod_perl模块,
其功能很强大,本文只能为大家作一些该模块的简单介绍。
为什么使用mod_perl?
mod_perl模块的提供的一个特色是:可以用Perl语言来编写Apache模块,Perl是
解释性语言,其优缺点并存。解释性语言的一个主要优点是:每次安装服务器时,不必重新
编译这个模块。缺点是需要一个解释器来阅读和执行实际的程序,这会降低服务器的运行速度,
通过在启动Apache服务器的同时,启动Perl解释器,这样mod_perl就克服了运行速度减慢的问题。
Perl解释器还可以对服务器上的Perl代码进行预先解释,并可以随时捕捉到它,以便一旦
要用到该段代码时,能够快速执行。
mod_perl可以从
在网上和mod_perl模块中就提供了不少技术参考资料。为了向大家演示Perl模块的使用,
我下载并复制了
现在,我们需要设置Apache服务器,以便它可以找到我们希望使用的模块。一开始,
要使用mod_perl,我们需要创建一个名为startup.pl的文件,该文件将为mod_perl所使用,
将会告诉mod_perl所有已安装程序的位置。我们将创建一个最小的startup.pl文件,可以
用它来访问要运行的HelloWorld模块,要使得其他模块来说,也能够正常工作,就需要
修改startup.pl文件。在你的startup.pl文件中,应包含如下内容:
#savemanyheadachesasyouwork.
usestrict;
uselibqw(path/to/module)
useApache::Hello;
#alsocheckstoensurethatweareactuallyrunningmod_perlwithourversion
#ofApache.
下一步,要使得HelloWorld模块可以运行,就要对Apache服务器进行配置,以便
使用mod_perl。在前面的例子中,我们使用了
访问用C语言编写的模块的请求。对于Perl模块,我们使用hello_perl。要设置得正确,
就需要编辑httpd.conf文件。在AddModule行后面的某处添加如下内容:
SetHandlerperl-script
PerlHandlerApache::Hello
</Location>
PerlRequire行告诉mod_perl到何处去寻找我们先前已经创建的startup.pl文件。
标记为Location的一节将告诉Apache服务器,对/hello_perl的请求应该用一个特殊
的方式进行处理。在该节里,存在两个指示语:SetHandler和PerlHandler。
SetHandler指示语将告诉Apache,把所有的访问请求发送到mod_perl,之后PerlHandler
就指示mod_perl应该把这些请求转发到HelloWorld的Perl模块。
仅剩下最后一个步骤了:把Hello.pm文件复制到适当的位置。一旦创建了startup.pl文件,
我们就规定好了Hello.pm模块的位置。我们需要在那个位置创建一个目录,把Hello.pm文件
复制到该Apache目录中,所以,如果要在startup.pl文件中把path/to/module设置
为/usr/local/apache/perl/modules,就可以执行如下命令:
cpHello.pm
/usr/local/apache/perl/modules/Apache
这就把HelloWorld模块放到Apache名称空间中,确保没有其他的Perl脚本同它冲突。
此时,Apache和mod_perl都已经设置好,可以运行HelloWorld了。我们可以重启动服务器。
一旦服务器重启动之后,在你的浏览器位置栏打入
本文介绍了如何添加外部模块到现有的Apache服务器中,在网上,除了用C语言
和Perl语言编写的模块之外,也有一些用
本文也介绍如何自己编写模块,并配置到Apache服务器中的资料。
新闻热点
疑难解答
图片精选