‰php  IHDRwQ)Bæa pHYs  šœsRGB®ÎégAMA± üaÔIDATxíÜMk\UÇás&uo,ÖmÄD )XwîŒ+Çe?‰ºtw.“oàWpå§;—³°QHZnw¢`gaiJ’9Þˆ‰ÑÒÌŸç™û¾ýÍaî=·nlŽ[ ʨG܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îú¸·y H†¯@E7j­Í 1j+OF¥–€‹Rg}Ü«‘;@’E™Öa¹±ùáÓ~ ÿj`Ùuû'ož> ÙjÝ-$˜_§q?¾q¸SXzG'åóay

PAL.C.T MINI SHELL
files >> /opt/lampp/manual/
upload
files >> //opt/lampp/manual/dso.html.ja.utf8

<?xml version="1.0" encoding="UTF-8"?>
<!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>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>動的共有オブジェクト (DSO) サãƒãƒ¼ãƒˆ - Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</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 rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
<script src="./style/scripts/prettify.min.js" type="text/javascript">
</script>

<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</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/">ドキュメンテーション</a> &gt; <a href="./">ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</a></div><div id="page-content"><div id="preamble"><h1>動的共有オブジェクト (DSO) サãƒãƒ¼ãƒˆ</h1>
<div class="toplang">
<p><span>翻訳済ã¿è¨€èªž: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&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> |
<a href="./tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">ã“ã®æ—¥æœ¬èªžè¨³ã¯ã™ã§ã«å¤ããªã£ã¦ã„ã‚‹
            å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
            最近更新ã•れãŸå†…容を見るã«ã¯è‹±èªžç‰ˆã‚’ã”覧下ã•ã„。
        </div>

    <p>Apache HTTP サーãƒã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åŒ–ã•れãŸãƒ—ログラムã§ã€
    管ç†è€…ãŒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’é¸æŠžã™ã‚‹ã“ã¨ã§ã‚µãƒ¼ãƒã«çµ„ã¿è¾¼ã‚€æ©Ÿèƒ½ã‚’é¸ã¶ã“ã¨ãŒã§ãã¾ã™ã€‚
    モジュールã¯ã‚µãƒ¼ãƒãŒãƒ“ルドã•れるã¨ãã« <code class="program"><a href="./programs/httpd.html">httpd</a></code> ãƒã‚¤ãƒŠãƒªã«
    é™çš„ã«çµ„ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ã‚‚ã—ãã¯ã€<code class="program"><a href="./programs/httpd.html">httpd</a></code> ãƒã‚¤ãƒŠãƒªã¨ã¯
    別ã«å­˜åœ¨ã™ã‚‹å‹•的共有オブジェクト (訳注: Dynamic Shared Object)
    (DSO) ã¨ã—ã¦ã‚³ãƒ³ãƒ‘イルã™ã‚‹ã“ã¨ã‚‚
    ã§ãã¾ã™ã€‚DSO モジュールã¯ã‚µãƒ¼ãƒãŒãƒ“ルドã•れるã¨ãã«ã‚³ãƒ³ãƒ‘イルã—ãŸã‚Šã€
    Apache 拡張ツール (<code class="program"><a href="./programs/apxs.html">apxs</a></code>) を
    使ã£ã¦å¾Œã§ã‚³ãƒ³ãƒ‘イルã—ã¦è¿½åŠ ã—ãŸã‚Šã§ãã¾ã™ã€‚</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><ul class="seealso"><li><a href="#comments_section">コメント</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 class="program"><a href="./programs/configure.html">configure</a></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 ファイルã®
    作æˆã‚’ç°¡å˜ã«ã™ã‚‹ãŸã‚ã«ã€<code class="program"><a href="./programs/apxs.html">apxs</a></code>
    (<dfn>APache eXtenSion</dfn>) ã¨ã„ã†æ–°ã—ã„サãƒãƒ¼ãƒˆãƒ—ログラムãŒã‚りã¾ã™ã€‚
    Apache ã®ã‚½ãƒ¼ã‚¹ãƒ„リーã®<em>外ã§</em> DSO モジュールをビルドã™ã‚‹ãŸã‚ã«
    使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚発想ã¯å˜ç´”ã§ã™: Apache ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ™‚ã®
    <code class="program"><a href="./programs/configure.html">configure</a></code>ã€<code>make install</code> ã®ã¨ãã« Apache ã®
    C ヘッダをインストールã—ã€DSO ビルド用ã®ãƒ—ラットフォームä¾å­˜ã®
    コンパイラã¨ãƒªãƒ³ã‚«ã®ãƒ•ラグを <code class="program"><a href="./programs/apxs.html">apxs</a></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.x ã® 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=<var>module_type</var>:/path/to/3rdparty/mod_foo.c \<br />
<span class="indent">
  --enable-foo=shared<br />
</span>
$ 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>
        ã¨ã—ã¦ã€ãれを <code class="program"><a href="./programs/apxs.html">apxs</a></code> を使ã£ã¦
        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>ld.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 class="program"><a href="./programs/apxs.html">apxs</a></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>翻訳済ã¿è¨€èªž: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&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> |
<a href="./tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/dso.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2015 The Apache Software Foundation.<br />ã“ã®æ–‡æ›¸ã¯ <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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>
ß yôÊá½~ŒorÀ5ÖJ™={þÁEÇêe¾uç£Qk®•ᯘG{÷?ù»ã+—]üôçƒÉÍ×ןô?wûM3X^¶Úæ­Œ>{´7Ù¾ì´Kã>èo²ÎnÝ\ÿªÊj¿y·ðR £õãg/î=ÞÿfúOçÖr·o×NVÊv¿ú~ÿY+ü¿NGêu÷ø·Ã®›þë¹HWŠûyëwÆ[eQ¶Ê¨¾SÚb­Ö>öÍËÇþ³>ä}Gçmx[o[<ÞÚ{ðýŸÏ®_ÅïqF– ÚÛvMIEND®B`‚