📄 modules.html.ja.euc-jp
字号:
<?xml version="1.0" encoding="EUC-JP"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>モジュ〖ルの Apache 1.3 から Apache 2.0 への败竣 - Apache HTTP サ〖バ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">モジュ〖ル</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">脱胳</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サ〖バ バ〖ジョン 2.0</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サ〖バ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテ〖ション</a> > <a href="../">バ〖ジョン 2.0</a> > <a href="./">Developer Documentation</a></div><div id="page-content"><div id="preamble"><h1>モジュ〖ルの Apache 1.3 から Apache 2.0 への败竣</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/developer/modules.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../ja/developer/modules.html" title="Japanese"> ja </a></p>
</div>
<p>この矢今は <code>mod_mmap_static</code> モジュ〖ルを Apache 2.0 脱に败竣した箕に
池んだ沸赋をもとに今いた、呵介の缄苞き今です。まだまだ窗链じゃないし、
ひょっとすると粗般っている婶尸もあるかもしれませんが、
艰っ齿りにはなるでしょう。</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#easy">词帽な恃构爬</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#messy">もっと恬拆な恃构爬∧</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="easy" id="easy">词帽な恃构爬</a></h2>
<h3><a name="cleanup" id="cleanup">クリ〖ンナップ ル〖チン</a></h3>
<p>クリ〖ンナップル〖チンは <code>apr_status_t</code> 房である涩妥があります。
そして、apr_status_t 房の猛を手さなくてはなりません。
クリ〖ンナップ面のエラ〖を奶梦する涩妥がなければ、手り猛は舍奶、
<code>ARP_SUCCESS</code> です。たとえエラ〖を奶梦したとしても、
すべてのコ〖ドがその奶梦をチェックしたり、
エラ〖に炳じた瓢侯をするわけではないことに丹をつけてください。</p>
<h3><a name="init" id="init">介袋步ル〖チン</a></h3>
<p>介袋步ル〖チンは借妄链挛から斧てしっくりくるような罢蹋を山すように、
叹涟が恃构されました。ですから、<code>mmap_init</code> から <code>mmap_post_config</code>
のようにちょっと恃构されました。
畔される苞眶は络升に恃构され、肌のようになりました。</p>
<ul>
<li><code>apr_pool_t *p</code></li>
<li><code>apr_pool_t *plog</code></li>
<li><code>apr_pool_t *ptemp</code></li>
<li><code>server_rec *s</code></li>
</ul>
<h3><a name="datatypes" id="datatypes">デ〖タ房</a></h3>
<p>デ〖タ房のほとんどは <a href="http://apr.apache.org/">APR</a> に败されました。つまり、
いくつかの叹涟が涟揭のように恃构されています。
卉すべき恃构爬の词帽な办枉を笆布に绩します。</p>
<ul>
<li><code>pool</code> becomes <code>apr_pool_t</code></li>
<li><code>table</code> becomes <code>apr_table_t</code></li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="messy" id="messy">もっと恬拆な恃构爬∧</a></h2>
<h3><a name="register-hooks" id="register-hooks">フックの判峡</a></h3>
<p>糠しいア〖キテクチャでは侯喇した簇眶を钙び叫すのに
办息のフックを蝗脱します。このフックは、糠しい簇眶
<code>static void register_hooks(void)</code> を蝗って判峡するよう、
モジュ〖ルに今き颅さなくてはなりません。
この簇眶は、なにをすべきか办枚妄豺してしまえば、
浇尸にわかりやすいものです。
リクエストの借妄のあるステ〖ジで钙び叫さなくてはならない
簇眶は判峡する涩妥があります。ハンドラは判峡する涩妥はありません。
簇眶を判峡できるフェ〖ズはたくさんあります。
それぞれのフェ〖ズで、簇眶を钙び叫す陵滦弄な界戎は、
かなりの镍刨扩告できます。</p>
<p>笆布は、<code>mod_mmap_static</code> に纳裁したコ〖ドです:</p>
<div class="example"><pre>
static void register_hooks(void)
{
static const char * const aszPre[]={ "http_core.c",NULL };
ap_hook_post_config(mmap_post_config,NULL,NULL,HOOK_MIDDLE);
ap_hook_translate_name(mmap_static_xlat,aszPre,NULL,HOOK_LAST);
};</pre></div>
<p>ここでは钙びだすべき企つの簇眶を判峡しています。办つは
<code>post_config</code> ステ〖ジ脱 (ほとんどすべてのモジュ〖ル
はこれが涩妥です) で、もう办つは <code>translate_name</code> フェ〖ズ脱です。
それぞれの簇眶は叹涟は般うけれども妨及は票じであることに庙罢してください。
それでは、妨及はどのようになっているでしょうか?</p>
<div class="example"><p><code>
ap_hook_<var>phase_name</var>(<var>function_name</var>,
<var>predecessors</var>, <var>successors</var>, <var>position</var>);
</code></p></div>
<p>话つの疤弥が年盗されています∧</p>
<ul>
<li><code>HOOK_FIRST</code></li>
<li><code>HOOK_MIDDLE</code></li>
<li><code>HOOK_LAST</code></li>
</ul>
<p>疤弥を年盗するには、惧淡の≈疤弥∽を回年し、
饯峻灰である≈黎乖∽と≈稿乖∽で缄を裁えます。
≈黎乖∽≈稿乖∽は、钙ばれるべき簇眶のリストです。
≈黎乖∽は簇眶の悸乖涟に钙ばれるもので、
≈稿乖∽は悸乖稿に钙ばれるものです。</p>
<p><code>mod_mmap_static</code> の眷圭、<code>post_config</code>
ステ〖ジでは涩妥ありませんが、
<code>mmap_static_xlat</code> が core モジュ〖ルが叹涟の恃垂を悸乖した稿に
<strong>钙ばれなければなりません</strong>。
そこで aszPre を蝗って <code>HOOK_LAST</code> の饯峻灰を年盗しています。</p>
<h3><a name="moddef" id="moddef">モジュ〖ルの年盗</a></h3>
<p>モジュ〖ルの年盗を侯喇する狠に庙罢しなければならない
ステ〖ジの眶は枫负しています。概い年盗は肌のようになっていました。</p>
<div class="example"><pre>
module MODULE_VAR_EXPORT <var>module_name</var>_module =
{
STANDARD_MODULE_STUFF,
/* initializer */
/* dir config creater */
/* dir merger --- default is to override */
/* server config */
/* merge server config */
/* command handlers */
/* handlers */
/* filename translation */
/* check_user_id */
/* check auth */
/* check access */
/* type_checker */
/* fixups */
/* logger */
/* header parser */
/* child_init */
/* child_exit */
/* post read-request */
};</pre></div>
<p>糠しい菇陇挛はとってもシンプルです∧</p>
<div class="example"><pre>
module MODULE_VAR_EXPORT <var>module_name</var>_module =
{
STANDARD20_MODULE_STUFF,
/* create per-directory config structures */
/* merge per-directory config structures */
/* create per-server config structures */
/* merge per-server config structures */
/* command handlers */
/* handlers */
/* register hooks */
};</pre></div>
<p>このうちのいくつかは概いものから糠しいものに木儡粕み仑えられるもので、
いくつかはそうではありません。どうすればいいのかを妥腆してみます。</p>
<p>木儡粕み仑えられるステ〖ジ:</p>
<dl>
<dt><code>/* ディレクトリ肋年侯喇簇眶 */</code></dt>
<dd><code>/* ディレクトリ髓肋年菇陇挛侯喇 */</code></dd>
<dt><code>/* サ〖バ肋年侯喇簇眶 */</code></dt>
<dd><code>/* サ〖バ髓肋年菇陇挛侯喇 */</code></dd>
<dt><code>/* ディレクトリ肋年マ〖ジ簇眶 */</code></dt>
<dd><code>/* ディレクトリ髓肋年菇陇挛マ〖ジ */</code></dd>
<dt><code>/* サ〖バ肋年マ〖ジ簇眶 */</code></dt>
<dd><code>/* サ〖バ髓肋年菇陇挛侯喇マ〖ジ */</code></dd>
<dt><code>/* コマンドˇテ〖ブル */</code></dt>
<dd><code>/* コマンド apr_table_t */</code></dd>
<dt><code>/* ハンドラ */</code></dt>
<dd><code>/* ハンドラ */</code></dd>
</dl>
<p>概い簇眶の荒りのものはフックとして判峡されるべきです。
附箕爬で肌のようなフックˇステ〖ジが年盗されています∧</p>
<dl>
<dt><code>ap_hook_post_config</code></dt>
<dd>(笆涟の <code>_init</code> ル〖チンが判峡されるべき眷疥です)</dd>
<dt><code>ap_hook_http_method</code></dt>
<dd>(リクエストから HTTP メソッドを艰评します (高垂脱))</dd>
<dt><code>ap_hook_open_logs</code></dt>
<dd>(泼年のログのオ〖プン)</dd>
<dt><code>ap_hook_auth_checker</code></dt>
<dd>(リソ〖スが涪嘎を涩妥とするかどうかの澄千)</dd>
<dt><code>ap_hook_access_checker</code></dt>
<dd>(モジュ〖ル盖铜の扩腆の澄千)</dd>
<dt><code>ap_hook_check_user_id</code></dt>
<dd>(ユ〖ザ ID とパスワ〖ドの澄千)</dd>
<dt><code>ap_hook_default_port</code></dt>
<dd>(サ〖バのデフォルトˇポ〖トの艰评)</dd>
<dt><code>ap_hook_pre_connection</code></dt>
<dd>(借妄の木涟に涩妥なことを悸乖。ただし accept 木稿に钙ばれる)</dd>
<dt><code>ap_hook_process_connection</code></dt>
<dd>(プロトコルの借妄)</dd>
<dt><code>ap_hook_child_init</code></dt>
<dd>(灰プロセル弹瓢木稿)</dd>
<dt><code>ap_hook_create_request</code></dt>
<dd>(??)</dd>
<dt><code>ap_hook_fixups</code></dt>
<dd>(炳批柒推の栏喇を恃构するラストˇチャンス)</dd>
<dt><code>ap_hook_handler</code></dt>
<dd>(炳批柒推の栏喇)</dd>
<dt><code>ap_hook_header_parser</code></dt>
<dd>(モジュ〖ルにヘッダの救柴をさせる。ほとんどのモジュ〖ルでは蝗われません。post_read_request を蝗います)</dd>
<dt><code>ap_hook_insert_filter</code></dt>
<dd>(フィルタˇチェインにフィルタを赁掐)</dd>
<dt><code>ap_hook_log_transaction</code></dt>
<dd>(リクエストについての攫鼠を淡峡する)</dd>
<dt><code>ap_hook_optional_fn_retrieve</code></dt>
<dd>(オプションとして判峡された簇眶の艰评)</dd>
<dt><code>ap_hook_post_read_request</code></dt>
<dd>(リクエストを粕みこんだ稿、戮のフェ〖ズの涟に钙ばれる)</dd>
<dt><code>ap_hook_quick_handler</code></dt>
<dd>リクエストの借妄が幌まる涟に钙ばれる。キャッシュモジュ〖ルが
蝗脱している</dd>
<dt><code>ap_hook_translate_name</code></dt>
<dd>(URI をファイル叹に恃垂する)</dd>
<dt><code>ap_hook_type_checker</code></dt>
<dd>(矢今房の疯年と肋年。あるいはその室数)</dd>
</dl>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/developer/modules.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../ja/developer/modules.html" title="Japanese"> ja </a></p>
</div><div id="footer">
<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">モジュ〖ル</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">脱胳</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -