执行mod_perl模块

3/5/2006来源:Perl教程人气:8453

执行mod_perl模块

如果你正想要扩增你的Apache网页服务器的功能,你或许应该看看模块所能
带给你的是什么。模块,是一个已经经过整合的程序代码,它可以让网页工程师们增加
他们服务器的功能而不用更改服务器本身的程序代码。透过模块,你可以为你的服务器
增添额外的新功能,像是在特定的时间内将URL地址转向,或者将你的服务器最佳化,
好让Perl的script跑得快一点。

我们听过很多人成功的利用了mod_perl威力的故事,这是一个提供给Perl软件工程师,
好让他们能够更随心所欲的控制他们的Apache服务器的工具。而透过内建在服务器中
的mod_perl解译器,Perlscript的处理速度变得很快,你的网页用户从此以后就不用再等了。

在这里我会提供你两个安装模块的范例,其中第二个范例会讲解如何安装mod_perl。
一旦你学会了整个安装过程,你就能够举一反三,用同样的方式为你的Apache网页服务
器安装各式各样不同的模块。你不妨到Apache模块注册网页,看看有什么额外的功能
模块可以让你下载的。

透过模块扩展你的服务器

模块初阶
利用模块提升Apache功能的过程十分简单。一开始,先下载
你要使用的模块。为了要示范如何安装及使用模块,在这里笔者写了一个简单的模块,这
个模块会使得服务器在每次接到来自使用者的网页请求时,会响应"HelloWorld"。

以下的说明假设当初你在安装Apache时,有编译并安装过mod_so这个模块,
如果当初你这样做,那么以后你将新的模块加到Apache时,就不用再重新编译了。
要看看你当初是否安装过mod_so,执行/httpd-l然后看看有没有mod_so。
如果没有,那你要阅读一下DynamicSharedObject支持手册,
然后重新设定你的服务器,好把mod_so包括进来。

要执行我的HelloWorld模块,你必须先下载mod_hello_world.c档案。这个.c档是我们透
过apxs用来编译出.so档的,你可以把它储存在任何地方。然后你要执行以下指令

apxs-c-omod_babble.somod_babble.c

如此一来mod_hello_world就已经编译好,准备在你的服务器中使用,而mod_hello_world.so也在这个时候产生;将这个档案拷贝到你的Apache安装目录的
libexec子目录下。到现在,我们就已经完成一半的工作了。接下来我们要更改在conf
子目录下的httpd.conf檔。打开httpd.conf然后搜寻有着LoadModule字样的那几行。
在这些行所在的section的最尾端,新增以下这一行文字

LoadModulehello_world_modulelibexec/mod_hello_world.so

如果你在http.conf中有ClearModuleList,那么在这个档里面一定有一个
AddModule的section存在。(如果你没能找到ClearModuleList,你就可以跳过
这一步。)在AddModulesection的尾端,加入该行文字

AddModulemod_hello_world.c

最后,在AddModulesection之后的任何地方,加入以下几行:

<Location/hello>
SetHandlerhello_world
</Location>

这是跟Apache说,对任何"/hello"网页的请求,都要交由
hello_world模块来处理。

现在,重新激活你的网页服务器,然后打入以下URL的请求http://localhost/hello
现在,你应该可以在你的浏览器上看到"HelloWorld!"。