blob: 271aa7554e86b9ccf39e2055563ee06ec4b1169c [file] [log] [blame]
<?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>ưŪ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È (DSO) ¥µ¥Ý¡¼¥È - 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.1</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP ¥µ¡¼¥Ð</a> &gt; <a href="http://httpd.apache.org/docs-project/">¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó</a> &gt; <a href="./">¥Ð¡¼¥¸¥ç¥ó 2.1</a></div><div id="page-content"><div id="preamble"><h1>ưŪ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È (DSO) ¥µ¥Ý¡¼¥È</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/dso.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<p>Apache HTTP ¥µ¡¼¥Ð¤Ï¥â¥¸¥å¡¼¥ë²½¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ç¡¢
´ÉÍý¼Ô¤¬¥â¥¸¥å¡¼¥ë¤òÁªÂò¤¹¤ë¤³¤È¤Ç¥µ¡¼¥Ð¤ËÁȤ߹þ¤àµ¡Ç½¤òÁª¤Ö¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥â¥¸¥å¡¼¥ë¤Ï¥µ¡¼¥Ð¤¬¥Ó¥ë¥É¤µ¤ì¤ë¤È¤­¤Ë <code>httpd</code> ¥Ð¥¤¥Ê¥ê¤Ë
ÀÅŪ¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤·¤¯¤Ï¡¢<code>httpd</code> ¥Ð¥¤¥Ê¥ê¤È¤Ï
Ê̤˸ºß¤¹¤ëưŪ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È (ÌõÃí: Dynamic Shared Object)
(DSO) ¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â
¤Ç¤­¤Þ¤¹¡£DSO ¥â¥¸¥å¡¼¥ë¤Ï¥µ¡¼¥Ð¤¬¥Ó¥ë¥É¤µ¤ì¤ë¤È¤­¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤ê¡¢
Apache ³ÈÄ¥¥Ä¡¼¥ë (<a href="programs/apxs.html">apxs</a>) ¤ò
»È¤Ã¤Æ¸å¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤ÆÄɲä·¤¿¤ê¤Ç¤­¤Þ¤¹¡£</p>
<p>¤³¤Îʸ½ñ¤Ï DSO ¥â¥¸¥å¡¼¥ë¤Î»È¤¤Êý¤È¡¢»ÅÁȤߤˤĤ¤¤Æ
ÀâÌÀ¤·¤Þ¤¹¡£</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#implementation">¼ÂÁõ</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#usage">»ÈÍÑË¡¤Î³µÍ×</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#background">ÇØ·Ê</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#advantages">ÍøÅÀ¤È·çÅÀ</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="implementation" id="implementation">¼ÂÁõ</a></h2>
<table class="related"><tr><th>´ØÏ¢¥â¥¸¥å¡¼¥ë</th><th>´ØÏ¢¥Ç¥£¥ì¥¯¥Æ¥£¥Ö</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_so.html">mod_so</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code></li></ul></td></tr></table>
<p>¸Ä¡¹¤Î Apache ¥â¥¸¥å¡¼¥ë¤ò¥í¡¼¥É¤¹¤ë¤¿¤á¤Î DSO ¥µ¥Ý¡¼¥È¤Ï
<code class="module"><a href="./mod/mod_so.c.html">mod_so.c</a></code> ¤È¤¤¤¦¥â¥¸¥å¡¼¥ë¤Îµ¡Ç½¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥â¥¸¥å¡¼¥ë ¤Ï Apache ¤Î¥³¥¢¤ËÀÅŪ¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤½¤ì¤Ï <code class="module"><a href="./mod/core.c.html">core.c</a></code> °Ê³°¤Ç¤Ï DSO ¤Ë¤Ç¤­¤Ê¤¤Í£°ì¤Î
¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£»ö¼Â¾å¡¢Â¾¤Î¤¹¤Ù¤Æ¤Î Apache ¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢
<a href="install.html">¥¤¥ó¥¹¥È¡¼¥ë¤Îʸ½ñ</a>¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢
<code>configure</code> ¤Î
<code>--enable-<em>module</em>=shared</code> ¥ª¥×¥·¥ç¥ó¤Ç¤½¤ì¤¾¤ì¤ò
DSO ¥Ó¥ë¥É¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢DSO ¥â¥¸¥å¡¼¥ë¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
<code>mod_foo.so</code> ¤Î¤è¤¦¤Ê DSO ¤Ë¥â¥¸¥å¡¼¥ë¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ì¤Ð¡¢
<code>httpd.conf</code> ¥Õ¥¡¥¤¥ëÃæ¤Ç <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> ¤Î
<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò»È¤¦¤³¤È¤Ç¥µ¡¼¥Ð¤Îµ¯Æ°¤äºÆµ¯Æ°»þ¤Ë¤³¤Î¥â¥¸¥å¡¼¥ë¤ò
¥í¡¼¥É¤¹¤ë¤è¤¦¤Ë¤Ç¤­¤Þ¤¹¡£</p>
<p>Apache ¥â¥¸¥å¡¼¥ëÍѤΠ(Æä˥µ¡¼¥É¥Ñ¡¼¥Æ¥£¥â¥¸¥å¡¼¥ë¤Î) DSO ¥Õ¥¡¥¤¥ë¤Î
ºîÀ®¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢<a href="programs/apxs.html">apxs</a>
(<em>APache eXtenSion</em>) ¤È¤¤¤¦¿·¤·¤¤¥µ¥Ý¡¼¥È¥×¥í¥°¥é¥à¤¬¤¢¤ê¤Þ¤¹¡£
Apache ¤Î¥½¡¼¥¹¥Ä¥ê¡¼¤Î<em>³°¤Ç</em> DSO ¥â¥¸¥å¡¼¥ë¤ò¥Ó¥ë¥É¤¹¤ë¤¿¤á¤Ë
»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£È¯ÁÛ¤Ïñ½ã¤Ç¤¹: Apache ¤Î¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î
<code>configure</code>¡¢<code>make install</code> ¤Î¤È¤­¤Ë Apache ¤Î
C ¥Ø¥Ã¥À¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢DSO ¥Ó¥ë¥ÉÍѤΥץé¥Ã¥È¥Õ¥©¡¼¥à°Í¸¤Î
¥³¥ó¥Ñ¥¤¥é¤È¥ê¥ó¥«¤Î¥Õ¥é¥°¤ò <code>apxs</code> ¥×¥í¥°¥é¥à¤ËÄɲä·¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢¥æ¡¼¥¶¤¬ Apache ¤ÎÇÛÉÛ¥½¡¼¥¹¥Ä¥ê¡¼¤Ê¤·¤Ç¡¢¤µ¤é¤Ë
DSO ¥µ¥Ý¡¼¥È¤Î¤¿¤á¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à°Í¸¤Î¥³¥ó¥Ñ¥¤¥é¤ä¥ê¥ó¥«¤Î
¥Õ¥é¥°¤ò¤¤¤¸¤ë¤³¤È¤Ê¤¯ Apache ¤Î¥â¥¸¥å¡¼¥ë¤Î¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥ë
¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">»ÈÍÑË¡¤Î³µÍ×</a></h2>
<p>Apache 2.0 ¤Î DSO µ¡Ç½¤Î³µÎ¬¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¤¿¤á¤Î¡¢
û¤¯´Ê·é¤Ê³µÍפǤ¹:</p>
<ol>
<li>
<em>ÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë</em> Apache ¥â¥¸¥å¡¼¥ë¡¢²¾¤Ë <code>mod_foo.c</code>
¤È¤·¤Æ¡¢¤½¤ì¤ò DSO <code>mod_foo.so</code> ¤Ë¥Ó¥ë¥É¡¢¥¤¥ó¥¹¥È¡¼¥ë:
<div class="example"><p><code>
$ ./configure --prefix=/path/to/install --enable-foo=shared<br />
$ make install
</code></p></div>
</li>
<li>
<em>¥µ¡¼¥É¥Ñ¡¼¥Æ¥£</em> Apache ¥â¥¸¥å¡¼¥ë¡¢²¾¤Ë <code>mod_foo.c</code>
¤È¤·¤Æ¡¢¤½¤ì¤ò DSO <code>mod_foo.so</code> ¤Ë¥Ó¥ë¥É¡¢¥¤¥ó¥¹¥È¡¼¥ë:
<div class="example"><p><code>
$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br />
$ make install
</code></p></div>
</li>
<li>
¶¦Í­¥â¥¸¥å¡¼¥ë¤Î <em>¸å¡¹¤Î¥¤¥ó¥¹¥È¡¼¥ë</em> ¤Î¤¿¤á¤Ë
Apache ¤òÀßÄê:
<div class="example"><p><code>
$ ./configure --enable-so<br />
$ make install
</code></p></div>
</li>
<li>
<em>¥µ¡¼¥É¥Ñ¡¼¥Æ¥£</em> Apache ¥â¥¸¥å¡¼¥ë¡¢²¾¤Ë <code>mod_foo.c</code>
¤È¤·¤Æ¡¢¤½¤ì¤ò <a href="programs/apxs.html">apxs</a> ¤ò»È¤Ã¤Æ
Apache ¥½¡¼¥¹¥Ä¥ê¡¼¤Î<em>³°¤Ç</em> DSO ¤Ë¥Ó¥ë¥É¡¢¥¤¥ó¥¹¥È¡¼¥ë:
<div class="example"><p><code>
$ cd /path/to/3rdparty<br />
$ apxs -c mod_foo.c<br />
$ apxs -i -a -n foo mod_foo.la
</code></p></div>
</li>
</ol>
<p>¤É¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¶¦Í­¥â¥¸¥å¡¼¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¸å¤Ç¡¢
<code>httpd.conf</code> ¤Ç
<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò»È¤Ã¤Æ Apache ¤¬¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ¹¤ë¤è¤¦¤Ë
¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="background" id="background">ÇØ·Ê</a></h2>
<p>ºÇ¶á¤Î Unix ·Ï¤Î OS ¤Ë¤Ï <em>ưŪ¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È</em> (DSO)
¤ÎưŪ¥ê¥ó¥¯/¥í¡¼¥É¤È¤¤¤¦µ¤¤Î¤­¤¤¤¿µ¡¹½¤¬
¸ºß¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¼Â¹Ô»þ¤Ë¥×¥í¥°¥é¥à¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë
¥í¡¼¥É¤Ç¤­¤ë¤è¤¦¤ÊÆÃÊ̤ʷÁ¼°¤Ç¥×¥í¥°¥é¥à¤ò¥Ó¥ë¥É¤¹¤ë¤³¤È¤ò
²Äǽ¤Ë¤·¤Þ¤¹¡£</p>
<p>¤³¤Î¥í¡¼¥É¤ÏÆó¤Ä¤ÎÊýË¡¤Ç¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹: ¼Â¹Ô¥×¥í¥°¥é¥à¤¬
µ¯Æ°¤µ¤ì¤¿¤È¤­¤Ë <code>lod.so</code> ¤È¤¤¤¦¥·¥¹¥Æ¥à¥×¥í¥°¥é¥à
¤Ë¤è¤ê¼«Æ°Åª¤Ë¹Ô¤Ê¤ï¤ì¤ëÊýË¡¤È¡¢¼Â¹Ô¥×¥í¥°¥é¥àÃ椫¤é¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë
<code>dlopen()/dlsym()</code> ¤Ë¤è¤ë Unix ¥í¡¼¥À¤Ø¤Î
¥×¥í¥°¥é¥à¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ¼êÆ°¤Ç¹Ô¤Ê¤¦ÊýË¡¤È¤¬
¤¢¤ê¤Þ¤¹¡£</p>
<p>ºÇ½é¤ÎÊýË¡¤Ç¤Ï DSO ¤ÏÉáÄ̤Ï<em>¶¦Í­¥é¥¤¥Ö¥é¥ê</em>¤ä <em>DSO
¥é¥¤¥Ö¥é¥ê</em> ¤È¸Æ¤Ð¤ì¤Æ¤¤¤Æ¡¢DSO ¤Î̾Á°¤Ï
<code>libfoo.so</code> ¤ä <code>libfoo.so.1.2</code> ¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤Ï¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê (Ä̾ï <code>/usr/lib</code>) ¤Ë¸ºß¤·¡¢
¼Â¹Ô¥×¥í¥°¥é¥à¤Ø¤Î¥ê¥ó¥¯¤Ï¥Ó¥ë¥É»þ¤Ë <code>-lfoo</code> ¤ò¥ê¥ó¥«¤Ë
»ØÄꤹ¤ë¤³¤È¤Ç³ÎΩ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¥é¥¤¥Ö¥é¥ê¤Ø¤Î»²¾È¤¬¼Â¹Ô¥×¥í¥°¥é¥à¤Î
¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¡¢µ¯Æ°»þ¤Ë Unix ¤Î¥í¡¼¥À¤¬ <code>/usr/lib</code> ¤ä¡¢
¥ê¥ó¥«¤Î <code>-R</code> ¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿¥Ñ¥¹¡¢
´Ä¶­ÊÑ¿ô <code>LD_LIBRARY_PATH</code> ¤Ë¤è¤êÀßÄꤵ¤ì¤¿¥Ñ¥¹¡¢¤ÎÃ椫¤é
<code>libfoo.so</code> ¤Î¾ì½ê¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤ì¤«¤é¡¢
¼Â¹Ô¥×¥í¥°¥é¥àÃæ¤Î (¤Þ¤À̤²ò·è¤Î) ¥·¥ó¥Ü¥ë¤ò DSO ¤Ë¤¢¤ë¥·¥ó¥Ü¥ë¤Ç
²ò·è¤·¤Þ¤¹¡£</p>
<p>ÉáÄÌ¤Ï¼Â¹Ô¥×¥í¥°¥é¥àÃæ¤Î¥·¥ó¥Ü¥ë¤Ï DSO ¤«¤é¤Ï»²¾È¤µ¤ì¤Þ¤»¤ó
(DSO ¤Ï°ìÈÌŪ¤Ê¥³¡¼¥É¤Ë¤è¤ëºÆÍøÍѲÄǽ¤Ê¥é¥¤¥Ö¥é¥ê¤Ç¤¹¤Î¤Ç)¡£
¤Ç¤¹¤«¤é¡¢¤µ¤é¤Ê¤ë¥·¥ó¥Ü¥ë¤Î²ò·è¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£
¥·¥ó¥Ü¥ë¤Ï Unix ¥í¡¼¥À¤Ë¤è¤ê´°Á´¤Ê²ò·è¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¤Î¤Ç¡¢¼Â¹Ô¥Õ¥¡¥¤¥ë¼«¿È¤Ï
²¿¤â¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£(¼ÂºÝ¤Î¤È¤³¤í¡¢ÀÅŪ¤Ç¤Ê¤¤ÊýË¡¤Ç¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë
¤¹¤Ù¤Æ¤Î¼Â¹Ô¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤Þ¤ì¤Æ¤¤¤ë³«»ÏÍѤΥ³¡¼¥É¤Î°ìÉô¤Ë
<code>ld.so</code> ¤òµ¯Æ°¤¹¤ë¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹)¡£¤è¤¯»È¤ï¤ì¤ë
¥é¥¤¥Ö¥é¥ê¤ÎưŪ¥í¡¼¥É¤ÎÍøÅÀ¤ÏÌÀ¤é¤«¤Ç¤¹¡£¥é¥¤¥Ö¥é¥ê¤Î¥³¡¼¥É¤Ï
¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê¤Ë <code>libc.so</code> ¤Î¤è¤¦¤Ë¤·¤Æ°ìÅÙÊݸ¤¹¤ë¤À¤±¤Ç¤è¤¯¡¢
¥×¥í¥°¥é¥à¤Î¤¿¤á¤ËɬÍפʥǥ£¥¹¥¯¤ÎÎΰè¤òÀáÌ󤹤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£</p>
<p>Æó¤Ä¤á¤ÎÊýË¡¤Ç¤Ï DSO ¤ÏÉáÄ̤Ï<em>¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È</em>¤ä
<em>DSO ¥Õ¥¡¥¤¥ë</em>¤È¸Æ¤Ð¤ì¤Æ¤¤¤Æ¡¢Ç¤°Õ¤Î³ÈÄ¥»Ò¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹
(¤¿¤À¤·¡¢É¸½àŪ¤Ê̾Á°¤Ï <code>foo.so</code> ¤Ç¤¹)¡£
¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ÏÄ̾ï¤Ï¥×¥í¥°¥é¥àÀìÍѤΥǥ£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¡¢
¤³¤ì¤é¤ò»È¤¦¼Â¹Ô¥×¥í¥°¥é¥à¤Ø¤Î¥ê¥ó¥¯¤Ï¼«Æ°Åª¤Ë¤Ï¤µ¤ì¤Þ¤»¤ó¡£
¤Ç¤¹¤Î¤Ç¡¢¼Â¹Ô¥×¥í¥°¥é¥à¤Ï <code>dlopen()</code> ¤ò»È¤Ã¤Æ
¼Â¹Ô»þ¤Ë¼êÆ°¤Ç DSO ¤ò¥×¥í¥°¥é¥à¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤Î»þÅÀ¤Ç¤Ï¼Â¹Ô¥×¥í¥°¥é¥à¤ËÂФ·¤Æ DSO ¤Î¥·¥ó¥Ü¥ë¤Î²ò·è¤Ï¹Ô¤Ê¤ï¤ì¤Þ¤»¤ó¡£
¤·¤«¤·¡¢¤½¤ÎÂå¤ï¤ê¤Ë Unix ¤Î¥í¡¼¥À¤¬ DSO ¤Î (¤Þ¤À̤²ò·è¤Î) ¥·¥ó¥Ü¥ë¤ò
¼Â¹Ô¥×¥í¥°¥é¥à¤Ë¤è¤ê¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤È´û¤Ë¥í¡¼¥É¤µ¤ì¤¿
DSO ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤ê¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤¿¥·¥ó¥Ü¥ë (Æäˡ¢¤É¤³¤Ë¤Ç¤â¤¢¤ë
<code>libc.so</code> ¤Î¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë) ¤Ç¼«Æ°Åª¤Ë²ò·è¤·¤Þ¤¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢DSO ¤ÏºÇ½é¤«¤éÀÅŪ¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤¿¤«¤Î¤è¤¦¤Ë¡¢
¼Â¹Ô¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë¤òÃΤ뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£</p>
<p>ºÇ¸å¤Ë¡¢DSO ¤Î API ¤òÍøÅÀ¤òÀ¸¤«¤¹¤¿¤á¤Ë¡¢¥×¥í¥°¥é¥à¤Ï
¸å¤Ç¥Ç¥£¥¹¥Ñ¥Ã¥Á¥Æ¡¼¥Ö¥ë<em>¤Ê¤É</em>¤Ç¥·¥ó¥Ü¥ë¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢
<code>dlsym()</code> ¤ò»È¤Ã¤Æ¤¤¤¯¤Ä¤«¤Î¥·¥ó¥Ü¥ë¤ò²ò·è¤·¤Þ¤¹¡£
¤¹¤Ê¤ï¤Á: ¼Â¹Ô¥×¥í¥°¥é¥à¤ÏɬÍפʤ¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë¤ò¼êÆ°¤Ç²ò·è¤·¤Ê¤±¤ì¤Ð
¤Ê¤ê¤Þ¤»¤ó¡£¤³¤Îµ¡¹½¤ÎÍøÅÀ¤Ï¥×¥í¥°¥é¥à¤Î¥ª¥×¥·¥ç¥Ê¥ë¤ÊÉôʬ¤Ï
ɬÍפˤʤë¤Þ¤Ç¥í¡¼¥É¤¹¤ëɬÍפ¬¤Ê¤¤ (¤À¤«¤é¥á¥â¥ê¤â¾ÃÈñ¤·¤Ê¤¤)
¤³¤È¤Ç¤¹¡£É¬Íפʤé¤Ð¡¢´ðËÜ¥×¥í¥°¥é¥à¤Îµ¡Ç½¤ò³ÈÄ¥¤¹¤ë¤¿¤á¤Ë
¤³¤ì¤é¤ÎÉôʬ¤òưŪ¤Ë¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£</p>
<p>¤³¤Î DSO µ¡¹½¤Ï´Êñ¤Ê¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¾¯¤Ê¤¯¤È¤â°ì¤ÄÆñ¤·¤¤ÅÀ¤¬
¤¢¤ê¤Þ¤¹: ¥×¥í¥°¥é¥à¤ò³ÈÄ¥¤¹¤ë¤¿¤á¤Ë DSO ¤ò»È¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¡¢
DSO ¤¬¼Â¹Ô¥×¥í¥°¥é¥à¤«¤é¥·¥ó¥Ü¥ë¤ò²ò·è¤¹¤ëÅÀ¤Ç¤¹ (ÆóÈÖÌܤÎÊýË¡)¡£
¤³¤ì¤Ï¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡£¤½¤ì¤Ï¡¢DSO ¤Î¥·¥ó¥Ü¥ë¤ò¼Â¹Ô¥×¥í¥°¥é¥à¤Î
¥·¥ó¥Ü¥ë¤«¤é¡ÖµÕ²ò·è¡×¤¹¤ë¤È¤¤¤¦¤Î¤Ï¥é¥¤¥Ö¥é¥ê¤ÎÀß·×
(¥é¥¤¥Ö¥é¥ê¤Ï¤½¤ì¤ò»ÈÍѤ¹¤ë¥×¥í¥°¥é¥à¤Î¤³¤È¤Ï²¿¤â
ÃΤé¤Ê¤¤) ¤ËÈ¿¤·¤Æ¤¤¤Æ¡¢¤³¤Îµ¡Ç½¤Ï¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë
¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢É¸½à²½¤â¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¹¡£
¼ÂºÝ¤Ë¤Ï¼Â¹Ô¥×¥í¥°¥é¥à¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥·¥ó¥Ü¥ë¤ÏºÆ¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤ë¤³¤È¤Ï
¤¢¤Þ¤ê¤Ê¤¯¡¢DSO ¤«¤é»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¥ê¥ó¥«¤Ë¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤¹¤Ù¤Æ¤ò
¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¤è¤¦¤Ë¤µ¤»¤ëÊýË¡¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¡¢¼Â¹Ô»þ¤Ë¥×¥í¥°¥é¥à¤ò
³ÈÄ¥¤¹¤ë¤¿¤á¤Ë DSO ¤ò»È¤¦¤È¤­¤Î°ìÈÖ¤ÎÌäÂê¤Ç¤¹¡£</p>
<p>¶¦Í­¥é¥¤¥Ö¥é¥ê¤Î¥¢¥×¥í¡¼¥Á¤¬ÉáÄ̤ÎÊýË¡¤Ç¤¹¡£DSO µ¡¹½¤Ï¤½¤Î¤¿¤á¤Ë
À߷פµ¤ì¤¿¤â¤Î¤Ç¤¹¤«¤é¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤ÎÊýË¡¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤¬
Ä󶡤¹¤ë¤Û¤È¤ó¤É¤¹¤Ù¤Æ¤Î¼ïÎà¤Î¥é¥¤¥Ö¥é¥ê¤Ç»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
°ìÊý¡¢¥×¥í¥°¥é¥à¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò»ÈÍѤ¹¤ë¡¢¤È¤¤¤¦Êý¤Ï
¤¢¤Þ¤ê»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£</p>
<p>1998 ǯ¤Î»þÅÀ¤Ç¡¢¼Â¹Ô»þ¤Ë¼ÂºÝ¤Ëµ¡Ç½³ÈÄ¥¤Î¤¿¤á¤Ë DSO µ¡¹½¤ò»È¤Ã¤Æ¤¤¤ë
¥½¥Õ¥È¥¦¥§¥¢¥Ñ¥Ã¥±¡¼¥¸¤Ï¾¯¤·¤À¤±¤Ç¤·¤¿: Perl 5 (XS µ¡¹½¤È DnaLoader ¥â¥¸¥å¡¼¥ë
¤Ë¤è¤ë¤â¤Î)¡¢Netscape ¥µ¡¼¥Ð<em>¤Ê¤É</em>¤Ç¤¹¡£Apache ¤Ï¤¹¤Ç¤Ë
¥â¥¸¥å¡¼¥ë¤Î³µÇ°¤ò»È¤Ã¤Æµ¡Ç½³ÈÄ¥¤ò¤·¤Æ¤¤¤Æ¡¢ÆâÉôŪ¤Ë¥Ç¥£¥¹¥Ñ¥Ã¥Á¥ê¥¹¥È¤Ë
´ð¤Å¤¤¤¿³°Éô¥â¥¸¥å¡¼¥ë¤Î Apache ¥³¥¢µ¡Ç½¤Ø¤Î¥ê¥ó¥¯¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¤Î¤Ç¡¢
¥Ð¡¼¥¸¥ç¥ó 1.3 ¤«¤é¡¢Apache ¤â DSO µ¡¹½¤ò»È¤¦Ãç´Ö¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Apache ¤Ï¼Â¹Ô»þ¤Ë DSO ¤ò»È¤Ã¤Æ¥â¥¸¥å¡¼¥ë¤ò¥í¡¼¥É¤¹¤ë¤è¤¦¤Ë¤¹¤Ç¤Ë
±¿Ì¿ÉÕ¤±¤é¤ì¤Æ¤¤¤¿¤Î¤Ç¤¹¡£</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="advantages" id="advantages">ÍøÅÀ¤È·çÅÀ</a></h2>
<p>¾åµ­¤Î DSO ¤Ë´ð¤Å¤¤¤¿µ¡Ç½¤Ï°Ê²¼¤ÎÍøÅÀ¤¬¤¢¤ê¤Þ¤¹:</p>
<ul>
<li>¼ÂºÝ¤Î¥µ¡¼¥Ð¥×¥í¥»¥¹¤òÁȤßΩ¤Æ¤ë¤¿¤á¤Ë¡¢
¥Ó¥ë¥É»þ¤Ë <code>configure</code> ¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦Âå¤ï¤ê¤Ë
¼Â¹Ô»þ¤Ë <code>httpd.conf</code> ¤ÎÀßÄêÍÑ¥³¥Þ¥ó¥É
<code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¥µ¡¼¥Ð¥Ñ¥Ã¥±¡¼¥¸¤Î½ÀÆðÀ­¤¬¹â¤Þ¤ê¤Þ¤·¤¿¡£
¤¿¤È¤¨¤Ð¡¢°ì¤Ä¤Î Apache ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤«¤é
°ã¤¦¹½À®¤Î¥µ¡¼¥Ð (ɸ½àÈÇ¤È SSL ÈÇ¡¢ºÇ¾®¹½À®¤È³ÈÄ¥ÈÇ [mod_perl, PHP3]
<em>¤Ê¤É</em>) ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£</li>
<li>¥¤¥ó¥¹¥È¡¼¥ë¤Î¸å¤Ç¤¢¤Ã¤Æ¤â¡¢¥µ¡¼¥Ð¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò¥µ¡¼¥É¥Ñ¡¼¥Æ¥£
¥â¥¸¥å¡¼¥ë¤Ç´Êñ¤Ë³ÈÄ¥¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤ì¤Ï¡¢Apache ¥³¥¢
¥Ñ¥Ã¥±¡¼¥¸¤È¡¢PHP3, mod_perl, mod_fastcgi <em>¤Ê¤É</em> ¤ÎÄɲäÎ
¥Ñ¥Ã¥±¡¼¥¸¤òºîÀ®¤Ç¤­¤ë¤Î¤Ç¡¢¾¯¤Ê¤¯¤È¤â¥Ù¥ó¥À¤Î¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¼Ô¤Ë¤È¤Ã¤Æ
Â礭¤ÊÍøÅÀ¤¬¤¢¤ê¤Þ¤¹¡£</li>
<li>Apache ¥â¥¸¥å¡¼¥ë¤Î³«È¯¤¬´Êñ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤ì¤Ï DSO/<code>apxs</code> ¤ÎÁȤ߹ç¤ï¤»¤Ë¤è¤ê¡¢Apache ¥½¡¼¥¹¥Ä¥ê¡¼¤Î
³°¤Çºî¶È¤Ç¤­¡¢³«È¯Ãæ¤Î¥â¥¸¥å¡¼¥ë¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò
¼Â¹ÔÃæ¤Î Apache ¥µ¡¼¥Ð¤ËÁȤ߹þ¤à¤¿¤á¤Ë <code>apxs -i</code> ¤È
<code>apachectl restart</code> ¤ò¹Ô¤Ê¤¦¤À¤±¤ÇÎɤ¯¤Ê¤ë¤«¤é¤Ç¤¹¡£</li>
</ul>
<p>DSO ¤Ë¤Ï°Ê²¼¤Î·çÅÀ¤¬¤¢¤ê¤Þ¤¹:</p>
<ul>
<li>¤¹¤Ù¤Æ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤¬¥×¥í¥°¥é¥à¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë
¥³¡¼¥É¤òưŪ¥í¡¼¥É¤¹¤ë¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤ï¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢
¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ¤Ï DSO µ¡¹½¤Ï»È¤¨¤Þ¤»¤ó¡£</li>
<li>Unix ¤Î¥í¡¼¥À¤¬¥·¥ó¥Ü¥ë¤Î²ò·è¤ò¤¹¤ëɬÍפ¬¤Ç¤­¤¿¤Î¤Ç¡¢
¤½¤Î¥ª¡¼¥Ð¥Ø¥Ã¥É¤Ë¤è¤ê¥µ¡¼¥Ð¤Îµ¯Æ°»þ´Ö¤¬Ìó 20% ÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£</li>
<li>°ÌÃÖÈó°Í¸¥³¡¼¥É (PIC) (ÌõÃí position independent code) ¤Ï
ÁêÂÐ¥¢¥É¥ì¥¹¤Î¤¿¤á¤ËÊ£»¨¤Ê¥¢¥»¥ó¥Ö¥é¤Î¥È¥ê¥Ã¥¯¤¬É¬Íפʤ³¤È¤¬¤¢¤ê¡¢
¤½¤ì¤Ïɬ¤º¤·¤âÀäÂÐ¥¢¥É¥ì¥¹¤ÈƱ¤¸¤¯¤é¤¤¤Î®ÅÙ¤¬¤Ç¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢
¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤Ã¤Æ¤Ï¥µ¡¼¥Ð¤Î¼Â¹Ô®ÅÙ¤¬Ìó 5% ÃÙ¤¯¤Ê¤ê¤Þ¤¹¡£</li>
<li>DSO ¥â¥¸¥å¡¼¥ë¤Ï¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¾¤Î DSO ¤Ë´ð¤Å¤¤¤¿
¥é¥¤¥Ö¥é¥ê¤ËÂФ·¤Æ¥ê¥ó¥¯¤Ç¤­¤ë (<code>ld -lfoo</code>)
¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç (¤¿¤È¤¨¤Ð¡¢a.out ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï
¤³¤Îµ¡Ç½¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ELF ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤Ï¤¢¤ê¤Þ¤¹)¡¢
¤¹¤Ù¤Æ¤Î¼ïÎà¤Î¥â¥¸¥å¡¼¥ë¤Ë DSO µ¡¹½¤ò»È¤¨¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¸À¤¤´¹¤¨¤ë¤È¡¢DSO ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Î
»È¤¨¤ë¥·¥ó¥Ü¥ë¤Ï¡¢
Apache ¤Î¥³¥¢¤Î¥·¥ó¥Ü¥ë¡¢C ¥é¥¤¥Ö¥é¥ê (<code>libc</code>) ¤È
Apache ¥³¥¢¤¬»È¤Ã¤Æ¤¤¤ë¾¤Î¤¹¤Ù¤Æ¤ÎÀÅŪ¤Ê¥é¥¤¥Ö¥é¥ê¤ÈưŪ¥é¥¤¥Ö¥é¥ê¤Î
¥·¥ó¥Ü¥ë¡¢PIC ¤Ë¤è¤ëÀÅŪ¤Ê¥é¥¤¥Ö¥é¥ê (<code>libfoo.a</code>) ¤Î
¥·¥ó¥Ü¥ë¤Î¤ß¤ËÀ©¸Â¤µ¤ì¤Þ¤¹¡£¤½¤Î¾¤Î¥³¡¼¥É¤ò»È¤¦ÊýË¡¤Ï¡¢
Apache ¥³¥¢¼«¿È¤¬¤¹¤Ç¤Ë¤½¤Î¥³¡¼¥É¤Ø¤Î»²¾È¤¬¤¢¤ë¤è¤¦¤Ë¤¹¤ë¤«¡¢
<code>dlopen ()</code> ¤ò»È¤Ã¤Æ¥³¡¼¥É¤ò¼«Ê¬¼«¿È¤Ç¥í¡¼¥É¤¹¤ë¤«¤Î
¤É¤Á¤é¤«¤·¤«¤¢¤ê¤Þ¤»¤ó¡£</li>
</ul>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/dso.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 1999-2004 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>