This document should be reviewed by someone, who is experienced
with Microsoft Developer Studio.

Jobst




Title: Apache für Microsoft Windows kompilieren






  Plattform-spezifische Anmerkungen

  

  

Bevor Sie mit dem Kompilieren des Apache beginnen können, müssen Sie einige wichtige Punkte beachten. (Siehe Apache für Microsoft Windows einsetzen).

Anforderungen an das Betriebssystem

Für das Kompilieren des Apache muss die Umgebung wie folgt eingerichtet sein:

  • Festplattenspeicher

    Sie benötigen mindestens 50 MByte freien Festplattenspeicher. Nach der Installation benötigt der Apache ungefähr 10 MByte Festplattenspeicher, sowie zusätzlichen Platz für Protokoll- und Cache-Dateien. Dieser Bedarf kann aber sehr schnell ansteigen. Der tatsächlich benötigte Festplattenspeicher variiert je nach der gewählten Konfiguration und dem Anteil der Module oder Bibliotheken von anderen Herstellern ganz beträchtlich.

  • Microsoft Visual C++ 5.0 oder spätere Versionen.

    Der Apache kann mit Befehlen über die Befehlszeile oder mit der Entwicklungsumgebung Visual Studio aufgebaut werden. Bei dem Weg über die Befehlszeile müssen für die Umgebung die Variablen PATH, INCLUDE, LIB sowie weitere Variablen entsprechend gesetzt werden, was mit der Stapeldatei vcvars32 geschehen kann:

    "c:\Programme\DevStudio\VC\Bin\vcvars32.bat"
  • Das Windows-SDK.

    Für das Kompilieren mit Visual C++ 5.0 wird das aktualisierte Microsoft Windows-SDK benötigt, damit einige Apache-Eigenschaften aktiviert werden können. Für die Einrichtung über die Befehlszeile wird die SDK-Umgebung mit der Stapeldatei setenv vorbereitet:

    "c:\Programme\Platform SDK\setenv.bat"

    Die SDK-Dateien von Visual C++ 6.0 und späteren Versionen reichen aus, so dass Benutzer späterer Versionen diesen Punkt außer Acht lassen können.

    Beachten Sie, dass das aktualisierte Windows-SDK erforderlich ist, um alle unterstützten mod_isapi-Eigenschaften zu aktivieren. Ohne Aktualisierung gibt der Apache bei MSVC++ 5.0 Warnungen aus, die darauf hinweisen, das einige mod_isapi-Eigenschaften deaktiviert sind. Ein Update finden Sie unter der Adresse http://msdn.microsoft.com/downloads/sdks/platform/platform.asp.
  • Das Programm awk (awk, gawk oder ein ähnliches Programm).

    Um den Apache mit dem Einrichtungssystem zu installieren, werden mehrere Dateien mit dem Programm awk.exe modifiziert. Dieses Programm wurde gewählt, weil es sehr schnell herunterzuladen ist (im Vergleich zu Perl oder WSH/VB) und das Erzeugen von Dateien übernimmt. Unter der Adresse http://cm.bell-labs.com/cm/cs/who/bwk/ finden Sie eine kompilierte ausführbare Win32-Datei (http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe) von Brian Kernighan, die Sie unter dem Namen awk.exe und nicht unter dem Namen awk95.exe speichern müssen.

    Die Microsoft Entwicklungsumgebung findet awk.exe nur, wenn das Programm der Liste der ausführbaren Dateien der Menüoption "Externe Progarmme" des Menüs "Extras" hinzugefügt wurde. Fügen Sie den Pfad für awk.exe bei Bedarf auch der Umgebungsvariablen PATH Ihres Systems hinzu. Beachten Sie außerdem, dass bei Verwendung von Cygwin (http://www.cygwin.com/) das awk-Programm gawk.exe heißt und dass die Datei awk.exe ein symbolischer Link zu gawk.exe ist. Die Windows-Eingabeaufforderung erkennt keine symbolischen Links und daher schlägt InstallBin fehl. Ein Workaround ist das Löschen von awk.exe in der cygwin-Installation und das Umbenennen von gawk.exe in awk.exe.
  • [Optional] OpenSSL-Bibliotheken (für mod_ssl und ab.exe mit SSL-Support)

    Achtung: Für die Verwendung und Distribution starker Verschlüsselung und patentierten Eigentums gibt es weltweit strenge Einschränkungen und Verbote. OpenSSL beinhaltet eine starke Verschlüsselung, für in den USA und in anderen Ländern Exportbestimmungen und inländische gesetzliche sowie patentrechtliche Bestimmungen gelten. Weder die Apache Software Foundation noch OpenSSL-Projekt können rechtsverbindliche Aussagen zum Besitz, zur Verwendung oder Distribution des Codes des OpenSSL-Projekts geben. Für die rechtliche Absicherung sind Sie selbst verantwortlich.

    OpenSSL erhalten Sie unter der Adresse http://www.openssl.org/source/ und muss in einem srclib-Unterverzeichnis mit der Bezeichnung openssl installiert werden, um mod_ssl oder das abs-Projekt (ab.exe mit SSL-Support) kompilieren zu können. Um OpenSSL für release- und debug-Versionen des Apache vorzubereiten und um die patentgeschützten Eigenschaften von 0.9.7 zu deaktivieren, können Sie folgende Befehle benutzen:

    perl Configure VC-WIN32
    perl util\mkfiles.pl >MINFO
    perl util\mk1mf.pl dll no-asm no-mdc2 no-rc5 no-idea VC-WIN32 >makefile
    perl util\mk1mf.pl dll debug no-asm no-mdc2 no-rc5 no-idea VC-WIN32 >makefile.dbg
    perl util\mkdef.pl 32 libeay no-asm no-mdc2 no-rc5 no-idea >ms\libeay32.def
    perl util\mkdef.pl 32 ssleay no-asm no-mdc2 no-rc5 no-idea >ms\ssleay32.def
    nmake
    nmake -f makefile.dbg
  • [Optional] zlib-Quellcode (für mod_deflate)

    Zlib muss in einem srclib-Unterverzeichnis mit dem Namen zlib installiert werden, dieser Quellcode muss aber nicht kompiliert werden. Der Kompressions-Quellcode wird direkt in das Modul mod_deflate kompiliert. Zlib erhalten Sie unter der Adresse http://www.gzip.org/zlib/ -- mod_deflate wird mit der Version 1.1.4 korrekt eingerichtet.

Die Einrichtung über die Befehlszeile

Entpacken Sie zuerst die Apache-Distribution in ein entsprechendes Verzeichnis. Öffnen Sie eine Eingabeaufforderung und wechseln Sie mit cd in dieses Verzeichnis.

Die Grundanweisungen stehen in der Datei Makefile.win. Um Apache für Windows NT als release- oder debug-Version zu kompilieren, benutzen Sie einfach einen der folgenden Befehle:

nmake /f Makefile.win _apacher

nmake /f Makefile.win _apached
    

In beiden Fällen wird der Apache kompiliert. Bei Verwendung des letzten Befehls enthalten die resultierenden Dateien Debug-Informationen, die die Fehlersuche und das Nachvollziehen von Problemen erleichtern.

Die Einrichtung mit der Microsoft Entwicklungsumgebung

Der Apache kann auch mit der Entwicklungsumgebung Visual Studio C++ kompiliert werden. Um diesen Prozess zu vereinfachen, wird ein Visual Studio-Arbeitsbereich bereitgestellt (Apache.dsw). Dieser Arbeitsbereich enthält die gesamten .dsp-Projekte, die für die vollständige ausführbare Apache-Version erforderlich sind. Sie berücksichtigt die Abhängigkeiten zwischen den Projekten, um sicherzustellen, dass die Projekte in der richtigen Reihenfolge kompiliert werden.

Öffnen Sie den Arbeitsbereich Apache.dsw und wählen Sie InstallBin (Release oder Debug ) als aktives Projekt. Bei Wahl der Option InstallBin werden alle betroffenen Projekte kompiliert und anschließend Makefile.win aufgerufen, um die kompilierten ausführbaren Dateien und DLLs zu verschieben. Sie können die INSTDIR=-Einstellung über die InstallBin-Einstellungen ändern. Die Voreinstellung für INSTDIR ist das Verzeichnis /Apache2. Möchten Sie nur einen Test durchführen (ohne Installation), dann können Sie stattdessen ein BuildBin-Projekt kompilieren.

Die .dsp-Projektdateien haben das Format von Visual C++ 6.0. Visual C++ 5.0 (97) erkennt dieses Format. Visual C++ 7.0 (.net) muss Apache.dsw und die .dsp-Dateien in Apache.sln- und .msproj-Dateien umwandeln. Achten Sie darauf, dass Sie die .msproj-Datei wieder zurück umwandeln, wenn sich der Quellcode einer der .dsp-Dateien ändert! Das ist sehr einfach, öffnen Apache.dsw noch einmal mit der Entwicklungsumgebung VC++ 7.0.

Benutzer von Visual C++ 7.0 (.net) sollten außerdem den Konfigurations-Manager aus dem Menü "Erstellen" benutzen, um die Option Debug und Release für die Projekte abs, mod_ssl und mod_deflate zu deaktivieren. Diese Module werden über den Aufruf von nmake oder einen direkten IDE-Aufruf mit BinBuild als Ziel aufgerufen, um diese Module nur dann explizit zu kompilieren, wenn die srclib-Verzeichenisse openssl und/oder zlib vorhanden sind.

Exportierte .mak-Dateien bereiten mehr Mühe, sie werden aber von Visual C++ 5.0-Benutzern zum Kompilieren von mod_ssl, abs (ab mit SSL-Support) und/oder mod_deflate benötigt. Benutzer von VC++ 7.0 (.net) profitieren ebenfalls davon, denn nmake ist schneller als binenv. Erstellen Sie das gesamte Projekt mit VC++ 5.0 oder 6.0 IDE und exportieren Sie anschließend alle Makefiles. Sie müssen die Projekte zuerst erstellen, um alle dynamisch selbstständig erzeugten Ziele zu erzeugen, damit Abhängigkeiten korrekt analysiert werden können. Führen Sie den folgenden Befehl aus, damit die Pfade überall eingerichtet werden:

perl srclib\apr\build\fixwin32mak.pl

Sie müssen diesen Befehl im obersten Verzeichnis des httpd-Quellcodebaumes eingeben. Jede .mak- und .dep-Projektdatei innerhalb des aktuellen Verzeichnisses und darunter sowie die Zeitstempel entsprechend der .dsp-Datei werden korrigiert.

Für einen Patch, der Projektdateien überarbeitet, werden Projektdateien im Format von Visual Studio 6.0 benötigt. Änderungen sollten einfach und mit minimaler Anzahl an Compiler- und Linker-Flags gestaltet sein, um von allen Entwicklungsumgebungen erkannt werden (VC++ 5.0 bis 7.0).

Projektkomponenten

Der Arbeitsbereich Apache.dsw und das nmake-Skript makefile.win erstellen beide in der folgenden Reihenfolge die .dsp-Projekte des Apache-Servers:

  1. srclib\apr\apr.dsp
  2. srclib\apr\libapr.dsp
  3. srclib\apr-util\uri\gen_uri_delims.dsp
  4. srclib\apr-util\xml\expat\lib\xml.dsp
  5. srclib\apr-util\aprutil.dsp
  6. srclib\apr-util\libaprutil.dsp
  7. srclib\pcre\dftables.dsp
  8. srclib\pcre\pcre.dsp
  9. srclib\pcre\pcreposix.dsp
  10. server\gen_test_char.dsp
  11. libhttpd.dsp
  12. Apache.dsp

Darüber hinaus enthält der Unterverzeichniszweig modules\ Projektdateien für die meisten Module.

Das support\-Verzeichnis enthält Projektdateien für zusätzliche Programme, die nicht zum Laufzeitteil des Apache gehören, mit denen der Administrator aber Tests durchführen und Passwort- oder Protokolldateien verwalten kann. Windows-spezifische Support-Projekte befinden sich im Verzeichnis support\win32\.

  1. support\ab.dsp
  2. support\htdigest.dsp
  3. support\htpasswd.dsp
  4. support\logresolve.dsp
  5. support\rotatelogs.dsp
  6. support\win32\ApacheMonitor.dsp
  7. support\win32\wintty.dsp

Nachdem der Apache kompiliert wurde, muss er im Hauptverzeichnis des Servers installiert werden. Standardmäßig ist dies das Verzeichnis \Apache2 auf dem gleichen Laufwerk.

Um die Dateien automatisch im gewünschten Ordner dir einzurichten und zu installieren, benutzen Sie folgende nmake-Befehle:

nmake /f Makefile.win installr INSTDIR=dir

nmake /f Makefile.win installd INSTDIR=dir
    

Das Argument dir für INSTDIR gibt das Installationsverzeichnis an. Erfolgt die Installation im Verzeichnis \Apache2, kann es weggelassen werden.

Folgende Dateien und Verzeichnisse werden installiert:

  • dir\bin\Apache.exe - Der ausführbare Apache
  • dir\bin\ApacheMonitor.exe - Dienstüberwachungsprogramm als Symbol in der Task-Leiste
  • dir\bin\htdigest.exe - Hilfsprogramm für die Passwortdatei der Digest-Authentifizierung
  • dir\bin\htdbm.exe - Hilfsprogramm für die Passwortdatei der SDBM-Authentifizierungsdatenbank
  • dir\bin\htpasswd.exe - Hilfsprogramm für die Passwortdatei der Basic-Authentifizierung
  • dir\bin\logresolve.exe - Hilfsprogramm für die DNS-Namenssuche
  • dir\bin\rotatelogs.exe - Hilfsprogramm für den Wechsel der Protokolldateien
  • dir\bin\wintty.exe - Hilfsprogramm für das Konsolenfenster
  • dir\bin\libapr.dll - Shared Library der Apache Portable Runtime
  • dir\bin\libaprutil.dll - Shared Library der Apache-Laufzeitumgebung
  • dir\bin\libhttpd.dll - Apache Core-Bibliothek
  • dir\modules\mod_*.so - Ladbare Apache-Module
  • dir\conf - Konfigurationsverzeichnis
  • dir\logs - Leeres Protokollverzeichnis
  • dir\include - C-Header-Dateien
  • dir\lib - Link-Bibliotheksdateien
Warnung bezüglich der Einrichtung des Apache aus dem Entwicklungszweig Beachten Sie, dass zwischen den einzelnen release-Kompilierungen nur die .dsp-Dateien gepflegt werden. Die .mak-Dateien werden wegen des enormen Zeitaufwandes nicht neu erzeugt. Daher können Sie sich nicht auf die oben angegebenen NMAKE-Befehle verlassen, wenn Sie überarbeitete .dsp-Projektdateien kompilieren möchten, es sein denn, Sie exportieren alle .mak-Dateien aus dem Projekt. Das ist nicht notwendig, wenn Sie die Microsoft Entwicklungsumgebung benutzen.. Beachten Sie außerdem, dass es sehr sinnvoll ist, das BuildBin-Projekt (oder für die Befehlszeile _apacher oder _apached) zu erstellen, bevor die Makefiles exportiert werden. Viele Dateien werden während des Erstellungsprozesses automatisch erzeugt. Nur eine vollständige Einrichtung enthält alle abhängigen Dateien, die zum Erstellen eines korrekten Abhängigkeitenbaums für das Kompilieren erforderlich sind.

Um .mak-Dateien für eine Distribution zu erstellen, sollten Sie immer die erzeugten .mak-Dateien (oder .dep-Dateien) auf Abhängigkeiten zum SDK oder auf andere überflüssige Einbindungen hin überprüfen. Das Verzeichnis DevStudio\SharedIDE\bin\ (VC5) beziehungsweise DevStudio\Common\MSDev98\bin\ (VC6) enthält die Datei sysincl.dat, die alle Ausnahmen aufführen muss. Aktualisieren Sie diese Datei (einschließlich der Pfade mit normalem Schrägstrich und Backslashs wie sys/time.h Bei Übernahme lokaler Installationspfade in eine .mak-Distributionsdatei funktioniert das Erstellen nicht. Und vergessen Sie nicht, srclib/apr/build/fixwin32mak.pl auszuführen, um absolute Pfade in den .mak-Dateien zu beseitigen.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to