Ich konnte es in der Tat mit 'gcc -fpic -DEAPI -DSHARED_MODULE -I /usr/local/apache2/include/ -c mod_replace.c' übersetzen und es läuft auch im Apache 2.
Die naheliegende Übersetzung mit apxs, die ich schon vorher probiert hatte, war nicht hinzubekommen. Offenbar schieße ich mir durch einen gleichzeitig installierten Apache 1.3 selbst ins Knie. SuSE installiert diverse Apache-Binaries auf dem Pfad, so daß wohl unbeabsichtigt veraltete Versionen verwendet werden. Leider nur schwer nachzuvollziehen, insbesondere da den Programmen eine Versionsabfrageoption fehlt.


Danke für die Hinweise.
Hayo

Erik Abele schrieb:

Von: Hayo Schmidt <[EMAIL PROTECTED]>
Antworten an: users-de@httpd.apache.org
Datum: Wed, 24 Jul 2002 13:38:22 +0200
An: users-de@httpd.apache.org
Betreff: Wie compiliere ich ein Apache 2.0-Modul

Ich habe mir die Quelltextdistribution von Apache 2.0.39 besorgt.
Außerdem einen Modulquelltext mod_replace.c aus einer Drittquelle
(http://pihl.kumpu.org/apache2/). Dieses Modul möchte ich übersetzen,
kriege es aber trotz stundenlanger Dokumentationssuche und diversester
Versuchsanordnungen nicht hin .
Theoretisch habe ich angenommen, ich könnte das Modul z.B. in das
modules/experimental-Verzeichnis legen und mit ./configure
--enable-replace einbinden. (Wenn ich dem experimental/README glauben
würde müßte ich --enable--replace angeben, aber das erscheint mir
suspekt). Nützt aber nichts, es wird nicht in die make-Skripte eingebunden.
Was muß ich also machen? Wo ist das Zeug dokumentiert?

Hayo Schmidt

Systemumgebung:
Apache 2.0.39
SuSE-Linux 7.3

P.S.: Wer sich wundert, warum ich das Modul trotzdem anwenden kann
(siehe letzte Mail): ich habe es zu mod_example umbenannt und dem Apache
untergeschoben.



Hi !

Manuell (also nicht per apache-configure/make) kann man folgende
Compiler-/Linker-Aufrufe verwenden um ein Modul zu builden:

$ gcc -fpic -DEAPI -DSHARED_MODULE -I/path/to/apache-includes -c mod_foo.c
$ ld -O2 -s -Bshareable -o mod_foo.so mod_foo.o

Die erstellte .so sollte auf Suse dann auch ohne weiteres laufen...Pfade zu
den Includes und ggf. andere Params (-D switch) sollten dann halt noch
angegeben werden.

Als Alternative bleibt natürlich noch der Weg über apxs:

$ cd /path/to/3rdparty
$ apxs -c mod_foo.c
$ apxs -i -a -n foo mod_foo.so

Infos: http://httpd.apache.org/docs/programs/apxs.html

-erik


--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de" unsubscribe-Anfragen an [EMAIL PROTECTED]
sonstige Anfragen an [EMAIL PROTECTED]
--------------------------------------------------------------------------










Antwort per Email an