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: 1.3 -->
6 <manualpage metafile="dso.xml.meta">
8 <title>
\e$BF0E*6&M-%*%V%8%'%/%H
\e(B (DSO)
\e$B%5%]!<%H
\e(B</title>
11 <p>Apache HTTP
\e$B%5!<%P$O%b%8%e!<%k2=$5$l$?%W%m%0%i%`$G!"
\e(B
12 \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
13 \e$B%b%8%e!<%k$O%5!<%P$,%S%k%I$5$l$k$H$-$K
\e(B <code>httpd</code>
\e$B%P%$%J%j$K
\e(B
14 \e$B@EE*$KAH$_9~$`$3$H$,$G$-$^$9!#$b$7$/$O!"
\e(B<code>httpd</code>
\e$B%P%$%J%j$H$O
\e(B
15 \e$BJL$KB8:_$9$kF0E*6&M-%*%V%8%'%/%H
\e(B (
\e$BLuCm
\e(B: Dynamic Shared Object)
16 (DSO)
\e$B$H$7$F%3%s%Q%$%k$9$k$3$H$b
\e(B
17 \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
18 Apache
\e$B3HD%%D!<%k
\e(B (<a href="programs/apxs.html">apxs</a>)
\e$B$r
\e(B
19 \e$B;H$C$F8e$G%3%s%Q%$%k$7$FDI2C$7$?$j$G$-$^$9!#
\e(B</p>
21 <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
22 \e$B@bL@$7$^$9!#
\e(B</p>
26 <section id="implementation"><title>
\e$B<BAu
\e(B</title>
30 <module>mod_so</module>
33 <directive module="mod_so">LoadModule</directive>
37 <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
38 <module>mod_so.c</module>
\e$B$H$$$&%b%8%e!<%k$N5!G=$K4p$E$$$F$$$^$9!#
\e(B
39 \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
40 \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
41 \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
42 <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
43 <code>configure</code>
\e$B$N
\e(B
44 <code>--enable-<em>module</em>=shared</code>
\e$B%*%W%7%g%s$G$=$l$>$l$r
\e(B
45 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
46 <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
47 <code>httpd.conf</code>
\e$B%U%!%$%kCf$G
\e(B <module>mod_so</module>
\e$B$N
\e(B
48 <directive module="mod_so">LoadModule</directive>
49 \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
50 \e$B%m!<%I$9$k$h$&$K$G$-$^$9!#
\e(B</p>
52 <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
53 \e$B:n@.$r4JC1$K$9$k$?$a$K!"
\e(B<a href="programs/apxs.html">apxs</a>
54 (<em>APache eXtenSion</em>)
\e$B$H$$$&?7$7$$%5%]!<%H%W%m%0%i%`$,$"$j$^$9!#
\e(B
55 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
56 \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
57 <code>configure</code>
\e$B!"
\e(B<code>make install</code>
\e$B$N$H$-$K
\e(B Apache
\e$B$N
\e(B
58 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
59 \e$B%3%s%Q%$%i$H%j%s%+$N%U%i%0$r
\e(B <code>apxs</code>
\e$B%W%m%0%i%`$KDI2C$7$^$9!#
\e(B
60 \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
61 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
62 \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
63 \e$B$G$-$k$h$&$K$J$j$^$9!#
\e(B</p>
66 <section id="usage"><title>
\e$B;HMQK!$N35MW
\e(B</title>
68 <p>Apache 2.0
\e$B$N
\e(B DSO
\e$B5!G=$N35N,$rCN$k$3$H$,$G$-$k$?$a$N!"
\e(B
69 \e$BC;$/4J7i$J35MW$G$9
\e(B:</p>
73 <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>
74 \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:
77 $ ./configure --prefix=/path/to/install --enable-foo=shared<br />
83 <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>
84 \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:
87 $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br />
93 \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
94 Apache
\e$B$r@_Dj
\e(B:
97 $ ./configure --enable-so<br />
103 <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>
104 \e$B$H$7$F!"$=$l$r
\e(B <a href="programs/apxs.html">apxs</a>
\e$B$r;H$C$F
\e(B
105 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:
108 $ cd /path/to/3rdparty<br />
109 $ apxs -c mod_foo.c<br />
110 $ apxs -i -a -n foo mod_foo.la
115 <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
116 <code>httpd.conf</code>
\e$B$G
\e(B
117 <directive module="mod_so">LoadModule</directive>
118 \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
119 \e$B$7$J$1$l$P$J$j$^$;$s!#
\e(B</p>
122 <section id="background"><title>
\e$BGX7J
\e(B</title>
124 <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)
125 \e$B$NF0E*%j%s%/
\e(B/
\e$B%m!<%I$H$$$&5$$N$-$$$?5!9=$,
\e(B
126 \e$BB8:_$7$^$9!#$3$l$O!"<B9T;~$K%W%m%0%i%`$N%"%I%l%96u4V$K
\e(B
127 \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
128 \e$B2DG=$K$7$^$9!#
\e(B</p>
130 <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
131 \e$B5/F0$5$l$?$H$-$K
\e(B <code>lod.so</code>
\e$B$H$$$&%7%9%F%`%W%m%0%i%`
\e(B
132 \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
133 <code>dlopen()/dlsym()</code>
\e$B$K$h$k
\e(B Unix
\e$B%m!<%@$X$N
\e(B
134 \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
135 \e$B$"$j$^$9!#
\e(B</p>
137 <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
138 \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
139 <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
140 \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
141 \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
142 \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
143 \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
144 \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
145 \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
146 <code>libfoo.so</code>
\e$B$N>l=j$r8+$D$1$k$3$H$,$G$-$^$9!#$=$l$+$i!"
\e(B
147 \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
148 \e$B2r7h$7$^$9!#
\e(B</p>
150 <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
151 (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
152 \e$B$G$9$+$i!"$5$i$J$k%7%s%\%k$N2r7h$OI,MW$"$j$^$;$s!#
\e(B
153 \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
154 \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
155 \e$B$9$Y$F$N<B9T%W%m%0%i%`$KAH$_9~$^$l$F$$$k3+;OMQ$N%3!<%I$N0lIt$K
\e(B
156 <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
157 \e$B%i%$%V%i%j$NF0E*%m!<%I$NMxE@$OL@$i$+$G$9!#%i%$%V%i%j$N%3!<%I$O
\e(B
158 \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
159 \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>
161 <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
162 <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
163 (
\e$B$?$@$7!"I8=`E*$JL>A0$O
\e(B <code>foo.so</code>
\e$B$G$9
\e(B)
\e$B!#
\e(B
164 \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
165 \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
166 \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
167 \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
168 \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
169 \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
170 \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
171 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
172 <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
173 \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
174 \e$B<B9T%W%m%0%i%`$N%7%s%\%k$rCN$k$3$H$,$G$-$^$9!#
\e(B</p>
176 <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
177 \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
178 <code>dlsym()</code>
\e$B$r;H$C$F$$$/$D$+$N%7%s%\%k$r2r7h$7$^$9!#
\e(B
179 \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
180 \e$B$J$j$^$;$s!#$3$N5!9=$NMxE@$O%W%m%0%i%`$N%*%W%7%g%J%k$JItJ,$O
\e(B
181 \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)
182 \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
183 \e$B$3$l$i$NItJ,$rF0E*$K%m!<%I$9$k$3$H$,$G$-$^$9!#
\e(B</p>
185 <p>
\e$B$3$N
\e(B DSO
\e$B5!9=$O4JC1$J$h$&$K8+$($^$9$,!">/$J$/$H$b0l$DFq$7$$E@$,
\e(B
186 \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
187 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
188 \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
189 \e$B%7%s%\%k$+$i!V5U2r7h!W$9$k$H$$$&$N$O%i%$%V%i%j$N@_7W
\e(B
190 (
\e$B%i%$%V%i%j$O$=$l$r;HMQ$9$k%W%m%0%i%`$N$3$H$O2?$b
\e(B
191 \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
192 \e$B$"$k$o$1$G$O$J$/!"I8=`2=$b$5$l$F$$$J$$$+$i$G$9!#
\e(B
193 \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
194 \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
195 \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
196 \e$B3HD%$9$k$?$a$K
\e(B DSO
\e$B$r;H$&$H$-$N0lHV$NLdBj$G$9!#
\e(B</p>
198 <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
199 \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
200 \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
201 \e$B0lJ}!"%W%m%0%i%`$N3HD%$N$?$a$K6&M-%*%V%8%'%/%H$r;HMQ$9$k!"$H$$$&J}$O
\e(B
202 \e$B$"$^$j;H$o$l$F$$$^$;$s!#
\e(B</p>
204 <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
205 \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
206 \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
207 \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
208 \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
209 \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
210 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
211 \e$B1?L?IU$1$i$l$F$$$?$N$G$9!#
\e(B</p>
214 <section id="advantages"><title>
\e$BMxE@$H7gE@
\e(B</title>
216 <p>
\e$B>e5-$N
\e(B DSO
\e$B$K4p$E$$$?5!G=$O0J2<$NMxE@$,$"$j$^$9
\e(B:</p>
219 <li>
\e$B<B:]$N%5!<%P%W%m%;%9$rAH$_N)$F$k$?$a$K!"
\e(B
220 \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
221 \e$B<B9T;~$K
\e(B <code>httpd.conf</code>
\e$B$N@_DjMQ%3%^%s%I
\e(B
222 <directive module="mod_so">LoadModule</directive>
223 \e$B$r;H$&$3$H$,$G$-$^$9$N$G!"%5!<%P%Q%C%1!<%8$N=@Fp@-$,9b$^$j$^$7$?!#
\e(B
224 \e$B$?$H$($P!"0l$D$N
\e(B Apache
\e$B$N%$%s%9%H!<%k$+$i
\e(B
225 \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]
226 <em>
\e$B$J$I
\e(B</em>)
\e$B$r<B9T$9$k$3$H$,$G$-$^$9!#
\e(B</li>
228 <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
229 \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
230 \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
231 \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
232 \e$BBg$-$JMxE@$,$"$j$^$9!#
\e(B</li>
234 <li>Apache
\e$B%b%8%e!<%k$N3+H/$,4JC1$K$J$j$^$9!#
\e(B
235 \e$B$3$l$O
\e(B DSO/<code>apxs</code>
\e$B$NAH$_9g$o$;$K$h$j!"
\e(BApache
\e$B%=!<%9%D%j!<$N
\e(B
236 \e$B30$G:n6H$G$-!"3+H/Cf$N%b%8%e!<%k$N?7$7$$%P!<%8%g%s$r
\e(B
237 \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
238 <code>apachectl restart</code>
\e$B$r9T$J$&$@$1$GNI$/$J$k$+$i$G$9!#
\e(B</li>
241 <p>DSO
\e$B$K$O0J2<$N7gE@$,$"$j$^$9
\e(B:</p>
244 <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
245 \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
246 \e$B%W%i%C%H%U%)!<%`$K$h$C$F$O
\e(B DSO
\e$B5!9=$O;H$($^$;$s!#
\e(B</li>
248 <li>Unix
\e$B$N%m!<%@$,%7%s%\%k$N2r7h$r$9$kI,MW$,$G$-$?$N$G!"
\e(B
249 \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>
251 <li>
\e$B0LCVHs0MB8%3!<%I
\e(B (PIC) (
\e$BLuCm
\e(B position independent code)
\e$B$O
\e(B
252 \e$BAjBP%"%I%l%9$N$?$a$KJ#;($J%"%;%s%V%i$N%H%j%C%/$,I,MW$J$3$H$,$"$j!"
\e(B
253 \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
254 \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>
256 <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
257 \e$B%i%$%V%i%j$KBP$7$F%j%s%/$G$-$k
\e(B (<code>ld -lfoo</code>)
258 \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
259 \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
260 \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
261 \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
262 \e$B;H$($k%7%s%\%k$O!"
\e(B
263 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
264 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
265 \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
266 \e$B%7%s%\%k$N$_$K@)8B$5$l$^$9!#$=$NB>$N%3!<%I$r;H$&J}K!$O!"
\e(B
267 Apache
\e$B%3%"<+?H$,$9$G$K$=$N%3!<%I$X$N;2>H$,$"$k$h$&$K$9$k$+!"
\e(B
268 <code>dlopen ()</code>
\e$B$r;H$C$F%3!<%I$r<+J,<+?H$G%m!<%I$9$k$+$N
\e(B
269 \e$B$I$A$i$+$7$+$"$j$^$;$s!#
\e(B</li>