要运行Hello World模块, 先要下载mod_hello_world.c 文件,该.c文件是用来编译成.so文件的,你要使用apxs命令来进行编译,可以把编译后的文件保存在任何地方,你可以执行类似如下的命令:
apxs -c -o mod_babble.so mod_babble.c
为了让Hello World模块能够在你的服务器上运行,就要编译mod_hello_world,之后,就会创建一个名为mod_hello_world.so的文件,把该文件复制到Apache的libexec目录中,此时,我们已经完成了一半的任务,我们现在只要修改conf目录中的httpd.conf
文件:打开httpd.conf文件,找到LoadModule 行,在该部分的最后一行后面,添加如下行:
LoadModule hello_world_module libexec/mod_hello_world.so
如果你有ClearModuleList,在你的配置文件中就会有AddModule部分,(如果你没有ClearModuleList,你可以跳过此步)在AddModule部分的末尾,添加如下行:
AddModule mod_hello_world.c
最后,在配置文件的AddModule部分后面的任何一处,添加如下内容:
<Location /hello>
SetHandler hello_world
</Location>
该行告诉Apache,任何对名为"/hello"的页面的请求,将会被转到hello_world模块,现在,重新启动网络服务器,发出请求:http://localhost/hello.
你将在你的浏览器中看到"Hello World!"。
选择合适的模块
我们现在遇到的最大问题是:在构造模块时,只用到C语言编写的模块, 为了让这些程序能够在特定的服务器上运行,这些源程序在编译时还必须带上正确的编译开关。在每次安装Apache时,都必须重新编译这些源程序。要了解使用哪些编译开关的问题,可以通过运行Apache附带的apxs脚本来获得,但是每次在新的服务器上运行时,都得重新编译该模块,重新编译始终是个问题。
有个模块可以解决这些问题,而且该模块还带有更多其他的功能,这就是mod_perl模块,其功能很强大,本文只能为大家作一些该模块的简单介绍。
为什么使用mod_perl?
mod_perl 模块的提供的一个特色是:可以用Perl语言来编写Apache 模块,Perl 是解释性语言,其优缺点并存。解释性语言的一个主要优点是:每次安装服务器时,不必重新编译这个模块。缺点是需要一个解释器来阅读和执行实际的程序,这会降低服务器的运行速度,通过在启动Apache服务器的同时,启动Perl解释器,这样mod_perl就克服了运行速度减慢的问题。Perl解释器还可以对服务器上的Perl代码进行预先解释,并可以随时捕捉到它,
以便一旦要用到该段代码时,能够快速执行。
|