不要忘记文件末尾的”1;”,对于Perl来说,一个模块最后返回的非零值表示该模块已经被成功编译。
安装你的模块
h2xs 工具使我们的模块安装工作极为方便。在和你的 First.pm 文件相同的目录中。键入:
make test如果 make test 成功的话,你需要以 root 身份执行:
make install这样你就把你的模块安装到了 perl 的库目录(library directory)。
添加该模块为 Apache 的一个句柄(handler)
现在我们需要进入 Apache 配置目录来修改配置文件,使我们的模块作为 Apache 内容处理阶段的处理器。打开 httpd.conf 文件,在末尾加入如下配置:
<Location /mod_perl_tutorial>
SetHandler perl-script
PerlHandler Apache::Tutorial::First
|
然后保存配置文件,并且重新启动 apache 服务器:
apachectl stop
apachectl start现在使用浏览器访问http://localhost/mod_perl_tutorial,你将如期的看到显示 “Hello World” 页面。
当 Apache 启动的时候,它读取它的配置指令并把适当的命令传递给相应的处理该命令的模块。这里有两个相关的指令 SetHandler 和 PerlHandler。
第一个指令 SetHandler 由 mod_mime 模块处理,该指令表示使用什么模块作为处理请求的主要部分。这里所设置的perl-script 表示使用 mod_perl 来处理请求。
第二个指令PerlHandler由mod_perl模块来处理,它只是简单的说明使用我们的模块来处理请求的主要部分。有一点需要注意,无论何时在你有一个 PerlHandler 时,你需要相应的 SetHandler perl-script 配置指令。这样才能使你的 mod_perl 代码起作用。我总是认为这是一个弱点,但这将涉及 Apache 内部的处理机制,所以在将来这也很难改变。
现在请求来了,Apache 查看用什么模块来处理相应的 URI 并且在这里决定使用 mod_perl,而 mod_perl 知道它必须把请求发送给我们的模块,并调用我们模块的 handler() 函数作为 Apache::Request 对象的第一个参数。而我们的 handler() 函数的返回值决定了下一步 Apache 将要做什么。现在我们知道返回值 OK 意味着一切成功。 OK是个从Apache::Constants 模块导出 |