# [C] Apache-Module Programmierung



## Derdada (23. August 2007)

Hallo Zusammen..

Ich versuche schon etwas länger herrauszufinden, wie man in C Modules für den Apache Webserver programmieren kann.

Kennt jemand gute Links dazu?

MfG

Derdada


----------



## Turri (23. August 2007)

Hallo,

Tutorial 1
Tutorial 2

Funktioniert für Apache 2.0.x auf jeden Fall.

MfG Turri


----------



## Derdada (23. August 2007)

Vielen Dnak für die schnelle Antwort!

Das sieht schonmal ziemlich interesant aus.

Nur in der Schule haben wir im Labor nur win2k und kein Linux..

Gibts solche Tutorials auch für Windowssysteme?

MfG

Derdada


----------



## Turri (23. August 2007)

geht auch unter Windows...
Hab in meiner Diplomarbeit so ein Plugin mit bauen müssen.

Mit Visual Studio 2005 kein Problem.


----------



## Derdada (4. September 2007)

Vielen dank für die Antwort.

Gibt es denn ein Freeware Compiler mit dem ich ".so" Dateien erstellen kann

VS 2005 kann ich mir leider nicht leisten 

Und wie kann ich unter Windows ein Modul dem Apache hinzufügen?

Vieln Dank nocheinmal,

Derdada


----------



## Turri (6. September 2007)

Hallo,

Du compilierst einfach deine dll, das Ding muss nicht zwingend mit .so enden.
Das .so rührt nur von Linux her.

Diese .dll oder .so kopierst du in den modules Ordner deines Apache Webservers.
Müsste in der Regel sowas wie "C:\Programme\Apache2\modules\ " sein.

Du schreibst dann in der http.conf:

```
LoadModule myModule modules/myModule.dll
```

Der Name "myModule" muss in der dll dann auch so heissen. 
Das steht aber in dem Tuto auch drin.

Bsp:
	
	
	



```
module AP_MODULE_DECLARE_DATA myModule =
{
  STANDARD20_MODULE_STUFF,
  NULL,
  NULL,
  NULL,
  NULL,
  NULL,
  mod_tut1_register_hooks,      /* callback for registering hooks */
};
```

Tipp zum Debuggen:
Im Visual Studio kann man sich auf laufende Prozesse verbinden. Wenn du die Debugvariante compilierst, kannst du dich auf den Apache Prozess hängen und der Compiler hält dann an deinen Breakpoints an und du kannst schauen was so passiert. 
Wie das bei deinem Compiler geht weiß ich aber nicht.

Natürlich kannst du auch einfach deine Variablen in ein Log schreiben lassen zum prüfen.

MfG Turri


----------

