1 <?xml version="1.0" encoding="iso-2022-jp" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
4 <!-- English Revision: 420990:587444 (outdated) -->
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
14 http://www.apache.org/licenses/LICENSE-2.0
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.
23 <manualpage metafile="dso.xml.meta">
25 <title>
\e$BF0E*6&M-%*%V%8%'%/%H
\e(B (DSO)
\e$B%5%]!<%H
\e(B</title>
28 <p>Apache HTTP
\e$B%5!<%P$O%b%8%e!<%k2=$5$l$?%W%m%0%i%`$G!"
\e(B
29 \e$B4IM}<T$,%b%8%e!<%k$rA*Br$9$k$3$H$G%5!<%P$KAH$_9~$`5!G=$rA*$V$3$H$,$G$-$^$9!#
\e(B
30 \e$B%b%8%e!<%k$O%5!<%P$,%S%k%I$5$l$k$H$-$K
\e(B <program>httpd</program>
\e$B%P%$%J%j$K
\e(B
31 \e$B@EE*$KAH$_9~$`$3$H$,$G$-$^$9!#$b$7$/$O!"
\e(B<program>httpd</program>
\e$B%P%$%J%j$H$O
\e(B
32 \e$BJL$KB8:_$9$kF0E*6&M-%*%V%8%'%/%H
\e(B (
\e$BLuCm
\e(B: Dynamic Shared Object)
33 (DSO)
\e$B$H$7$F%3%s%Q%$%k$9$k$3$H$b
\e(B
34 \e$B$G$-$^$9!#
\e(BDSO
\e$B%b%8%e!<%k$O%5!<%P$,%S%k%I$5$l$k$H$-$K%3%s%Q%$%k$7$?$j!"
\e(B
35 Apache
\e$B3HD%%D!<%k
\e(B (<program>apxs</program>)
\e$B$r
\e(B
36 \e$B;H$C$F8e$G%3%s%Q%$%k$7$FDI2C$7$?$j$G$-$^$9!#
\e(B</p>
38 <p>
\e$B$3$NJ8=q$O
\e(B DSO
\e$B%b%8%e!<%k$N;H$$J}$H!";EAH$_$K$D$$$F
\e(B
39 \e$B@bL@$7$^$9!#
\e(B</p>
43 <section id="implementation"><title>
\e$B<BAu
\e(B</title>
47 <module>mod_so</module>
50 <directive module="mod_so">LoadModule</directive>
54 <p>
\e$B8D!9$N
\e(B Apache
\e$B%b%8%e!<%k$r%m!<%I$9$k$?$a$N
\e(B DSO
\e$B%5%]!<%H$O
\e(B
55 <module>mod_so.c</module>
\e$B$H$$$&%b%8%e!<%k$N5!G=$K4p$E$$$F$$$^$9!#
\e(B
56 \e$B$3$N%b%8%e!<%k
\e(B
\e$B$O
\e(B Apache
\e$B$N%3%"$K@EE*$KAH$_9~$^$l$F$$$kI,MW$,$"$j$^$9!#
\e(B
57 \e$B$=$l$O
\e(B <module>core.c</module>
\e$B0J30$G$O
\e(B DSO
\e$B$K$G$-$J$$M#0l$N
\e(B
58 \e$B%b%8%e!<%k$G$9!#;v<B>e!"B>$N$9$Y$F$N
\e(B Apache
\e$B$N%b%8%e!<%k$O!"
\e(B
59 <a href="install.html">
\e$B%$%s%9%H!<%k$NJ8=q
\e(B</a>
\e$B$G@bL@$5$l$F$$$k$h$&$K!"
\e(B
60 <program>configure</program>
\e$B$N
\e(B
61 <code>--enable-<em>module</em>=shared</code>
\e$B%*%W%7%g%s$G$=$l$>$l$r
\e(B
62 DSO
\e$B%S%k%I$K$9$k$3$H$K$h$j!"
\e(BDSO
\e$B%b%8%e!<%k$K$9$k$3$H$,$G$-$^$9!#
\e(B
63 <code>mod_foo.so</code>
\e$B$N$h$&$J
\e(B DSO
\e$B$K%b%8%e!<%k$,%3%s%Q%$%k$5$l$l$P!"
\e(B
64 <code>httpd.conf</code>
\e$B%U%!%$%kCf$G
\e(B <module>mod_so</module>
\e$B$N
\e(B
65 <directive module="mod_so">LoadModule</directive>
66 \e$B%G%#%l%/%F%#%V$r;H$&$3$H$G%5!<%P$N5/F0$d:F5/F0;~$K$3$N%b%8%e!<%k$r
\e(B
67 \e$B%m!<%I$9$k$h$&$K$G$-$^$9!#
\e(B</p>
69 <p>Apache
\e$B%b%8%e!<%kMQ$N
\e(B (
\e$BFC$K%5!<%I%Q!<%F%#%b%8%e!<%k$N
\e(B) DSO
\e$B%U%!%$%k$N
\e(B
70 \e$B:n@.$r4JC1$K$9$k$?$a$K!"
\e(B<program>apxs</program>
71 (<dfn>APache eXtenSion</dfn>)
\e$B$H$$$&?7$7$$%5%]!<%H%W%m%0%i%`$,$"$j$^$9!#
\e(B
72 Apache
\e$B$N%=!<%9%D%j!<$N
\e(B<em>
\e$B30$G
\e(B</em> DSO
\e$B%b%8%e!<%k$r%S%k%I$9$k$?$a$K
\e(B
73 \e$B;H$&$3$H$,$G$-$^$9!#H/A[$OC1=c$G$9
\e(B: Apache
\e$B$N%$%s%9%H!<%k;~$N
\e(B
74 <program>configure</program>
\e$B!"
\e(B<code>make install</code>
\e$B$N$H$-$K
\e(B Apache
\e$B$N
\e(B
75 C
\e$B%X%C%@$r%$%s%9%H!<%k$7!"
\e(BDSO
\e$B%S%k%IMQ$N%W%i%C%H%U%)!<%`0MB8$N
\e(B
76 \e$B%3%s%Q%$%i$H%j%s%+$N%U%i%0$r
\e(B <program>apxs</program>
\e$B%W%m%0%i%`$KDI2C$7$^$9!#
\e(B
77 \e$B$3$l$K$h$j!"%f!<%6$,
\e(B Apache
\e$B$NG[I[%=!<%9%D%j!<$J$7$G!"$5$i$K
\e(B
78 DSO
\e$B%5%]!<%H$N$?$a$N%W%i%C%H%U%)!<%`0MB8$N%3%s%Q%$%i$d%j%s%+$N
\e(B
79 \e$B%U%i%0$r$$$8$k$3$H$J$/
\e(B Apache
\e$B$N%b%8%e!<%k$N%=!<%9$r%3%s%Q%$%k
\e(B
80 \e$B$G$-$k$h$&$K$J$j$^$9!#
\e(B</p>
83 <section id="usage"><title>
\e$B;HMQK!$N35MW
\e(B</title>
85 <p>Apache 2.2
\e$B$N
\e(B DSO
\e$B5!G=$N35N,$rCN$k$3$H$,$G$-$k$?$a$N!"
\e(B
86 \e$BC;$/4J7i$J35MW$G$9
\e(B:</p>
90 <em>
\e$BG[I[$5$l$F$$$k
\e(B</em> Apache
\e$B%b%8%e!<%k!"2>$K
\e(B <code>mod_foo.c</code>
91 \e$B$H$7$F!"$=$l$r
\e(B DSO <code>mod_foo.so</code>
\e$B$K%S%k%I!"%$%s%9%H!<%k
\e(B:
94 $ ./configure --prefix=/path/to/install --enable-foo=shared<br />
100 <em>
\e$B%5!<%I%Q!<%F%#
\e(B</em> Apache
\e$B%b%8%e!<%k!"2>$K
\e(B <code>mod_foo.c</code>
101 \e$B$H$7$F!"$=$l$r
\e(B DSO <code>mod_foo.so</code>
\e$B$K%S%k%I!"%$%s%9%H!<%k
\e(B:
104 $ ./configure --add-module=<var>module_type</var>:/path/to/3rdparty/mod_foo.c \<br />
106 --enable-foo=shared<br />
113 \e$B6&M-%b%8%e!<%k$N
\e(B <em>
\e$B8e!9$N%$%s%9%H!<%k
\e(B</em>
\e$B$N$?$a$K
\e(B
114 Apache
\e$B$r@_Dj
\e(B:
117 $ ./configure --enable-so<br />
123 <em>
\e$B%5!<%I%Q!<%F%#
\e(B</em> Apache
\e$B%b%8%e!<%k!"2>$K
\e(B <code>mod_foo.c</code>
124 \e$B$H$7$F!"$=$l$r
\e(B <program>apxs</program>
\e$B$r;H$C$F
\e(B
125 Apache
\e$B%=!<%9%D%j!<$N
\e(B<em>
\e$B30$G
\e(B</em> DSO
\e$B$K%S%k%I!"%$%s%9%H!<%k
\e(B:
128 $ cd /path/to/3rdparty<br />
129 $ apxs -c mod_foo.c<br />
130 $ apxs -i -a -n foo mod_foo.la
135 <p>
\e$B$I$N>l9g$K$*$$$F$b!"6&M-%b%8%e!<%k$r%3%s%Q%$%k$7$?8e$G!"
\e(B
136 <code>httpd.conf</code>
\e$B$G
\e(B
137 <directive module="mod_so">LoadModule</directive>
138 \e$B%G%#%l%/%F%#%V$r;H$C$F
\e(B Apache
\e$B$,%b%8%e!<%k$r;HMQ$9$k$h$&$K
\e(B
139 \e$B$7$J$1$l$P$J$j$^$;$s!#
\e(B</p>
142 <section id="background"><title>
\e$BGX7J
\e(B</title>
144 <p>
\e$B:G6a$N
\e(B Unix
\e$B7O$N
\e(B OS
\e$B$K$O
\e(B <em>
\e$BF0E*6&M-%*%V%8%'%/%H
\e(B</em> (DSO)
145 \e$B$NF0E*%j%s%/
\e(B/
\e$B%m!<%I$H$$$&5$$N$-$$$?5!9=$,
\e(B
146 \e$BB8:_$7$^$9!#$3$l$O!"<B9T;~$K%W%m%0%i%`$N%"%I%l%96u4V$K
\e(B
147 \e$B%m!<%I$G$-$k$h$&$JFCJL$J7A<0$G%W%m%0%i%`$r%S%k%I$9$k$3$H$r
\e(B
148 \e$B2DG=$K$7$^$9!#
\e(B</p>
150 <p>
\e$B$3$N%m!<%I$OFs$D$NJ}K!$G9T$J$&$3$H$,$G$-$^$9
\e(B:
\e$B<B9T%W%m%0%i%`$,
\e(B
151 \e$B5/F0$5$l$?$H$-$K
\e(B <code>ld.so</code>
\e$B$H$$$&%7%9%F%`%W%m%0%i%`
\e(B
152 \e$B$K$h$j<+F0E*$K9T$J$o$l$kJ}K!$H!"<B9T%W%m%0%i%`Cf$+$i!"%7%9%F%`%3!<%k
\e(B
153 <code>dlopen()/dlsym()</code>
\e$B$K$h$k
\e(B Unix
\e$B%m!<%@$X$N
\e(B
154 \e$B%W%m%0%i%`%7%9%F%`$N%$%s%?%U%'!<%9$r;H$C$F<jF0$G9T$J$&J}K!$H$,
\e(B
155 \e$B$"$j$^$9!#
\e(B</p>
157 <p>
\e$B:G=i$NJ}K!$G$O
\e(B DSO
\e$B$OIaDL$O
\e(B<em>
\e$B6&M-%i%$%V%i%j
\e(B</em>
\e$B$d
\e(B <em>DSO
158 \e$B%i%$%V%i%j
\e(B</em>
\e$B$H8F$P$l$F$$$F!"
\e(BDSO
\e$B$NL>A0$O
\e(B
159 <code>libfoo.so</code>
\e$B$d
\e(B <code>libfoo.so.1.2</code>
\e$B$N$h$&$K$J$C$F$$$^$9!#
\e(B
160 \e$B$3$l$i$O%7%9%F%`%G%#%l%/%H%j
\e(B (
\e$BDL>o
\e(B <code>/usr/lib</code>)
\e$B$KB8:_$7!"
\e(B
161 \e$B<B9T%W%m%0%i%`$X$N%j%s%/$O%S%k%I;~$K
\e(B <code>-lfoo</code>
\e$B$r%j%s%+$K
\e(B
162 \e$B;XDj$9$k$3$H$G3NN)$5$l$^$9!#$3$l$K$h$j%i%$%V%i%j$X$N;2>H$,<B9T%W%m%0%i%`$N
\e(B
163 \e$B%U%!%$%k$K=q$-9~$^$l$F!"5/F0;~$K
\e(B Unix
\e$B$N%m!<%@$,
\e(B <code>/usr/lib</code>
\e$B$d!"
\e(B
164 \e$B%j%s%+$N
\e(B <code>-R</code>
\e$B$N$h$&$J%*%W%7%g%s$K$h$j%O!<%I%3!<%I$5$l$?%Q%9!"
\e(B
165 \e$B4D6-JQ?t
\e(B <code>LD_LIBRARY_PATH</code>
\e$B$K$h$j@_Dj$5$l$?%Q%9!"$NCf$+$i
\e(B
166 <code>libfoo.so</code>
\e$B$N>l=j$r8+$D$1$k$3$H$,$G$-$^$9!#$=$l$+$i!"
\e(B
167 \e$B<B9T%W%m%0%i%`Cf$N
\e(B (
\e$B$^$@L$2r7h$N
\e(B)
\e$B%7%s%\%k$r
\e(B DSO
\e$B$K$"$k%7%s%\%k$G
\e(B
168 \e$B2r7h$7$^$9!#
\e(B</p>
170 <p>
\e$BIaDL$O<B9T%W%m%0%i%`Cf$N%7%s%\%k$O
\e(B DSO
\e$B$+$i$O;2>H$5$l$^$;$s
\e(B
171 (DSO
\e$B$O0lHLE*$J%3!<%I$K$h$k:FMxMQ2DG=$J%i%$%V%i%j$G$9$N$G
\e(B)
\e$B!#
\e(B
172 \e$B$G$9$+$i!"$5$i$J$k%7%s%\%k$N2r7h$OI,MW$"$j$^$;$s!#
\e(B
173 \e$B%7%s%\%k$O
\e(B Unix
\e$B%m!<%@$K$h$j40A4$J2r7h$,9T$J$o$l$^$9$N$G!"<B9T%U%!%$%k<+?H$O
\e(B
174 \e$B2?$b$9$kI,MW$,$"$j$^$;$s!#
\e(B(
\e$B<B:]$N$H$3$m!"@EE*$G$J$$J}K!$G%j%s%/$5$l$F$$$k
\e(B
175 \e$B$9$Y$F$N<B9T%W%m%0%i%`$KAH$_9~$^$l$F$$$k3+;OMQ$N%3!<%I$N0lIt$K
\e(B
176 <code>ld.so</code>
\e$B$r5/F0$9$k%3!<%I$,4^$^$l$F$$$^$9
\e(B)
\e$B!#$h$/;H$o$l$k
\e(B
177 \e$B%i%$%V%i%j$NF0E*%m!<%I$NMxE@$OL@$i$+$G$9!#%i%$%V%i%j$N%3!<%I$O
\e(B
178 \e$B%7%9%F%`%i%$%V%i%j$K
\e(B <code>libc.so</code>
\e$B$N$h$&$K$7$F0lEYJ]B8$9$k$@$1$G$h$/!"
\e(B
179 \e$B%W%m%0%i%`$N$?$a$KI,MW$J%G%#%9%/$NNN0h$r@aLs$9$k$3$H$,$G$-$^$9!#
\e(B</p>
181 <p>
\e$BFs$D$a$NJ}K!$G$O
\e(B DSO
\e$B$OIaDL$O
\e(B<em>
\e$B6&M-%*%V%8%'%/%H
\e(B</em>
\e$B$d
\e(B
182 <em>DSO
\e$B%U%!%$%k
\e(B</em>
\e$B$H8F$P$l$F$$$F!"G$0U$N3HD%;R$rIU$1$k$3$H$,$G$-$^$9
\e(B
183 (
\e$B$?$@$7!"I8=`E*$JL>A0$O
\e(B <code>foo.so</code>
\e$B$G$9
\e(B)
\e$B!#
\e(B
184 \e$B$3$l$i$N%U%!%$%k$ODL>o$O%W%m%0%i%`@lMQ$N%G%#%l%/%H%j$KCV$+$l!"
\e(B
185 \e$B$3$l$i$r;H$&<B9T%W%m%0%i%`$X$N%j%s%/$O<+F0E*$K$O$5$l$^$;$s!#
\e(B
186 \e$B$G$9$N$G!"<B9T%W%m%0%i%`$O
\e(B <code>dlopen()</code>
\e$B$r;H$C$F
\e(B
187 \e$B<B9T;~$K<jF0$G
\e(B DSO
\e$B$r%W%m%0%i%`$N%"%I%l%96u4V$K%m!<%I$9$kI,MW$,$"$j$^$9!#
\e(B
188 \e$B$3$N;~E@$G$O<B9T%W%m%0%i%`$KBP$7$F
\e(B DSO
\e$B$N%7%s%\%k$N2r7h$O9T$J$o$l$^$;$s!#
\e(B
189 \e$B$7$+$7!"$=$NBe$o$j$K
\e(B Unix
\e$B$N%m!<%@$,
\e(B DSO
\e$B$N
\e(B (
\e$B$^$@L$2r7h$N
\e(B)
\e$B%7%s%\%k$r
\e(B
190 \e$B<B9T%W%m%0%i%`$K$h$j%(%/%9%]!<%H$5$l$?%7%s%\%k$H4{$K%m!<%I$5$l$?
\e(B
191 DSO
\e$B%i%$%V%i%j$K$h$j%(%/%9%]!<%H$5$l$?%7%s%\%k
\e(B (
\e$BFC$K!"$I$3$K$G$b$"$k
\e(B
192 <code>libc.so</code>
\e$B$N$9$Y$F$N%7%s%\%k
\e(B)
\e$B$G<+F0E*$K2r7h$7$^$9!#
\e(B
193 \e$B$3$&$9$k$3$H$G!"
\e(BDSO
\e$B$O:G=i$+$i@EE*$K%j%s%/$5$l$F$$$?$+$N$h$&$K!"
\e(B
194 \e$B<B9T%W%m%0%i%`$N%7%s%\%k$rCN$k$3$H$,$G$-$^$9!#
\e(B</p>
196 <p>
\e$B:G8e$K!"
\e(BDSO
\e$B$N
\e(B API
\e$B$rMxE@$r@8$+$9$?$a$K!"%W%m%0%i%`$O
\e(B
197 \e$B8e$G%G%#%9%Q%C%A%F!<%V%k
\e(B<em>
\e$B$J$I
\e(B</em>
\e$B$G%7%s%\%k$r;H$&$3$H$,$G$-$k$h$&$K!"
\e(B
198 <code>dlsym()</code>
\e$B$r;H$C$F$$$/$D$+$N%7%s%\%k$r2r7h$7$^$9!#
\e(B
199 \e$B$9$J$o$A
\e(B:
\e$B<B9T%W%m%0%i%`$OI,MW$J$9$Y$F$N%7%s%\%k$r<jF0$G2r7h$7$J$1$l$P
\e(B
200 \e$B$J$j$^$;$s!#$3$N5!9=$NMxE@$O%W%m%0%i%`$N%*%W%7%g%J%k$JItJ,$O
\e(B
201 \e$BI,MW$K$J$k$^$G%m!<%I$9$kI,MW$,$J$$
\e(B (
\e$B$@$+$i%a%b%j$b>CHq$7$J$$
\e(B)
202 \e$B$3$H$G$9!#I,MW$J$i$P!"4pK\%W%m%0%i%`$N5!G=$r3HD%$9$k$?$a$K
\e(B
203 \e$B$3$l$i$NItJ,$rF0E*$K%m!<%I$9$k$3$H$,$G$-$^$9!#
\e(B</p>
205 <p>
\e$B$3$N
\e(B DSO
\e$B5!9=$O4JC1$J$h$&$K8+$($^$9$,!">/$J$/$H$b0l$DFq$7$$E@$,
\e(B
206 \e$B$"$j$^$9
\e(B:
\e$B%W%m%0%i%`$r3HD%$9$k$?$a$K
\e(B DSO
\e$B$r;H$C$F$$$k$H$-$K!"
\e(B
207 DSO
\e$B$,<B9T%W%m%0%i%`$+$i%7%s%\%k$r2r7h$9$kE@$G$9
\e(B (
\e$BFsHVL\$NJ}K!
\e(B)
\e$B!#
\e(B
208 \e$B$3$l$O$J$<$G$7$g$&$+!#$=$l$O!"
\e(BDSO
\e$B$N%7%s%\%k$r<B9T%W%m%0%i%`$N
\e(B
209 \e$B%7%s%\%k$+$i!V5U2r7h!W$9$k$H$$$&$N$O%i%$%V%i%j$N@_7W
\e(B
210 (
\e$B%i%$%V%i%j$O$=$l$r;HMQ$9$k%W%m%0%i%`$N$3$H$O2?$b
\e(B
211 \e$BCN$i$J$$
\e(B)
\e$B$KH?$7$F$$$F!"$3$N5!G=$O$9$Y$F$N%W%i%C%H%U%)!<%`$K
\e(B
212 \e$B$"$k$o$1$G$O$J$/!"I8=`2=$b$5$l$F$$$J$$$+$i$G$9!#
\e(B
213 \e$B<B:]$K$O<B9T%W%m%0%i%`$N%0%m!<%P%k$J%7%s%\%k$O:F%(%/%9%]!<%H$5$l$k$3$H$O
\e(B
214 \e$B$"$^$j$J$/!"
\e(BDSO
\e$B$+$i;H$&$3$H$,$G$-$^$;$s!#%j%s%+$K%0%m!<%P%k%7%s%\%k$9$Y$F$r
\e(B
215 \e$B%(%/%9%]!<%H$9$k$h$&$K$5$;$kJ}K!$r8+$D$1$k$3$H$,!"<B9T;~$K%W%m%0%i%`$r
\e(B
216 \e$B3HD%$9$k$?$a$K
\e(B DSO
\e$B$r;H$&$H$-$N0lHV$NLdBj$G$9!#
\e(B</p>
218 <p>
\e$B6&M-%i%$%V%i%j$N%"%W%m!<%A$,IaDL$NJ}K!$G$9!#
\e(BDSO
\e$B5!9=$O$=$N$?$a$K
\e(B
219 \e$B@_7W$5$l$?$b$N$G$9$+$i!#$7$?$,$C$F!"$=$NJ}K!$O%*%Z%l!<%F%#%s%0%7%9%F%`$,
\e(B
220 \e$BDs6!$9$k$[$H$s$I$9$Y$F$N<oN`$N%i%$%V%i%j$G;H$o$l$F$$$^$9!#
\e(B
221 \e$B0lJ}!"%W%m%0%i%`$N3HD%$N$?$a$K6&M-%*%V%8%'%/%H$r;HMQ$9$k!"$H$$$&J}$O
\e(B
222 \e$B$"$^$j;H$o$l$F$$$^$;$s!#
\e(B</p>
224 <p>1998
\e$BG/$N;~E@$G!"<B9T;~$K<B:]$K5!G=3HD%$N$?$a$K
\e(B DSO
\e$B5!9=$r;H$C$F$$$k
\e(B
225 \e$B%=%U%H%&%'%"%Q%C%1!<%8$O>/$7$@$1$G$7$?
\e(B: Perl 5 (XS
\e$B5!9=$H
\e(B DnaLoader
\e$B%b%8%e!<%k
\e(B
226 \e$B$K$h$k$b$N
\e(B)
\e$B!"
\e(BNetscape
\e$B%5!<%P
\e(B<em>
\e$B$J$I
\e(B</em>
\e$B$G$9!#
\e(BApache
\e$B$O$9$G$K
\e(B
227 \e$B%b%8%e!<%k$N35G0$r;H$C$F5!G=3HD%$r$7$F$$$F!"FbItE*$K%G%#%9%Q%C%A%j%9%H$K
\e(B
228 \e$B4p$E$$$?30It%b%8%e!<%k$N
\e(B Apache
\e$B%3%"5!G=$X$N%j%s%/$r9T$J$C$F$$$^$7$?$N$G!"
\e(B
229 \e$B%P!<%8%g%s
\e(B 1.3
\e$B$+$i!"
\e(BApache
\e$B$b
\e(B DSO
\e$B5!9=$r;H$&Cg4V$K$J$j$^$7$?!#
\e(B
230 Apache
\e$B$O<B9T;~$K
\e(B DSO
\e$B$r;H$C$F%b%8%e!<%k$r%m!<%I$9$k$h$&$K$9$G$K
\e(B
231 \e$B1?L?IU$1$i$l$F$$$?$N$G$9!#
\e(B</p>
234 <section id="advantages"><title>
\e$BMxE@$H7gE@
\e(B</title>
236 <p>
\e$B>e5-$N
\e(B DSO
\e$B$K4p$E$$$?5!G=$O0J2<$NMxE@$,$"$j$^$9
\e(B:</p>
239 <li>
\e$B<B:]$N%5!<%P%W%m%;%9$rAH$_N)$F$k$?$a$K!"
\e(B
240 \e$B%S%k%I;~$K
\e(B <code>configure</code>
\e$B$N%*%W%7%g%s$r;H$&Be$o$j$K
\e(B
241 \e$B<B9T;~$K
\e(B <code>httpd.conf</code>
\e$B$N@_DjMQ%3%^%s%I
\e(B
242 <directive module="mod_so">LoadModule</directive>
243 \e$B$r;H$&$3$H$,$G$-$^$9$N$G!"%5!<%P%Q%C%1!<%8$N=@Fp@-$,9b$^$j$^$7$?!#
\e(B
244 \e$B$?$H$($P!"0l$D$N
\e(B Apache
\e$B$N%$%s%9%H!<%k$+$i
\e(B
245 \e$B0c$&9=@.$N%5!<%P
\e(B (
\e$BI8=`HG$H
\e(B SSL
\e$BHG!":G>.9=@.$H3HD%HG
\e(B [mod_perl, PHP3]
246 <em>
\e$B$J$I
\e(B</em>)
\e$B$r<B9T$9$k$3$H$,$G$-$^$9!#
\e(B</li>
248 <li>
\e$B%$%s%9%H!<%k$N8e$G$"$C$F$b!"%5!<%P$N%Q%C%1!<%8$r%5!<%I%Q!<%F%#
\e(B
249 \e$B%b%8%e!<%k$G4JC1$K3HD%$G$-$k$h$&$K$J$j$^$7$?!#$3$l$O!"
\e(BApache
\e$B%3%"
\e(B
250 \e$B%Q%C%1!<%8$H!"
\e(BPHP3, mod_perl, mod_fastcgi <em>
\e$B$J$I
\e(B</em>
\e$B$NDI2C$N
\e(B
251 \e$B%Q%C%1!<%8$r:n@.$G$-$k$N$G!">/$J$/$H$b%Y%s%@$N%Q%C%1!<%84IM}<T$K$H$C$F
\e(B
252 \e$BBg$-$JMxE@$,$"$j$^$9!#
\e(B</li>
254 <li>Apache
\e$B%b%8%e!<%k$N3+H/$,4JC1$K$J$j$^$9!#
\e(B
255 \e$B$3$l$O
\e(B DSO
\e$B$H
\e(B <program>apxs</program>
\e$B$NAH$_9g$o$;$K$h$j!"
\e(BApache
\e$B%=!<%9%D%j!<$N
\e(B
256 \e$B30$G:n6H$G$-!"3+H/Cf$N%b%8%e!<%k$N?7$7$$%P!<%8%g%s$r
\e(B
257 \e$B<B9TCf$N
\e(B Apache
\e$B%5!<%P$KAH$_9~$`$?$a$K
\e(B <code>apxs -i</code>
\e$B$H
\e(B
258 <code>apachectl restart</code>
\e$B$r9T$J$&$@$1$GNI$/$J$k$+$i$G$9!#
\e(B</li>
261 <p>DSO
\e$B$K$O0J2<$N7gE@$,$"$j$^$9
\e(B:</p>
264 <li>
\e$B$9$Y$F$N%*%Z%l!<%F%#%s%0%7%9%F%`$,%W%m%0%i%`$N%"%I%l%96u4V$K
\e(B
265 \e$B%3!<%I$rF0E*%m!<%I$9$k$3$H$r%5%]!<%H$7$F$$$k$o$G$O$J$$$N$G!"
\e(B
266 \e$B%W%i%C%H%U%)!<%`$K$h$C$F$O
\e(B DSO
\e$B5!9=$O;H$($^$;$s!#
\e(B</li>
268 <li>Unix
\e$B$N%m!<%@$,%7%s%\%k$N2r7h$r$9$kI,MW$,$G$-$?$N$G!"
\e(B
269 \e$B$=$N%*!<%P%X%C%I$K$h$j%5!<%P$N5/F0;~4V$,Ls
\e(B 20%
\e$BCY$/$J$C$F$$$^$9!#
\e(B</li>
271 <li>
\e$B0LCVHs0MB8%3!<%I
\e(B (PIC) (
\e$BLuCm
\e(B position independent code)
\e$B$O
\e(B
272 \e$BAjBP%"%I%l%9$N$?$a$KJ#;($J%"%;%s%V%i$N%H%j%C%/$,I,MW$J$3$H$,$"$j!"
\e(B
273 \e$B$=$l$OI,$:$7$b@dBP%"%I%l%9$HF1$8$/$i$$$NB.EY$,$G$k$o$1$G$O$"$j$^$;$s$N$G!"
\e(B
274 \e$B%W%i%C%H%U%)!<%`$K$h$C$F$O%5!<%P$N<B9TB.EY$,Ls
\e(B 5%
\e$BCY$/$J$j$^$9!#
\e(B</li>
276 <li>DSO
\e$B%b%8%e!<%k$O$9$Y$F$N%W%i%C%H%U%)!<%`$GB>$N
\e(B DSO
\e$B$K4p$E$$$?
\e(B
277 \e$B%i%$%V%i%j$KBP$7$F%j%s%/$G$-$k
\e(B (<code>ld -lfoo</code>)
278 \e$B$H$$$&$o$1$G$O$"$j$^$;$s$N$G
\e(B (
\e$B$?$H$($P!"
\e(Ba.out
\e$B$N%W%i%C%H%U%)!<%`$G$O
\e(B
279 \e$B$3$N5!G=$O$"$j$^$;$s$,!"
\e(BELF
\e$B$N%W%i%C%H%U%)!<%`$K$O$"$j$^$9
\e(B)
\e$B!"
\e(B
280 \e$B$9$Y$F$N<oN`$N%b%8%e!<%k$K
\e(B DSO
\e$B5!9=$r;H$($k$o$1$G$O$"$j$^$;$s!#
\e(B
281 \e$B8@$$49$($k$H!"
\e(BDSO
\e$B%U%!%$%k$H$7$F%3%s%Q%$%k$5$l$?%b%8%e!<%k$N
\e(B
282 \e$B;H$($k%7%s%\%k$O!"
\e(B
283 Apache
\e$B$N%3%"$N%7%s%\%k!"
\e(BC
\e$B%i%$%V%i%j
\e(B (<code>libc</code>)
\e$B$H
\e(B
284 Apache
\e$B%3%"$,;H$C$F$$$kB>$N$9$Y$F$N@EE*$J%i%$%V%i%j$HF0E*%i%$%V%i%j$N
\e(B
285 \e$B%7%s%\%k!"
\e(BPIC
\e$B$K$h$k@EE*$J%i%$%V%i%j
\e(B (<code>libfoo.a</code>)
\e$B$N
\e(B
286 \e$B%7%s%\%k$N$_$K@)8B$5$l$^$9!#$=$NB>$N%3!<%I$r;H$&J}K!$O!"
\e(B
287 Apache
\e$B%3%"<+?H$,$9$G$K$=$N%3!<%I$X$N;2>H$,$"$k$h$&$K$9$k$+!"
\e(B
288 <code>dlopen ()</code>
\e$B$r;H$C$F%3!<%I$r<+J,<+?H$G%m!<%I$9$k$+$N
\e(B
289 \e$B$I$A$i$+$7$+$"$j$^$;$s!#
\e(B</li>