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,LIBsowie weitere Variablen entsprechend gesetzt werden, was mit der Stapeldateivcvars32geschehen 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
setenvvorbereitet:"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 einigemod_isapi -Eigenschaften deaktiviert sind. Ein Update finden Sie unter der Adresse http://msdn.microsoft.com/downloads/sdks/platform/platform.asp.Das Programm
awk(awk,gawkoder ein ähnliches Programm).Um den Apache mit dem Einrichtungssystem zu installieren, werden mehrere Dateien mit dem Programm
awk.exemodifiziert. 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 Namenawk.exeund nicht unter dem Namenawk95.exespeichern müssen.Die Microsoft Entwicklungsumgebung findet awk.exenur, 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ürawk.exebei Bedarf auch der UmgebungsvariablenPATHIhres Systems hinzu.Beachten Sie außerdem, dass bei Verwendung von Cygwin (http://www.cygwin.com/) das awk-Programmgawk.exeheißt und dass die Dateiawk.exeein symbolischer Link zugawk.exeist. Die Windows-Eingabeaufforderung erkennt keine symbolischen Links und daher schlägtInstallBinfehl. Ein Workaround ist das Löschen vonawk.exein dercygwin-Installation und das Umbenennen vongawk.exeinawk.exe.[Optional] OpenSSL-Bibliotheken (für
mod_ssl undab.exemit 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 Bezeichnungopensslinstalliert werden, ummod_ssl oder das abs-Projekt (ab.exemit SSL-Support) kompilieren zu können. Um OpenSSL fürrelease- unddebug-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 Namenzlibinstalliert werden, dieser Quellcode muss aber nicht kompiliert werden. Der Kompressions-Quellcode wird direkt in das Modulmod_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
cdin dieses Verzeichnis.Die Grundanweisungen stehen in der Datei
Makefile.win. Um Apache für Windows NT alsrelease- oderdebug-Version zu kompilieren, benutzen Sie einfach einen der folgenden Befehle:nmake /f Makefile.win _apacher nmake /f Makefile.win _apachedIn 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.dswund wählen SieInstallBin(ReleaseoderDebug) als aktives Projekt. Bei Wahl der OptionInstallBinwerden alle betroffenen Projekte kompiliert und anschließendMakefile.winaufgerufen, um die kompilierten ausführbaren Dateien und DLLs zu verschieben. Sie können dieINSTDIR=-Einstellung über dieInstallBin-Einstellungen ändern. Die Voreinstellung fürINSTDIRist das Verzeichnis/Apache2. Möchten Sie nur einen Test durchführen (ohne Installation), dann können Sie stattdessen einBuildBin-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) mussApache.dswund die.dsp-Dateien inApache.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, öffnenApache.dswnoch 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
DebugundReleasefür die Projekte abs,mod_ssl undmod_deflate zu deaktivieren. Diese Module werden über den Aufruf vonnmakeoder einen direkten IDE-Aufruf mitBinBuildals Ziel aufgerufen, um diese Module nur dann explizit zu kompilieren, wenn diesrclib-Verzeichenisseopensslund/oderzlibvorhanden sind.Exportierte
.mak-Dateien bereiten mehr Mühe, sie werden aber von Visual C++ 5.0-Benutzern zum Kompilieren vonmod_ssl , abs (ab mit SSL-Support) und/odermod_deflate benötigt. Benutzer von VC++ 7.0 (.net) profitieren ebenfalls davon, dennnmakeist schneller alsbinenv. 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.dswund dasnmake-Skriptmakefile.winerstellen beide in der folgenden Reihenfolge die.dsp-Projekte des Apache-Servers:
srclib\apr\apr.dspsrclib\apr\libapr.dspsrclib\apr-util\uri\gen_uri_delims.dspsrclib\apr-util\xml\expat\lib\xml.dspsrclib\apr-util\aprutil.dspsrclib\apr-util\libaprutil.dspsrclib\pcre\dftables.dspsrclib\pcre\pcre.dspsrclib\pcre\pcreposix.dspserver\gen_test_char.dsplibhttpd.dspApache.dspDarü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 Verzeichnissupport\win32\.
support\ab.dspsupport\htdigest.dspsupport\htpasswd.dspsupport\logresolve.dspsupport\rotatelogs.dspsupport\win32\ApacheMonitor.dspsupport\win32\wintty.dspNachdem der Apache kompiliert wurde, muss er im Hauptverzeichnis des Servers installiert werden. Standardmäßig ist dies das Verzeichnis
\Apache2auf 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=dirDas Argument dir für
INSTDIRgibt 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 Apachedir\bin\ApacheMonitor.exe- Dienstüberwachungsprogramm als Symbol in der Task-Leistedir\bin\htdigest.exe- Hilfsprogramm für die Passwortdatei der Digest-Authentifizierungdir\bin\htdbm.exe- Hilfsprogramm für die Passwortdatei der SDBM-Authentifizierungsdatenbankdir\bin\htpasswd.exe- Hilfsprogramm für die Passwortdatei der Basic-Authentifizierungdir\bin\logresolve.exe- Hilfsprogramm für die DNS-Namenssuchedir\bin\rotatelogs.exe- Hilfsprogramm für den Wechsel der Protokolldateiendir\bin\wintty.exe- Hilfsprogramm für das Konsolenfensterdir\bin\libapr.dll- Shared Library der Apache Portable Runtimedir\bin\libaprutil.dll- Shared Library der Apache-Laufzeitumgebungdir\bin\libhttpd.dll- Apache Core-Bibliothekdir\modules\mod_*.so- Ladbare Apache-Moduledir\conf- Konfigurationsverzeichnisdir\logs- Leeres Protokollverzeichnisdir\include- C-Header-Dateiendir\lib- Link-BibliotheksdateienWarnung 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 angegebenenNMAKE-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_apacheroder_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 VerzeichnisDevStudio\SharedIDE\bin\(VC5) beziehungsweiseDevStudio\Common\MSDev98\bin\(VC6) enthält die Dateisysincl.dat, die alle Ausnahmen aufführen muss. Aktualisieren Sie diese Datei (einschließlich der Pfade mit normalem Schrägstrich und Backslashs wiesys/time.hBei Übernahme lokaler Installationspfade in eine.mak-Distributionsdatei funktioniert das Erstellen nicht. Und vergessen Sie nicht,srclib/apr/build/fixwin32mak.plauszuführen, um absolute Pfade in den.mak-Dateien zu beseitigen.--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
