⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dso.html.en

📁 Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
💻 EN
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Dynamic Shared Object (DSO) Support - Apache HTTP Server</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/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</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 Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Dynamic Shared Object (DSO) Support</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./en/dso.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/dso.html" hreflang="es" rel="alternate" title="Espa駉l">&nbsp;es&nbsp;</a> |
<a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Fran鏰is">&nbsp;fr&nbsp;</a> |
<a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>

    <p>The Apache HTTP Server is a modular program where the
    administrator can choose the functionality to include in the
    server by selecting a set of modules. The modules can be
    statically compiled into the <code class="program"><a href="./programs/httpd.html">httpd</a></code> binary when the
    server is built. Alternatively, modules can be compiled as
    Dynamic Shared Objects (DSOs) that exist separately from the
    main <code class="program"><a href="./programs/httpd.html">httpd</a></code> binary file. DSO modules may be
    compiled at the time the server is built, or they may be
    compiled and added at a later time using the Apache Extension
    Tool (<code class="program"><a href="./programs/apxs.html">apxs</a></code>).</p>

    <p>This document describes how to use DSO modules as well as
    the theory behind their use.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#implementation">Implementation</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#usage">Usage Summary</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#background">Background</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#advantages">Advantages and Disadvantages</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">Implementation</a></h2>

<table class="related"><tr><th>Related Modules</th><th>Related Directives</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>The DSO support for loading individual Apache modules is based
    on a module named <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> which must be statically
    compiled into the Apache core. It is the only module besides
    <code class="module"><a href="./mod/core.html">core</a></code> which cannot be put into a DSO
    itself. Practically all other distributed Apache modules can then
    be placed into a DSO by individually enabling the DSO build for
    them via <code class="program"><a href="./programs/configure.html">configure</a></code>'s
    <code>--enable-<em>module</em>=shared</code> option as discussed
    in the <a href="install.html">install documentation</a>. After a
    module is compiled into a DSO named <code>mod_foo.so</code> you
    can use <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>'s <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> command in your
    <code>httpd.conf</code> file to load this module at server startup
    or restart.</p>

    <p>To simplify this creation of DSO files for Apache modules
    (especially for third-party modules) a new support program
    named <code class="program"><a href="./programs/apxs.html">apxs</a></code> (<dfn>APache
    eXtenSion</dfn>) is available. It can be used to build DSO based
    modules <em>outside of</em> the Apache source tree. The idea is
    simple: When installing Apache the <code class="program"><a href="./programs/configure.html">configure</a></code>'s
    <code>make install</code> procedure installs the Apache C
    header files and puts the platform-dependent compiler and
    linker flags for building DSO files into the <code class="program"><a href="./programs/apxs.html">apxs</a></code>
    program. This way the user can use <code class="program"><a href="./programs/apxs.html">apxs</a></code> to compile
    his Apache module sources without the Apache distribution
    source tree and without having to fiddle with the
    platform-dependent compiler and linker flags for DSO
    support.</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">Usage Summary</a></h2>

    <p>To give you an overview of the DSO features of Apache 2.0,
    here is a short and concise summary:</p>

    <ol>
      <li>
        Build and install a <em>distributed</em> Apache module, say
        <code>mod_foo.c</code>, into its own 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>
        Build and install a <em>third-party</em> Apache module, say
        <code>mod_foo.c</code>, into its own 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>
        Configure Apache for <em>later installation</em> of shared
        modules: 

<div class="example"><p><code>
$ ./configure --enable-so<br />
$ make install
</code></p></div>
      </li>

      <li>
        Build and install a <em>third-party</em> Apache module, say
        <code>mod_foo.c</code>, into its own DSO
        <code>mod_foo.so</code> <em>outside of</em> the Apache
        source tree using <code class="program"><a href="./programs/apxs.html">apxs</a></code>: 

<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>In all cases, once the shared module is compiled, you must
    use a <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
    directive in <code>httpd.conf</code> to tell Apache to activate
    the module.</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">Background</a></h2>

    <p>On modern Unix derivatives there exists a nifty mechanism
    usually called dynamic linking/loading of <em>Dynamic Shared
    Objects</em> (DSO) which provides a way to build a piece of
    program code in a special format for loading it at run-time
    into the address space of an executable program.</p>

    <p>This loading can usually be done in two ways: Automatically
    by a system program called <code>ld.so</code> when an
    executable program is started or manually from within the
    executing program via a programmatic system interface to the
    Unix loader through the system calls
    <code>dlopen()/dlsym()</code>.</p>

    <p>In the first way the DSO's are usually called <em>shared
    libraries</em> or <em>DSO libraries</em> and named
    <code>libfoo.so</code> or <code>libfoo.so.1.2</code>. They

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -