介绍性指南
mod_perl 是个庞大而复杂的工具,它内建了许多模块帮助你方便地构建动态网站。这篇指南的目的是帮助你构建一个良好的 mod_perl 模块,并从中理解 mod_perl 的实现技术。我并不推荐使用这里介绍的技术来建立一个大型站点,尤其对于一个刚刚涉足 mod_perl 的人来说。但我推荐大家可以深入看一下它的一些内建的方案,比如 Mason, AxKit, EmbPerl, Apache::ASP 和 PageKit 等等。
你需要什么?
本指南假设你已经有过安装和测试 mod_perl 的经验。以及较新版本的 Apache 的安装经验。因为有可能你需要在你的机器上实现时适当的修改本文提供的配置。我们需要你安装一些模块并且需要进入 Apache 的配置目录作修改。所以最好你有 root 权限来做这些事情。当然你还需要一个文本编辑器。
切入正题
mod_perl 模块也是 Perl 模块,但它有较为特别的设计。最方便的创建一个 Perl 模块的方法就是使用标准的 Perl 分发自带的工具 h2xs 。你可以在命令行模式键入 h2xs 来看看它的参数列表。现在,到一个适当的目录开始一个新项目,键入:
h2xs -AX -n Apache::Tutorial::First
h2xs 将会创建目录 Apache, 以及其他一些子目录.现在进入最深一级的目录看看:
cd Apache/Tutorial/First
在这个新目录里面,你可以看到 6 个文件: README, Changes, First.pm, MANIFEST, Makefile.PL 和 Apache-Tutorial-First.t。它们的作用如下:
- README
这个文件包含一些安装信息,模块依赖性,版权信息等
- Changes
这个文件作为你的项目的修改日志(changelog)文件
- First.pm
这是主模块文件,包含你的 mod_perl 句柄代码(handler code)。
- MANIFEST
本文件用于自动构建 tar.gz 类型的模块版本分发。这样你就可以把你的模块拿到 CPAN 发布或者分发给其他人。它包含了你在这个项目中所有文件的列表。
- Makefile.PL
这是标准的 Perl Makefile 构造器。用于创建 Makefile.PL 文件来编译该模块。
- Apache-Tutorial-First.t
针对该模块的一些测试脚本。默认情况下它只是检查模块的载入,你可以添加一些新的测试单元。
好了,现在我们开始把 First.pm 变为可工作的 mod_perl 模块。使用文本编辑器打开该文件,修改后的内容如下:
package Apache::Tutorial::First;
use strict;
use vars qw/$VERSION/;
use Apache::Constants;
$VERSION = 0.01;
sub handler {
my $r = shift;
$r->send_http_header('text/html');
print "<html><body>Hello World</body></html>";
return OK;
}
1;
不要忘记文件末尾的”1;”,对于 Perl 来说,一个模块最后返回的非零值表示该模块已经被成功编译。
安装你的模块
h2xs 工具使我们的模块安装工作极为方便。在和你的 First.pm 文件相同的目录中。键入:
perl Makefile.PL
make
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
</Location>
然后保存配置文件,并且重新启动 apache 服务器:
apachectl stop
apachectl start
现在使用浏览器访问 http://localhost/mod_perl_tutorial ,你将如期的看到显示 “Hello World” 页面。
[1] [2] 下一页