]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_so.xml.ja
xforms.
[apache] / docs / manual / mod / mod_so.xml.ja
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 420990:1331227 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mod_so.xml.meta">
24
25 <name>mod_so</name>
26 <description>起動時や再起動時に実行コードとモジュールをサーバにロードする
27 </description>
28 <status>Extension</status>
29 <sourcefile>mod_so.c</sourcefile>
30 <identifier>so_module</identifier>
31 <compatibility>このモジュールは Window では (常に含まれている) Base
32 モジュールです</compatibility>
33
34 <summary>
35
36     <p>いくつかのオペレーティングシステムでは、サーバの再コンパイルをする代わりに、
37     このモジュールを使用して
38     <a href="../dso.html">動的共有オブジェクト</a>
39     (DSO) 機構により、実行時に Apache にモジュールを読み込ませることが
40     できます。</p>
41
42     <p>Unix 上では、読み込まれるコードは通常は共有オブジェクトファイル
43     (普通 <code>.so</code> という拡張子が付いています) からです。
44     Windows 上ではこのモジュールの拡張子は <code>.so</code> か <code>.dll</code>
45     です。</p>
46
47     <note type="warning"><title>警告</title>
48     <p>Apache 1.3 のモジュールを直接 Apache 2.0 で使うことはできません
49     ― モジュールは Apache 2.0 用に動的にロードされるか、
50     直接組み込まれるために修正されなければなりません。</p>
51     </note>
52 </summary>
53
54 <section><title>Windows 用のロード可能なモジュールを作成する</title>
55
56     <note><title>注</title>
57     <p>Apache 1.3.15 と 2.0 とで Windows のモジュール名の形式は変更されました
58     ― モジュールは mod_foo.so という名前になりました。</p>
59
60     <p>まだ mod_so で ApacheModuleFoo.dll という名前のモジュールも
61     ロードされますが、新しい名前の付け方を使う方が好まれます。モジュールを
62     2.0 用に移植しているのであれば、2.0 の習慣に合うように名前を
63     修正してください。</p></note>
64
65     <p>Apache のモジュール API は UNIX と Windows 間では変更されていません。
66     多くのモジュールは全く変更なし、もしくは簡単な変更により Windows 
67     で実行できるようになります。ただし、それ以外の Windows には無い Unix
68     アーキテクチャーの機能に依存したモジュールは動作しません。</p>
69
70     <p>モジュールが実際に動作するときは、
71     二つの方法のどちらかでサーバに追加することができます。まず、Unix
72     と同様にサーバにコンパイルして組み込むことができます。Windows
73     用の Apache は Unix 用の Apache にある <code>Configure</code>
74     プログラムがありませんので、モジュールのソースファイルを
75     ApacheCore プロジェクトファイルに追加し、シンボルを
76     <code>os\win32\modules.c</code> ファイルに追加する必要があります。</p>
77
78     <p>二つ目はモジュールを DLL としてコンパイルする方法です。
79     DLL は共有ライブラリで、実行時に
80     <code><directive>LoadModule</directive></code>
81     ディレクティブによりサーバに読み込むことができます。これらのモジュール
82     DLL はそのまま配布することが可能で、サーバを再コンパイルすることなく、Windows
83     用の Apache のすべてのインストールで実行することができます。</p>
84
85     <p>モジュール DLL を作成するためには、
86     モジュールの作成に小さな変更を行なう必要があります。
87     つまり、モジュールのレコード (これは後で作成されます。
88     以下を参照してください) が DLL からエクスポートされなければなりません。
89     これを行なうには、<code>AP_MODULE_DECLARE_DATA</code> (Apache
90     のヘッダファイルで定義されています) をモジュールのモジュールレコード
91     定義の部分に追加してください。たとえば、モジュールに</p>
92 <example>
93     module foo_module;
94 </example>
95
96     <p>があるとすると、それを次のもので置き換えてください。</p>
97 <example>
98     module AP_MODULE_DECLARE_DATA foo_module;
99 </example>
100
101     <p>Unix 上でもこのモジュールを
102     変更無しで使い続けられるように、このマクロは Windows
103     上でのみ効力を持ちます。<code>.DEF</code>
104     ファイルの方を良く知っているという場合は、
105     代わりにそれを使ってモジュールレコードを
106     エクスポートすることもできます。</p>
107     <p>さあ、あなたのモジュールの DLL を作成しましょう。これを、
108     libhttpd.lib 共有ライブラリがコンパイルされたときに作成された
109     ibhttpd.lib エクスポートライブラリとリンクしてください。この時に、
110     Apache のヘッダファイルが正しい位置にあるように、
111     コンパイラの設定を変える必要があるかもしれません。
112     このライブラリはサーバルートの modules ディレクトリにあります。
113     ビルド環境が正しく設定されるように、既存のモジュール用の .dsp を
114     取ってくるのが一番良いでしょう。もしくは、あなたの .dsp と
115     コンパイラとリンクのオプションを比較する、というものでも良いです。</p>
116
117     <p>これで DLL 版のモジュールが作成されているはずです。
118     サーバルートの <code>modules</code>
119     ディレクトリにモジュールを置いて、
120     <code><directive>LoadModule</directive></code>
121     ディレクティブを使って読み込んでください。</p>
122 </section>
123
124 <directivesynopsis>
125 <name>LoadFile</name>
126 <description>指定されたオブジェクトファイルやライブラリをリンクする</description>
127 <syntax>LoadFile <em>filename</em> [<em>filename</em>] ...</syntax>
128 <contextlist>
129 <context>server config</context>
130 </contextlist>
131
132 <usage>
133
134     <p>LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、
135     指定されたオブジェクトファイルやライブラリをリンクします。
136     これはモジュールが動作するために必要になるかもしれない追加の
137     コードを読み込むために使用されます。<em>Filename</em> は絶対パスか、<a
138     href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p>
139
140     <p>例:</p>
141
142     <example>LoadFile libexec/libxmlparse.so</example>
143
144 </usage>
145 </directivesynopsis>
146
147 <directivesynopsis>
148 <name>LoadModule</name>
149 <description>オブジェクトファイルやライブラリをリンクし、使用モジュールの
150 リストに追加する</description>
151 <syntax>LoadModule <em>module filename</em></syntax>
152 <contextlist>
153 <context>server config</context>
154 </contextlist>
155
156 <usage>
157
158     <p>LoadModule ディレクティブは <em>filename</em>
159     というオブジェクトファイルおよびライブラリをリンクし、<em>module</em>
160     という名前のモジュールの構造をアクティブなモジュールのリストに追加します。
161     <em>Module</em> はファイル中の <code>module</code>
162     型の外部変数の名前で、モジュールのドキュメントに
163     <a href="module-dict.html#moduleidentifier"
164     >モジュール識別子</a>として書かれているものです。例 :</p>
165
166     <example>
167       LoadModule status_module modules/mod_status.so
168     </example>
169
170     <p>これは ServerRoot の modules サブディレクトリから指定された名前の
171     モジュールをロードします。</p>
172 </usage>
173
174 </directivesynopsis>
175 </modulesynopsis>