[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ür den Apache HyperText Transfer Protocol-Server.
Hierfür wird ein Dynamic Shared Object (DSO) aus einer oder mehreren
Quelldateien oder Objekt<var>dateien</var> angelegt, welches während der
Ausfü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ür Erweiterungen nutzen zu können, muss das
Betriebssystem DSO unterstützen und die binä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önnen aber auch manuell eine Überprüfung
vornehmen:</p>
<example>
$ httpd -l
</example>
<p>Das Modul <module>mod_so</module> muss in der angezeigten Liste
aufgeführt werden. Sind diese Voraussetzungen erfüllt, kann die Funktionalitä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äter eingebunden. Wenn Sie solche
vorkompilierten Objekte benutzen, müssen Sie aber darauf achten, dass sie für
positionsunabhängigen Code (PIC) kompiliert wurden, damit sie in einem
dynamisch geladenen Objekt benutzt werden können. Beim Compiler
GCC müssen Sie hierfü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ü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ür die Optionen
<code>-i</code> (installieren) und <code>-g</code> (Mustererzeugung)
explizit angegeben. Für die Option <code>-g</code> muss die Angabe
erfolgen, fü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 über bestimmte
Einstellungen ab. Als <var>Abfrage</var>parameter kö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ö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ä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ür eigene Module oder als Ausgangspunkt für Experimente mit dem
<code>apxs</code>-Mechanismus dienen kann, sowie eine entsprechendes
<code>Makefile</code> fü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ß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ä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öglichkeit, eigene Definitionen hinzuzufü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ätzliche <var>Compiler-Flags</var> an den
Compiler ü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ätzliche <var>Linker-Flags</var> an den
Linker ü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ß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ü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ü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ä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> ähnlich wie die
<code>-i</code>-Operation benutzt werden kann, um die
<code>httpd.conf</code>-Konfigurationsdatei des Apache bearbeiten zu
können, ohne das Modul zu installieren.</dd>
</dl>
</section>
</section>
<section id="examples"><title>Beispiele</title>
<p>Angenommen, Sie möchten die Serverfunktionalität des Apache mit dem
Modul <code>mod_foo.c</code> erweitern. Hierfür mü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ßend müssen Sie eine <directive
module="mod_so">LoadModule</directive>-Direktive in die Apache-Konfiguration
einfü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ügt, falls sie noch nicht vorhanden ist.
Soll das Modul standardmäßig aktiviert werden, benutzen Sie die Option
<code>-A</code>:</p>
<example>
$ apxs -i -A mod_foo.c
</example>
<p>Für einen schnellen Test des Programms <code>apxs</code> kö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ßend kö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önnen mit <code>apxs</code> auch komplexe Module auß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öglich, weil <code>apxs</code> C-Quellcodedateien und
Objektdateien automatisch erkennt. Nur C-Quellcodedateien werden
kompiliert, während die verbleibenden Objektdateien erst fü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