‰php IHDR w Q )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¸S XzG'åóay
files >> /opt/lampp/manual/ |
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="<-" alt="<-" src="./images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーãƒ</a> > <a href="http://httpd.apache.org/docs/">ドã‚ュメンテーション</a> > <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"> en </a> | <a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dso.html" title="Japanese"> ja </a> | <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="./tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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"> en </a> | <a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/dso.html" title="Japanese"> ja </a> | <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="./tr/dso.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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–ÚÛvM IEND®B`‚