位置: 编程技术 - 正文

不错的mod_perl编程的简单应用实例介绍

编辑:rootadmin
介绍性指南 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::Firsth2xs 将会创建目录 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.; 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 然后保存配置文件,并且重新启动 apache 服务器: apachectl stop apachectl start现在使用浏览器访问 “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 模块导出的常量。 调试 如果你没有看到 “Hello World”, 那你可能看到了一个错误页面,或者其他什么完全不同的。第一步去查看错误日志看看到底是什么发生了错误。我习惯于在浏览器中请求后立即查看错误日志。你可以使用 tail 工具:tail -f /path/to/apache/logs/error_log(使用你的真实 error_log 路径替换上面的路径。如果你不肯定它在哪里,查看你的 httpd.conf 文件的 ErrorLog 指令部分) 现在重新载入页面,然后 error_log 将告诉你什么地方出现了问题。更多的关于 perl 调试,请参见 perldebug. 加入更多 现在如果你想要针对上面的情况作一些修改,该如何做呢?不幸的,唯一一种安装模式如下: 修改你的 First.pm 文件 重新以 root 身份运行 make install 重新启动 Apache 这也许很麻烦,特别是重新启动 Apache。针对这个问题,我们可以另外安装一个特别设计的模块来避免每次这样麻烦的做。首先你需要从 CPAN 下载并安装 Apache::Reload 模块(除非你已经使用 mod_perl 1. 或者更高版本)。在这里 下载。 解开 tar.gz 文件并进入新目录,执行: perl Makefile.PL make然后到 root 身份执行: make install现在再次打开 httpd.conf 文件,加入: PerlInitHandler Apache::Reload这将测试所有有所改变的模块并在必要时自动重新载入新模块。这对于开发来说很有用,但会有性能损失,所以在开发完成之后,就将该特性关闭。 阅读更多 从这里开始你有很多事情需要去做。Apache API 本身就十分庞大,大多数都可以通过 perldoc Apache 看到相应的文档. 现在这个模块基本上没有什么价值,因为只有一个 URI 可以用于被该模块所控制( URI ,有许多解决办法,但最好的还是推荐使用 Apache::Dispatch 模块。 可以在 CPAN 下载 Apache::Dispatch 允许你保留标准的 mod_perl handler构架,同时还允许多个函数和多个URIs 被派发。 接下来我不建议象例子中一样直接向浏览器输出内容。请考虑使用一些常用的模版技术,比如 Template-Toolkit, HTML::Template, 更甚于使用 XSLT 或者 XPathScript (有很多很多这样的模版技术可选,我们希望有一天可以有文章来讨论这些技术来帮助你来选择)。

推荐整理分享不错的mod_perl编程的简单应用实例介绍,希望有所帮助,仅作参考,欢迎阅读内容。

不错的mod_perl编程的简单应用实例介绍

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

[Perl]文字/代码批量替换工具 Perl脚本batchReplace.pl可以用来批量替换文件中的文字/代码。可在指定目录中查找指定类型的文件,并递归检查子目录;在输出文件时复制输入文件的目录

不错的一篇学习CGI脚本(脚本) 学习CGI脚本(脚本)CGI意思为CommonGatewayInterface,一种基于浏览器的输入、在Web服务器上运行的程序方法.CGI脚本使你的浏览器与用户能交互,为了在数据库中

详细说明什么是Perl 一、Perl是什么?Perl是PracticalExtractionandReportLanguage的缩写,它是由LarryWall设计的,并由他不断更新和维护,用于在UNIX环境下编程。.Perl具有高级语言(如C

标签: 不错的mod_perl编程的简单应用实例介绍

本文链接地址:https://www.jiuchutong.com/biancheng/372422.html 转载请保留说明!

上一篇:perl常见问题集合之二(perl常用模块)

下一篇:[Perl]文字/代码批量替换工具(perl语言基本命令)

  • 如何判断固定资产资本化还是费用化
  • 上季度忘记申报个税了
  • 软件企业购进软件服务怎么入账
  • 哪些产品计算消费税时可以扣除
  • 出差车费报销申请怎么写
  • 票据和结算凭证上的签章
  • 营改增后服务业增值税税率
  • 账外房产按评估入账怎么交税
  • 工程结算怎么结转收入
  • 股利怎么算出来的
  • 净残值可以随意更改吗
  • 个体户公司需要交哪些税
  • 已认证未抵扣发票冲红流程
  • 增值税发票处理流程
  • 预缴增值税怎么填表
  • 小规模纳税人季度多少免税
  • 出口退免税收汇相关业务
  • 合作保证金规定
  • 加工费月底需要全部结转吗
  • 物业预收停车费不退费
  • 支付佣金费用没扣怎么办
  • 公共基础设施折旧年限表 20
  • 在windows7的
  • 银行哪些进项税不用抵扣
  • 鸿蒙2.0 更新
  • win7旗舰版系统怎么样
  • linux的grep命令使用
  • 无花果的功效与作用对女人的好处
  • php redis常用命令
  • PHP:mcrypt_ecb()的用法_Mcrypt函数
  • 应收票据计提利息应做的会计分录是
  • 年度汇算清缴怎么查询
  • 直接计入当期利润的利得和损失有哪些
  • 存货跌价后销售会计分录
  • 无形资产摊销是按原值吗
  • framework7教程
  • 防伪码查一次还能查第二次吗
  • wget下载yum
  • 说好的运费少给怎么办
  • 什么是固定资产?其特征有哪些
  • 投资他人公司
  • 预缴所得税可以调减吗
  • 收到的发票税收怎么处理
  • 无票收入怎么做
  • wordpress部署到github
  • 企业盈余公积的主要用途是
  • 企业之间借贷是否合法有效
  • sql查询表中指定数据
  • mysql中的语法
  • 办公装修费用多少
  • 差额征税如何做分录
  • 融资租入固定资产的租赁费属于什么费用
  • 计提增值税如何计算
  • 公司基建维修承诺书
  • 房地产企业怎么交房产税
  • 一般纳税人纳税申报表
  • 车辆保险费算什么费用
  • 暂估未取得发票汇缴纳税调增怎么填
  • 普票冲红需要收回原来的发票吗
  • 资产负债表中应交税费为负数是什么意思
  • 农民专业合作社是企业法人吗
  • 申报表应纳税额和财务账金额不一致可以不改申报表吗
  • 个人承担的社保算公司的费用吗
  • 发票拒收证明盖公章还是财务章
  • 货币资金核算制度是什么
  • 完美解决usb供电不足
  • 出现早搏就一辈子无法治愈吗
  • 电脑win7一开机就弹出各种广告窗口怎么办
  • linux如何关闭ipv6防火墙
  • WIN10系统更新怎么关闭
  • android游戏编程之从零开始
  • 利用python进行
  • unity3d 依赖注入
  • unity3d怎么编程
  • unity_jail
  • 置顶聊天折叠怎么关闭
  • 云南省国家税务局APP
  • 金融知识宣传的建议
  • 福建地税网上办事大厅
  • 泗洪临淮公交车运行时间表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设