亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

mod_perl編程的簡單應(yīng)用實例介紹

2024-09-08 23:41:17
字體:
供稿:網(wǎng)友

介紹性指南

mod_perl 是個龐大而復(fù)雜的工具,它內(nèi)建了許多模塊幫助你方便地構(gòu)建動態(tài)網(wǎng)站。這篇指南的目的是幫助你構(gòu)建一個良好的 mod_perl 模塊,并從中理解 mod_perl 的實現(xiàn)技術(shù)。我并不推薦使用這里介紹的技術(shù)來建立一個大型站點,尤其對于一個剛剛涉足 mod_perl 的人來說。但我推薦大家可以深入看一下它的一些內(nèi)建的方案,比如 mason, axkit, embperl, apache::asp 和 pagekit 等等。

你需要什么?

本指南假設(shè)你已經(jīng)有過安裝和測試 mod_perl 的經(jīng)驗。以及較新版本的 apache 的安裝經(jīng)驗。因為有可能你需要在你的機(jī)器上實現(xiàn)時適當(dāng)?shù)男薷谋疚奶峁┑呐渲谩N覀冃枰惆惭b一些模塊并且需要進(jìn)入 apache 的配置目錄作修改。所以最好你有 root 權(quán)限來做這些事情。當(dāng)然你還需要一個文本編輯器。

切入正題

mod_perl 模塊也是 perl 模塊,但它有較為特別的設(shè)計。最方便的創(chuàng)建一個 perl 模塊的方法就是使用標(biāo)準(zhǔn)的 perl 分發(fā)自帶的工具 h2xs 。你可以在命令行模式鍵入 h2xs 來看看它的參數(shù)列表。現(xiàn)在,到一個適當(dāng)?shù)哪夸涢_始一個新項目,鍵入:h2xs -ax -n apache::tutorial::firsth2xs 將會創(chuàng)建目錄 apache,以及其他一些子目錄.現(xiàn)在進(jìn)入最深一級的目錄看看:cd apache/tutorial/first在這個新目錄里面,你可以看到 6 個文件: readme, changes, first.pm, manifest, makefile.pl 和 apache-tutorial-first.t。它們的作用如下:

readme

這個文件包含一些安裝信息,模塊依賴性,版權(quán)信息等

changes

這個文件作為你的項目的修改日志(changelog)文件

first.pm

這是主模塊文件,包含你的 mod_perl 句柄代碼(handler code)。

manifest

本文件用于自動構(gòu)建 tar.gz 類型的模塊版本分發(fā)。這樣你就可以把你的模塊拿到 cpan 發(fā)布或者分發(fā)給其他人。它包含了你在這個項目中所有文件的列表。

makefile.pl

這是標(biāo)準(zhǔn)的 perl makefile 構(gòu)造器。用于創(chuàng)建 makefile.pl 文件來編譯該模塊。

apache-tutorial-first.t

針對該模塊的一些測試腳本。默認(rèn)情況下它只是檢查模塊的載入,你可以添加一些新的測試單元。好了,現(xiàn)在我們開始把first.pm變?yōu)榭晒ぷ鞯膍od_perl模塊。使用文本編輯器打開該文件,修改后的內(nèi)容如下:

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來說,一個模塊最后返回的非零值表示該模塊已經(jīng)被成功編譯。

安裝你的模塊

h2xs 工具使我們的模塊安裝工作極為方便。在和你的 first.pm 文件相同的目錄中。鍵入:

perl makefile.plmake

make test如果 make test 成功的話,你需要以 root 身份執(zhí)行:

make install這樣你就把你的模塊安裝到了 perl 的庫目錄(library directory)。

添加該模塊為 apache 的一個句柄(handler)

現(xiàn)在我們需要進(jìn)入 apache 配置目錄來修改配置文件,使我們的模塊作為 apache 內(nèi)容處理階段的處理器。打開 httpd.conf 文件,在末尾加入如下配置:

<location /mod_perl_tutorial>  sethandler perl-script  perlhandler apache::tutorial::first

然后保存配置文件,并且重新啟動 apache 服務(wù)器:

apachectl stop

apachectl start現(xiàn)在使用瀏覽器訪問http://localhost/mod_perl_tutorial,你將如期的看到顯示 “hello world” 頁面。

當(dāng) apache 啟動的時候,它讀取它的配置指令并把適當(dāng)?shù)拿顐鬟f給相應(yīng)的處理該命令的模塊。這里有兩個相關(guān)的指令 sethandler 和 perlhandler。

第一個指令 sethandler 由 mod_mime 模塊處理,該指令表示使用什么模塊作為處理請求的主要部分。這里所設(shè)置的perl-script 表示使用 mod_perl 來處理請求。

第二個指令perlhandler由mod_perl模塊來處理,它只是簡單的說明使用我們的模塊來處理請求的主要部分。有一點需要注意,無論何時在你有一個 perlhandler 時,你需要相應(yīng)的 sethandler perl-script 配置指令。這樣才能使你的 mod_perl 代碼起作用。我總是認(rèn)為這是一個弱點,但這將涉及 apache 內(nèi)部的處理機(jī)制,所以在將來這也很難改變。

現(xiàn)在請求來了,apache 查看用什么模塊來處理相應(yīng)的 uri 并且在這里決定使用 mod_perl,而 mod_perl 知道它必須把請求發(fā)送給我們的模塊,并調(diào)用我們模塊的 handler() 函數(shù)作為 apache::request 對象的第一個參數(shù)。而我們的 handler() 函數(shù)的返回值決定了下一步 apache 將要做什么?,F(xiàn)在我們知道返回值 ok 意味著一切成功。 ok是個從apache::constants 模塊導(dǎo)出的常量。

調(diào)試

如果你沒有看到 “hello world”, 那你可能看到了一個錯誤頁面,或者其他什么完全不同的。第一步去查看錯誤日志看看到底是什么發(fā)生了錯誤。我習(xí)慣于在瀏覽器中請求后立即查看錯誤日志。你可以使用 tail 工具:tail -f /path/to/apache/logs/error_log(使用你的真實 error_log 路徑替換上面的路徑。如果你不肯定它在哪里,查看你的 httpd.conf 文件的 errorlog 指令部分)

現(xiàn)在重新載入頁面,然后 error_log 將告訴你什么地方出現(xiàn)了問題。更多的關(guān)于 perl 調(diào)試,請參見 perldebug.

加入更多

現(xiàn)在如果你想要針對上面的情況作一些修改,該如何做呢?不幸的,唯一一種安裝模式如下:

修改你的 first.pm 文件

重新以 root 身份運行 make install

重新啟動 apache

這也許很麻煩,特別是重新啟動 apache。針對這個問題,我們可以另外安裝一個特別設(shè)計的模塊來避免每次這樣麻煩的做。首先你需要從 cpan 下載并安裝 apache::reload 模塊(除非你已經(jīng)使用 mod_perl 1.26 或者更高版本)。在這里 http://search.cpan.org/search?dist=apache-reload 下載。

解開 tar.gz 文件并進(jìn)入新目錄,執(zhí)行:

perl makefile.pl

make然后到 root 身份執(zhí)行:

make install現(xiàn)在再次打開 httpd.conf 文件,加入:

perlinithandler apache::reload這將測試所有有所改變的模塊并在必要時自動重新載入新模塊。這對于開發(fā)來說很有用,但會有性能損失,所以在開發(fā)完成之后,就將該特性關(guān)閉。

閱讀更多

從這里開始你有很多事情需要去做。apache api 本身就十分龐大,大多數(shù)都可以通過 perldoc apache 看到相應(yīng)的文檔. 現(xiàn)在這個模塊基本上沒有什么價值,因為只有一個 uri 可以用于被該模塊所控制(http://server/mod_perl_tutorial),這使得它變得不夠靈活。為了使一個模塊可以處理多個 uri ,有許多解決辦法,但最好的還是推薦使用 apache::dispatch 模塊。

可以在 cpan 下載 http://search.cpan.org/search?dist=apache-dispatch. apache::dispatch 允許你保留標(biāo)準(zhǔn)的 mod_perl handler構(gòu)架,同時還允許多個函數(shù)和多個uris 被派發(fā)。

接下來我不建議象例子中一樣直接向瀏覽器輸出內(nèi)容。請考慮使用一些常用的模版技術(shù),比如 template-toolkit, html::template, 更甚于使用 xslt 或者 xpathscript (有很多很多這樣的模版技術(shù)可選,我們希望有一天可以有文章來討論這些技術(shù)來幫助你來選擇)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日韩亚洲成人av在线| 97久久综合精品久久久综合| 亚洲码在线观看| 久久久久久久人妻无码中文字幕爆| 免费大片在线观看www| 欧美韩日一区二区三区| 日韩精品久久一区二区三区| 日韩中文在线中文网三级| 91福利入口| 欧美另类黑人巨大videos| 成人午夜888| 国产中文字幕一区| 蜜桃91精品入口| 久久精品99国产国产精| 国产91绿帽单男绿奴| 成年在线电影| 成人在线视频免费观看| 男女激情网站| 亚洲亚洲人成综合网络| 国产 福利 在线| 四虎免费在线视频| 亚洲人成网站777色婷婷| 天天草夜夜草| 日本视频精品一区| 欧美日韩美女视频| 成人在线免费观看| 亚洲成人动漫精品| 涩涩涩久久久成人精品| 免费永久视频| 91精品国产91久久久| 九九精品九九| 亚洲第九十九页| www.超碰在线.com| 亚洲一区二区免费| 在线观看国产一区二区| 欧美日韩国产成人高清视频| 精品一区二区三区四区五区六区| 日韩av在线免费看| 永久免费网站在线| 欧美色综合影院| 日韩av一区二区在线影视| 亚洲天堂网站在线| 1234区中文字幕在线观看| 久久久久久亚洲精品| 久久不射2019中文字幕| 91中文字幕在线观看| 国产精品欧美亚洲777777| 国产女人18水真多毛片18精品| 日韩限制级电影在线观看| 色18美女社区| 国产又大又粗又长| 成年人视频在线| 成人蜜臀av电影| 亚洲国产精久久久久久久| 欧美日韩亚洲国内综合网俺| wwwwxxxxx欧美| 白天操夜夜操| 97视频热人人精品| 成人午夜电影在线播放| 自拍偷拍一区| 亚洲中文字幕久久精品无码喷水| 国产特级淫片免费看| 99re6热在线精品视频播放速度| 黄页网站在线看| 国产一区二区三区网站| 国产成人jvid在线播放| 欧美日韩在线精品一区二区三区激情| 欧美mv和日韩mv的网站| 最新日韩精品| caoporn视频在线观看| 欧美老少配视频| 日本a级片久久久| 国产精品亚洲综合久久小说| 日本成人中文字幕在线视频| 成人区精品一区二区婷婷| 欧美性色黄大片手机版| 国产午夜精品全部视频在线播放| 全球成人免费直播| 五月天激情图片| 成人免费观看在线| 欧美激情成人动漫| www.久久撸.com| 久久国产精品成人免费观看的软件| 午夜18视频在线观看| 成年人网站免费在线观看| 久久久久久国产精品免费播放| 国产精品jvid在线观看蜜臀| www视频在线观看com| 在线免费观看一级片| 91成人在线精品| 91视频这里只有精品| 欧美黄色小视频| 黄色动漫在线观看| 欧美最顶级的aⅴ艳星| 成人av在线播放观看| 六月丁香婷婷在线| 一道本成人在线| 色综合天天天天做夜夜夜夜做| 欧美日韩在线观看成人| 国产视频一区二区在线播放| 国内免费久久久久久久久久久| 韩国精品免费视频| 国产三区在线视频| jazzjazz国产精品麻豆| 午夜国产一区二区| 国产精品久久色| 国产精品三级av在线播放| 亚洲日本在线看| 久久九九精品视频| 黄色网络在线观看| 日产精品久久久一区二区| 国产精品99久久久精品无码| 亚洲精品99久久久久| 国产一区二区中文字幕免费看| 男人添女人下部视频免费| 一本一道久久久a久久久精品91| 日韩电影二区| 如如影视在线观看经典| 亚洲天堂激情| 66视频精品| 欧美日韩精品在线观看视频| 黄色片视频免费观看| 亚洲男人的天堂成人| 黄色激情在线视频| 激情综合丝袜美女一区二区| 欧美精品色图| 欧美 日本 亚洲| 国产免费毛卡片| 日本在线一区二区三区| 手机看片福利盒子久久| 欧美xxxxxxxxx59| 久久视频免费| 欧美日韩亚洲一二三| 日本免费一区二区三区四区| 亚洲人人夜夜澡人人爽| 成人综合在线网站| 在线视频三级| 日韩电影免费在线看| 亚洲欧美校园春色| 欧美成人午夜激情| 欧美少妇精品| 亚洲第一精品夜夜躁人人躁| 男男电影完整版在线观看| 久久精子c满五个校花| 国产精品视频线看| 亚洲图片欧美综合| 91pony九色| 国产男男gay网站| 中文字幕人妻一区二区三区| 激情欧美国产欧美| 亚洲少妇久久久| 小早川怜子一区二区三区| 国产乱码精品一区二区亚洲| 男人的天堂影院| aaa级精品久久久国产片| 高清在线观看av| 欧美第一区第二区| 日韩av免费在线观看| 99热这里是精品| 久久99蜜桃| 青青草精品视频在线观看| 亚洲精品99久久久久中文字幕| 精品电影一区二区三区| 情事1991在线| 亚洲男同性恋视频| 久久免费大视频| www激情五月| 亚洲二区在线视频| 欧美 日韩 国产 在线| 91欧美精品成人综合在线观看| 精品亚洲永久免费| 欧美成人三级在线播放| 天天操夜夜操免费视频| 天天干天天干天天| 久久久久久**毛片大全| 97福利一区二区| 成人午夜av| 精品婷婷色一区二区三区蜜桃| 天堂在线视频中文网| 丁香婷婷在线观看| 欧美特黄不卡| 精品欧美国产一区二区三区不卡| 91久久伊人青青碰碰婷婷| 在线色欧美三级视频| 日本www在线观看| 一级黄色a视频| 久久精品黄色片| 精品一区二区三区中文字幕| 7777久久亚洲中文字幕| 欧美三级 欧美一级| 欧美一级二级三级乱码| 日本美女一区二区| 日本在线观看视频| 色999国产精品| 无码国产69精品久久久久网站| 成年人在线视频| 自拍偷拍一区二区三区四区| 午夜精品在线观看| www.99com| 九九热免费精品视频| 麻豆国产va免费精品高清在线| 欧美精品videosex| 成人黄色片网站| 日韩成人精品一区二区三区| 女同毛片一区二区三区| 久久影院模特热| eeuss性xxxxxx电影| 日韩一区二区三区在线免费观看| 香蕉视频免费版| 中文字幕日韩免费| 一色桃子久久精品亚洲| 美女视频黄免费的久久| 国产日韩欧美亚洲| 国产亚洲亚洲国产一二区| 婷婷六月国产精品久久不卡| 亚洲成人中文在线| 99爱视频在线| 日韩激情一区二区| 日韩免费av一区二区| 国产精品久久久久91| 亚洲影院中文字幕| 免费精品国产自产拍观看| 日本大片在线观看| 国产乱叫456在线| 欧美午夜精品在线| 国产精品久久久久久久久免费丝袜| 狠狠狠色丁香婷婷综合久久五月| 国产精品白丝jk白祙喷水网站| 国产精品久久久久久在线观看| 杨幂一区欧美专区| 3d动漫精品啪啪| 国产区精品视频在线观看豆花| 樱花草在线观看www| 国产av无码专区亚洲av毛网站| jizz一区二区| 中文字幕av一区二区三区四区| www.男人的天堂| 国产又黄又大又爽| 久久九九热re6这里有精品| eeuss鲁片一区| 国产h片在线观看| 一级视频在线免费观看| 色噜噜狠狠狠综合欧洲色8| av 一区二区三区| 日韩麻豆第一页| 成人观看高清在线观看免费| 日韩精品视频免费在线观看| 亚洲视频一区在线播放| 91av入口| 成人手机在线| 日韩精选在线观看| 久热免费在线视频| 小日子的在线观看免费第8集| 中文字幕亚洲精品| 亚洲三级电影| 日韩中文字幕久久| 日韩欧美精品一区二区三区| 国产bdsm| 久久久无码精品亚洲日韩按摩| 国产在线视频在线| 丁香五月网久久综合| 亚洲乱色熟女一区二区三区| 国产精品成人国产| 秋霞午夜av一区二区三区| 岛国精品资源网站| 国产亚洲欧美在线精品| 久久久午夜影院| 日韩一级片在线观看| 色偷偷av一区二区三区| 成人性生交大片免费看午夜| 国产一区喷水| 国产一区二区三区四区五区美女| 精品无码人妻一区二区三| 国产精品美女www爽爽爽| 国产精品激情自拍| 超碰成人97| 91精品在线观看国产| 亚洲综合爱爱久久网| 日韩网站在线观看| 精品少妇人妻av免费久久洗澡| 97在线观看| 国产日韩精品久久| 黄色国产在线播放| 亚洲综合成人在线| 欧美日韩国产小视频| 91久久视频| 精品国产欧美一区二区五十路| 日韩有码一区二区三区| 欧美色图亚洲| 日韩在线观看www| av网站网址| 国产欧美日韩精品综合| 色系网站成人免费| 欧美三级视频在线观看| 国产精品麻豆一区| 欧美三级电影精品| 主播大秀视频在线观看一区二区| 久久夜色精品国产| 一区二区欧美久久| 在线免费看h| 一级久久久久久久| 精品一区在线播放| 成人信息集中地| 久久99热这里只有精品国产| 国内精彩免费自拍视频在线观看网址| 丰满少妇又爽又紧又丰满69| 欧美性欧美巨大黑白大战| 五月天婷婷激情视频| 国产精品久久久久精| 福利电影一区| 欧美一区二区三区久久久| 欧美第一精品| 欧美亚洲动漫另类| 成人性生交大片免费看视频直播| 69堂免费视频| 国产精品三级在线观看无码| 美女诱惑黄网站一区| 久久免费在线观看视频| 欲香欲色天天天综合和网| 久久精品人人做人人爽电影| 欧美激情 亚洲a∨综合| 亚洲GV成人无码久久精品| 国产大学生粉嫩无套流白浆| 欧美人妇做爰xxxⅹ性高电影| 亚洲一级高清| 综合中文字幕亚洲| 亚洲日本久久| 久久不卡免费视频|