You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Hayo Schmidt <st...@hayo.de> on 2002/07/24 13:38:22 UTC

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.


Re: Wie compiliere ich ein Apache 2.0-Modul

Posted by Hayo Schmidt <st...@hayo.de>.
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 <st...@hayo.de>
>>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 users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
>--------------------------------------------------------------------------
>
>
>  
>




Re: Wie compiliere ich ein Apache 2.0-Modul

Posted by Erik Abele <er...@dynamicscale.com>.
> Von: Hayo Schmidt <st...@hayo.de>
> 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