[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-docs
Subject:    German Translation apxs.xml
From:       JGiesecke () t-online ! de (Jobst Giesecke)
Date:       2004-01-28 19:16:02
Message-ID: 40180A72.8080803 () t-online ! de
[Download RAW message or body]

["apxs.xml.de" (text/html)]

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<manualpage metafile="apxs.xml.meta">
<parentdocument href="./">Programme</parentdocument>

<title>apxs - Das APache eXtenSion Tool</title>

<summary>
<p><code>apxs</code> ist ein Programm zum Einrichten und Installieren von
Erweiterungsmodulen f&uuml;r den Apache HyperText Transfer Protocol-Server.
Hierf&uuml;r wird ein Dynamic Shared Object (DSO) aus einer oder mehreren
Quelldateien oder Objekt<var>dateien</var> angelegt, welches w&auml;hrend der
Ausf&uuml;hrung mit der Direktive
<directive module="mod_so">LoadModule</directive> des Moduls
<module>mod_so</module> geladen werden kann.</p>

<p>Um dieses Verfahren f&uuml;r Erweiterungen nutzen zu k&ouml;nnen, muss das
Betriebssystem DSO unterst&uuml;tzen und die bin&auml;re Apache-Datei
<code>httpd</code> mit dem Modul <module>mod_so</module> kompiliert
werden. Das Programm <code>apxs</code> beschwert sich automatisch, wenn
dies nicht der Fall ist. Sie k&ouml;nnen aber auch manuell eine &Uuml;berpr&uuml;fung
vornehmen:</p>

    <example>
      $ httpd -l
    </example>

<p>Das Modul <module>mod_so</module> muss in der angezeigten Liste
aufgef&uuml;hrt werden. Sind diese Voraussetzungen erf&uuml;llt, kann die Funktionalit&auml;t
des Apache-Servers problemlos durch Installation eigener Module durch den
DSO-Mechanismus mit Hilfe des Programms <code>apxs</code> erweitert
werden:</p>

    <example>
      $ apxs -i -a -c mod_foo.c<br />
      gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c<br />
      ld -Bshareable -o mod_foo.so mod_foo.o<br />
      cp mod_foo.so /path/to/apache/modules/mod_foo.so<br />
      chmod 755 /path/to/apache/modules/mod_foo.so<br />
      [activating module `foo' in /path/to/apache/etc/httpd.conf]<br />
      $ apachectl restart<br />
      /path/to/apache/sbin/apachectl restart: httpd not running, trying to start<br />
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
      /path/to/apache/sbin/apachectl restart: httpd started<br />
      $ _
    </example>

<p>Bei den angegebenen Dateien kann es sich um beliebige C-Quelldateien
(<code>.c</code>), eine Objektdatei (<code>.o</code>) oder auch um ein
Bibliotheksarchiv handeln (<code>.a</code>). Das <code>apxs</code>-Programm
erkennt die Dateinamenserweiterungen automatisch und kompiliert C-Quelldateien
und Objekt- und Archivdateien werden erst sp&auml;ter eingebunden. Wenn Sie solche
vorkompilierten Objekte benutzen, m&uuml;ssen Sie aber darauf achten, dass sie f&uuml;r
positionsunabh&auml;ngigen Code (PIC) kompiliert wurden, damit sie in einem
dynamisch geladenen Objekt benutzt werden k&ouml;nnen. Beim Compiler
GCC m&uuml;ssen Sie hierf&uuml;r die Option <code>-fpic</code> angeben. Schlagen Sie
bei anderen C-Compilern in der Dokumentation nach oder achten Sie auf die
Flags, die <code>apxs</code> zum Kompilieren der Objektdateien benutzt.</p>

<p>Weitere Details zur DSO-Unterst&uuml;tzung des Apache finden Sie in der
Dokumentation des Moduls <module>mod_so</module> oder auch in der
Quelldatei <code>src/modules/standard/mod_so.c</code>.</p>
</summary>
<seealso><a href="apachectl.html">apachectl</a></seealso>
<seealso><a href="httpd.html">httpd</a></seealso>

<section id="synopsis"><title>Synopsis</title>
    <p><code><strong>apxs</strong> -<strong>g</strong>
    [ -<strong>S</strong> <var>Name</var>=<var>Wert</var> ]
    -<strong>n</strong> <var>Modul</var></code></p>

    <p><code><strong>apxs</strong> -<strong>q</strong>
    [ -<strong>S</strong> <var>Name</var>=<var>Wert</var> ]
    <var>Abfrage</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>c</strong>
    [ -<strong>S</strong> <var>Name</var>=<var>Wert</var> ]
    [ -<strong>o</strong> <var>DSO-Datei</var> ]
    [ -<strong>I</strong> <var>iInclude-Verzeichnis</var> ]
    [ -<strong>D</strong> <var>Name</var>=<var>Wert</var> ]
    [ -<strong>L</strong> <var>Bibliotheksverz.</var> ]
    [ -<strong>l</strong> <var>Bibliothek</var> ]
    [ -<strong>Wc,</strong><var>Compiler-Flags</var> ]
    [ -<strong>Wl,</strong><var>Linker-Flags</var> ]
    <var>Dateien</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>i</strong>
    [ -<strong>S</strong> <var>Name</var>=<var>Wert</var> ]
    [ -<strong>n</strong> <var>Modul</var> ]
    [ -<strong>a</strong> ]
    [ -<strong>A</strong> ]
    <var>DSO-Datei</var> ...</code></p>

    <p><code><strong>apxs</strong> -<strong>e</strong>
    [ -<strong>S</strong> <var>Name</var>=<var>Wert</var> ]
    [ -<strong>n</strong> <var>Modul</var> ]
    [ -<strong>a</strong> ]
    [ -<strong>A</strong> ]
    <var>DSO-Datei</var> ...</code></p>
</section>

<section id="options"><title>Optionen</title>
    <section id="options.common"><title>Allgemeine Optionen</title>
      <dl>
      <dt><code>-n <var>Modul</var></code></dt>
      <dd>Mit dieser Option wird der Modulname f&uuml;r die Optionen
      <code>-i</code> (installieren) und <code>-g</code> (Mustererzeugung)
      explizit angegeben. F&uuml;r die Option <code>-g</code> muss die Angabe
      erfolgen, f&uuml;r die Option <code>-i</code> versucht das
      <code>apxs</code>-Programm den Namen aus der Quelldatei zu ermitteln
      oder ihn notfalls aus dem Dateinamen abzuleiten.</dd>
      </dl>
    </section>

    <section id="options.query"><title>Abfrageoptionen</title>
      <dl>
      <dt><code>-q</code></dt>
<dd>Fragt die Kenntnisse des <code>apxs</code>-Programms &uuml;ber bestimmte
Einstellungen ab. Als <var>Abfrage</var>parameter k&ouml;nnen ein oder mehrere der
folgenden Zeichenfolgen angegeben werden: <code>CC</code>,
<code>CFLAGS</code>, <code>CFLAGS_SHLIB</code>,
<code>INCLUDEDIR</code>, <code>LD_SHLIB</code>,
<code>LDFLAGS_SHLIB</code>, <code>LIBEXECDIR</code>,
<code>LIBS_SHLIB</code>, <code>SBINDIR</code>,
<code>SYSCONFDIR</code>, <code>TARGET</code>.

<p>Sie k&ouml;nnen die Einstellungen auch selbst ermitteln. Mit der folgenden
Anweisung innerhalb Ihrer Makefiles greifen Sie beispielsweise auf die
Include-Dateien des Apache zu:</p>
      <example>
        INC=-I`apxs -q INCLUDEDIR`
      </example>
</dd>
      </dl>
    </section>

    <section id="options.conf"><title>Konfigurationsoptionen</title>
      <dl>
      <dt><code>-S <var>Name</var>=<var>Wert</var></code></dt>
<dd>Mit dieser Option werden die oben beschriebenen
<code>apxs</code>-Einstellungen ge&auml;ndert.</dd>
      </dl>
    </section>

    <section id="options.template"><title>Optionen zum Erzeugen von
    Vorlagen</title>
      <dl>
      <dt><code>-g</code></dt>
<dd>Mit dieser Option wird das Unterverzeichnis <var>Name</var> (siehe
<code>-n</code>) und in diesem zwei Dateien erzeugt: Eine Musterdatei mit der
Bezeichnung <code>mod_<var>name</var>.c</code>, die als Vorlage
f&uuml;r eigene Module oder als Ausgangspunkt f&uuml;r Experimente mit dem
<code>apxs</code>-Mechanismus dienen kann, sowie eine entsprechendes
<code>Makefile</code> f&uuml;r eine noch einfachere Einrichtung und Installation
dieses Moduls.</dd>
      </dl>
    </section>

    <section id="options.dso"><title>DSO-Compileroptionen</title>
      <dl>
      <dt><code>-c</code></dt>
<dd>Mit dieser Option werden die Compileroperationen angegeben. Zuerst
werden die mit <var>Dateien</var> angegebenen C-Quelldateien  
(<code>.c</code>.c) in entsprechende Objektdateien kompiliert
(<code>.o</code> und anschlie&szlig;end durch Binden dieser Objektdateien mit den
verbleibenden Objektdateien (<code>.o</code> und <code>.a</code>) aus
<var>Dateien</var> dynamische Objekte in der <var>DSO-Datei</var>
eingerichtet. Wird die Option <code>-o</code> nicht angegeben, wird der Name
der Ausgabedatei vom ersten Dateinamen aus <var>Dateien</var> abgeleitet
und lautet daher meist <code>mod_<var>name</var>.so</code>.</dd>

      <dt><code>-o <var>DSO-Datei</var></code></dt>
<dd>Mit dieser Option wird der Name des erzeugten dynamischen Objekts
explizit angegeben. Erfolgt keine Angabe und l&auml;sst er sich nicht aus der Liste der
<var>Dateien</var> ableiten, wird als Notbehelf der Name
<code>mod_unknown.so</code> benutzt.</dd>

      <dt><code>-D <var>Name</var>=<var>Wert</var></code></dt>
<dd>Diese Option wird direkt an den oder die Kompilationsbefehl(e) weitergereicht
und bietet Ihnen die M&ouml;glichkeit, eigene Definitionen hinzuzuf&uuml;gen.</dd>

      <dt><code>-I <var>Include-Verzeichnis</var></code></dt>
<dd>Diese Option wird direkt an den oder die Kompilationsbefehl(e) weitergereicht
und dient zur Angabe eigener Include-Verzeichnisse, in denen gesucht werden
soll.</dd>

      <dt><code>-L <var>libdir</var></code></dt>
<dd>Diese Option wird direkt an den Linker-Befehl weitergereicht. Geben Sie mit ihr eigene
Verzeichnisse an, in denen nach Bibliotheken gesucht werden soll.</dd>

      <dt><code>-l <var>libname</var></code></dt>
<dd>Diese Option wird direkt an den Linker-Befehl weitergereicht. Geben Sie mit ihr eigene
Bibliotheken an, in denen gesucht werden soll.</dd>

      <dt><code>-Wc,<var>Compiler-Flags</var></code></dt>
<dd>Mit dieser Option werden zus&auml;tzliche <var>Compiler-Flags</var> an den
Compiler &uuml;bergeben. Sie dient zur Angabe lokaler, Compiler-spezifischer
Optionen.</dd>

      <dt><code>-Wl,<var>Linker-flags</var></code></dt>
<dd>Mit dieser Option werden zus&auml;tzliche <var>Linker-Flags</var> an den
Linker &uuml;bergeben. Sie dient zur Angabe lokaler, Linker-spezifischer
Optionen.</dd>
      </dl>
    </section>

    <section id="options.dsoinstall">
    <title>DSO-Installations- und Konfigurationsoptionen</title>
      <dl>
      <dt><code>-i</code></dt>
<dd>Mit dieser Option wird die Installation angesto&szlig;en und ein oder mehrere
dynamische Objekte im <var>modules</var>-Verzeichnis des Servers
installiert.</dd>

      <dt><code>-a</code></dt>
<dd>Aktiviert die Module durch Einf&uuml;gen einer entsprechenden
<directive module="mod_so">LoadModule</directive>-Zeile in die
<code>httpd.conf</code>-Konfigurationsdatei automatisch oder aktiviert
bereits vorhandene Module.</dd>

      <dt><code>-A</code></dt>
<dd>Identisch mit der Option <code>-a</code>, der eingef&uuml;gten <directive
module="mod_so">LoadModule</directive>-Direktive wird aber ein
Doppelkreuz (<code>#</code>) vorangestellt, <em>d.h.</em> das Modul
bleibt bis zu seiner sp&auml;teren Aktivierung deaktiviert.</dd>

      <dt><code>-e</code></dt>
<dd>Diese Option gibt die Bearbeitungsoperation an, die mit den Optionen
<code>-a</code> und <code>-A</code> &auml;hnlich wie die 
<code>-i</code>-Operation benutzt werden kann, um die
<code>httpd.conf</code>-Konfigurationsdatei des Apache bearbeiten zu
k&ouml;nnen, ohne das Modul zu installieren.</dd>
      </dl>
    </section>
</section>

<section id="examples"><title>Beispiele</title>
<p>Angenommen, Sie m&ouml;chten die Serverfunktionalit&auml;t des Apache mit dem
Modul <code>mod_foo.c</code> erweitern. Hierf&uuml;r m&uuml;ssen Sie zuerst den
C-Quellcode kompilieren, damit er zur Laufzeit mit folgendem Befehl geladen
werden kann:</p>

    <example>
      $ apxs -c mod_foo.c<br />
      gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c<br />
      ld -Bshareable -o mod_foo.so mod_foo.o<br />
      $ _
    </example>

<p>Anschlie&szlig;end m&uuml;ssen Sie eine <directive 
module="mod_so">LoadModule</directive>-Direktive in die Apache-Konfiguration
einf&uuml;gen, damit das Objekt geladen wird. Dieser Schritt wird vom Programm
<code>apxs</code> durch die Installation des Objekts im Verzeichnis
<code>modules</code> und die entsprechende Aktualisierung der Datei
<code>httpd.conf</code> vereinfacht. Geben Sie folgende Befehlszeile ein:</p>

    <example>
      $ apxs -i -a mod_foo.c<br />
      cp mod_foo.so /path/to/apache/modules/mod_foo.so<br />
      chmod 755 /path/to/apache/modules/mod_foo.so<br />
      [activating module 'foo' in /path/to/apache/etc/httpd.conf]<br />
      $ _
    </example>

    <p>Dadurch wird die Zeile</p>

    <example>
      LoadModule foo_module modules/mod_foo.so
    </example>

    <p>in die Konfigurationsdatei eingef&uuml;gt, falls sie noch nicht vorhanden ist.
    Soll das Modul standardm&auml;&szlig;ig aktiviert werden, benutzen Sie die Option
    <code>-A</code>:</p>

    <example>
      $ apxs -i -A mod_foo.c
    </example>

<p>F&uuml;r einen schnellen Test des Programms <code>apxs</code> k&ouml;nnen Sie
ein Beispielmodul und ein entsprechendes Makefile erzeugen:</p>

    <example>
      $ apxs -g -n foo<br />
      Creating [DIR]  foo<br />
      Creating [FILE] foo/Makefile<br />
      Creating [FILE] foo/mod_foo.c<br />
      $ _
    </example>

<p>Anschlie&szlig;end k&ouml;nnen Sie dieses Beispielmodul sofort als kompilieren und
in den Apache-Server laden:</p>

    <example>
      $ cd foo<br />
      $ make all reload<br />
      apxs -c mod_foo.c<br />
      gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c<br />
      ld -Bshareable -o mod_foo.so mod_foo.o<br />
      apxs -i -a -n "foo" mod_foo.so<br />
      cp mod_foo.so /path/to/apache/modules/mod_foo.so<br />
      chmod 755 /path/to/apache/modules/mod_foo.so<br />
      [activating module `foo' in /path/to/apache/etc/httpd.conf]<br />
      apachectl restart<br />
      /path/to/apache/sbin/apachectl restart: httpd not running, trying to start<br />
      [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
      /path/to/apache/sbin/apachectl restart: httpd started<br />
      $ _
    </example>

<p>Sie k&ouml;nnen mit <code>apxs</code> auch komplexe Module au&szlig;erhalb
des Apache-Codebaums kompilieren, zum Beispiel PHP3:</p>

    <example>
      $ cd php3<br />
      $ ./configure --with-shared-apache=../apache-1.3<br />
      $ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a<br />
      gcc -fpic -DSHARED_MODULE -I/tmp/apache/include  -c mod_php3.c<br />
      ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a<br />
      $ _
    </example>

<p>Das ist m&ouml;glich, weil <code>apxs</code> C-Quellcodedateien und
Objektdateien automatisch erkennt. Nur C-Quellcodedateien werden 
kompiliert, w&auml;hrend die verbleibenden Objektdateien erst f&uuml;r das Binden
benutzt werden.</p>
</section>
</manualpage>



---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic