Erstellen von httpd mit den enthaltenen Visual Studio-Projektdateien
Anforderungen
Zum Kompilieren von Apache muss die folgende Umgebung ordnungsgemäß installiert sein:
-
Speicherplatz
Stellen Sie sicher, dass mindestens 200 MB freier Speicherplatz zur Verfügung stehen. Nach der Installation benötigt Apache ungefähr 80 MB Speicherplatz sowie Speicherplatz für Protokoll- und Cache-Dateien, die schnell wachsen können. Der tatsächliche Speicherplatzbedarf hängt stark von der gewählten Konfiguration und den Modulen oder Bibliotheken von Drittanbietern ab, insbesondere wenn OpenSSL ebenfalls erstellt wird. Da viele Dateien aus Text bestehen und sehr leicht komprimiert werden können, halbiert die NTFS-Dateisystemkomprimierung diese Anforderungen.
-
Entsprechende Patches
Die httpd-Binärdatei wird mit Hilfe mehrerer Patches für Pakete von Drittanbietern erstellt, die sicherstellen, dass der freigegebene Code erstellt und debuggt werden kann. Diese Patches sind verfügbar und werden ab http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ verteilt und sollten angewendet werden, um identische Ergebnisse wie die „offiziellen“ ASF-verteilten Binärdateien zu erhalten.
-
Microsoft Visual C++ 6.0 (Visual Studio 97) oder höher.
Apache kann mit den Befehlszeilentools oder in der Visual Studio IDE Workbench erstellt werden. Der Befehlszeilenaufbau erfordert, dass die Umgebung die
PATH
,INCLUDE
,LIB
und andere Variablen, die mit dem Skriptvcvars32.bat
konfiguriert werden können.Möglicherweise möchten Sie das Visual Studio Processor Pack für Ihre ältere Version von Visual Studio oder eine Vollversion (nicht Express) neuerer Visual Studio-Editionen für das ml.exe-Assembler. Auf diese Weise können Sie OpenSSL auf Wunsch mithilfe der effizienteren Assemblercode-Implementierung erstellen.Nur die Microsoft Compiler-Toolkette wird von den aktiven httpd-Mitwirkenden aktiv unterstützt. Obwohl das Projekt regelmäßig Patches akzeptiert, um sicherzustellen, dass MinGW und andere alternative Builds funktionieren und verbessert werden, werden sie nicht aktiv gepflegt und im Laufe der normalen Entwicklung häufig beschädigt. -
Aktualisiert Microsoft Windows Platform SDK, Februar 2003 oder höher.
Ein geeignetes Windows-Plattform-SDK ist standardmäßig in den Vollversionen (nicht Express/Lite) von Visual C ++ 7.1 (Visual Studio 2002) und höher enthalten.
Um Visual C ++ 6.0 oder 7.0 (Studio 2000 .NET) verwenden zu können, muss die Platform SDK-Umgebung mit dem Skript
setenv.bat
(vom Platform SDK installiert) vorbereitet werden, bevor der Befehlszeilenbuild oder die msdev / devenv-GUI-Umgebung gestartet werden. Bei der Installation des Platform SDK für Visual Studio Express-Versionen (2003 und höher) sollte die Standardumgebung entsprechend angepasst werden."c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
"c:\Program Files\Platform SDK\setenv.bat" -
Perl und awk
Mehrere hier empfohlene Schritte erfordern einen Perl-Interpreter während des Build-Vorbereitungsprozesses, der jedoch ansonsten nicht erforderlich ist.
Um Apache innerhalb des Build-Systems zu installieren, werden mehrere Dateien mit dem Dienstprogramm
awk.exe
geändert. awk wurde gewählt, da es ein sehr kleiner Download ist (im Vergleich zu Perl oder WSH / VB) und die Aufgabe erfüllt, Konfigurationsdateien bei der Installation zu ändern. Brian Kernighans http://www.cs.princeton.edu/~bwk/btl.mirror/ -Site enthält eine kompilierte native Win32-Binärdatei, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe, die Sie mit dem Namenawk.exe
(stattawk95.exe
) speichern müssen.Wenn awk.exe wird nicht gefunden, Makefile.das Installationsziel von win führt keine Ersetzungen in der installierten aus.conf-Dateien. Sie müssen die installierte manuell ändern.conf-Dateien, damit der Server gestartet werden kann. Suchen und ersetzen Sie alle „@token@“ -Tags nach Bedarf.Die Visual Studio-IDE findetawk.exe
nur über den PFAD oder ausführbaren Pfad, der in den Verzeichnissen des Menüpunkts Extras -> Optionen -> (Projekte ->) angegeben ist. Stellen Sie sicher, awk.exe befindet sich in Ihrem Systempfad.Beachten Sie auch, dass das awk-Dienstprogrammgawk.exe
heißt, wenn Sie Cygwin Tools (http://www.cygwin.com/) verwenden, und dass die Dateiawk.exe
wirklich ein Symlink zur Dateigawk.exe
ist. Die Windows-Befehlsshell erkennt Symlinks nicht, und aus diesem Grund schlägt InstallBin fehl. Eine Problemumgehung besteht darin,awk.exe
aus der Cygwin-Installation zu löschen undgawk.exe
nachawk.exe
zu kopieren. Beachten Sie auch die Cygwin / Mingw-Ports von Gawk 3.0.x waren Buggy, bitte aktualisieren Sie auf 3.1.x, bevor Sie versuchen, einen Gawk-Port zu verwenden. -
zlib-Bibliothek (für
mod_deflate
)Zlib muss in einem
srclib
Unterverzeichnis mit dem Namenzlib
installiert werden. Dies muss an Ort und Stelle gebaut werden. Zlib kann von http://www.zlib.net/ erhalten werden – diemod_deflate
wird bestätigt, dass sie mit Version 1.2.3 korrekt funktioniert.nmake -f win32\Makefile.msc
nmake -f win32\Makefile.msc test -
OpenSSL-Bibliotheken (für
mod_ssl
undab.exe
mit SSL-Unterstützung)Die OpenSSL-Bibliothek ist kryptografische Software. Das Land, in dem Sie derzeit wohnen, kann Beschränkungen für die Einfuhr, den Besitz, die Verwendung und/oder die Wiederausfuhr von Verschlüsselungssoftware in ein anderes Land haben. BEVOR Sie Verschlüsselungssoftware verwenden, überprüfen Sie bitte die Gesetze, Vorschriften und Richtlinien Ihres Landes in Bezug auf den Import, Besitz oder die Verwendung und den Reexport von Verschlüsselungssoftware, um festzustellen, ob dies zulässig ist. Weitere Informationen finden Sie unter http://www.wassenaar.org/.Zum Konfigurieren und Erstellen von OpenSSL muss Perl installiert sein.
OpenSSL muss in einem
srclib
-Unterverzeichnis mit dem Namenopenssl
installiert werden, das von http://www.openssl.org/source/ abgerufen wurde, ummod_ssl
oder dasabs.exe
-Projekt zu kompilieren, das ab ist.c mit aktivierter SSL-Unterstützung. Um OpenSSL für die Verknüpfung mit Apache mod_ssl oder abs vorzubereiten.exe, und deaktivieren Sie die belasteten Funktionen in OpenSSL, können Sie die folgenden Build-Befehle verwenden:perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
ms\do_masm.bat
nmake -f ms\ntdll.makEs ist nicht ratsam, zlib-dynamic zu verwenden, da dadurch die Kosten für die Deflation von SSL-Streams auf die erste Anforderung übertragen werden, die die ZLIB-DLL laden muss. Hinweis Der vorgeschlagene Patch aktiviert das Flag -L für die Arbeit mit Windows-Builds und korrigiert den Namen von zdll.lib und sicherstellt .pdb-Dateien werden zur Fehlerbehebung generiert. Wenn der Assembler nicht installiert ist, fügen Sie oben no-asm hinzu und verwenden ms\do_ms.bat anstelle von ms\do_masm .bat-Skript. -
Datenbankbibliotheken (für
mod_dbd
undmod_authn_dbm
)Die apr-util-Bibliothek stellt dem httpd-Server und seinen Modulen die Clientfunktionalität dbm (Keyed Database) und dbd (Query Oriented Database) zur Verfügung, z. B. Authentifizierung und Autorisierung. Die sdbm dbm- und odbc dbd-Anbieter werden bedingungslos kompiliert.
Die dbd-Unterstützung umfasst das Oracle Instantclient-Paket, MySQL, PostgreSQL und sqlite. Um diese alle zu erstellen, richten Sie beispielsweise die Bibliothek so ein, dass sie den Bibliothekspfad, INCLUDE den Header-Pfad und PATH den DLL-Bin-Pfad aller vier SDKs enthält, und legen Sie die Umgebungsvariable DBD_LIST fest, um den Build darüber zu informieren, welche Client-Treiber-SDKs korrekt installiert sind, z.;
set DBD_LIST=sqlite3 pgsql oracle mysql
In ähnlicher Weise kann die DBM-Unterstützung mit DBM_LIST erweitert werden, um einen Berkeley DB Provider (db) und / oder gdbm Provider zu erstellen, indem zuerst LIB, INCLUDE und PATH konfiguriert werden, um sicherzustellen, dass die Bibliotheken und Header der Client-Bibliothek verfügbar sind.
set DBM_LIST=db gdbm
Abhängig von der Auswahl der Datenbankdistributionen kann es erforderlich sein, den tatsächlichen Linkzielnamen (z. B. gdbm.in: lib vs. libgdb.lib), die in der entsprechenden aufgeführt sind.dsp/.mak-Dateien in den Verzeichnissen srclib\apr-util\dbd oder …\dbm.Siehe README-win32.txt-Datei für weitere Hinweise zum Abrufen der verschiedenen Datenbanktreiber-SDKs.
Erstellen aus Unix-Quellen
Die Richtlinie des Apache HTTP Server-Projekts besteht darin, nur Unix-Quellen freizugeben. Windows-Quellpakete, die zum Download bereitgestellt werden, wurden von Freiwilligen bereitgestellt und sind möglicherweise nicht für jede Version verfügbar. Sie können den Server weiterhin unter Windows aus dem Unix-Quell-Tarball mit nur wenigen zusätzlichen Schritten erstellen.
- Laden Sie den Unix-Quell-Tarball für die neueste Version herunter und entpacken Sie ihn.
- Laden und entpacken Sie den Unix-Quell-Tarball für die neueste Version von APR, AR-Util und APR-Iconv und legen Sie diese Quellen in die Verzeichnisse httpd-2.x.x\srclib\apr, httpd-2.x.x\srclib\apr-util und httpd-2.x.x\srclib\apr-iconv
- Öffnen Sie eine Eingabeaufforderung und stellen Sie eine Verbindung zum httpd-2 her.x.x-Ordner
- Führen Sie das Dienstprogramm zur Konvertierung von Zeilenenden an der Eingabeaufforderung aus;
perl srclib\apr\build\lineends.pl
Sie können den Server jetzt mit der Visual Studio-Entwicklungsumgebung mithilfe der IDE erstellen. Befehlszeilen-Builds des Servers sind aus Unix-Quellen nur möglich, wenn Sie sie exportieren .mak-Dateien wie unten erläutert.
Befehlszeilen-Build
Makefile.win
ist das Apache-Makefile der obersten Ebene. Um Apache unter Windows zu kompilieren, verwenden Sie einfach einen der folgenden Befehle, um den release
– oder debug
-Flavor zu erstellen:
nmake /f Makefile.win _apacher
nmake /f Makefile.win _apached
Jeder Befehl kompiliert Apache. Letzteres deaktiviert die Optimierung der resultierenden Dateien, wodurch es einfacher wird, den Code in einem Schritt zu bearbeiten, um Fehler zu finden und Probleme aufzuspüren.
Sie können Ihre apr-util dbd- und dbm-Providerauswahl mit den zusätzlichen make (environment) -Variablen DBD_LIST und DBM_LIST hinzufügen, siehe die Kommentare zu Datenbankbibliotheken oben. Überprüfen Sie die ersten Kommentare in Makefile.win für zusätzliche Optionen, die beim Aufrufen des Builds bereitgestellt werden können.
Developer Studio Workspace IDE Build
Apache kann auch mit der Visual Studio-Entwicklungsumgebung von VC ++ kompiliert werden. Um diesen Prozess zu vereinfachen, wird ein Visual Studio-Arbeitsbereich Apache.dsw
bereitgestellt. In diesem Arbeitsbereich wird die gesamte Liste der .dsp
-Projekte angezeigt, die für die vollständige Apache-Binärversion erforderlich sind. Es enthält Abhängigkeiten zwischen den Projekten, um sicherzustellen, dass sie in der entsprechenden Reihenfolge erstellt werden.
Öffnen Sie den Apache.dsw
-Arbeitsbereich und wählen Sie InstallBin
(Release
oder Debug
build, wie gewünscht) als aktives Projekt aus. InstallBin
bewirkt, dass alle zugehörigen Projekte erstellt werden, und ruft dann Makefile.win
auf, um die kompilierten ausführbaren Dateien und DLLs zu verschieben. Sie können die Auswahl von INSTDIR=
personalisieren, indem Sie die Einstellungen von InstallBin
, Registerkarte Allgemein, Befehlszeileneintrag erstellen ändern. INSTDIR
ist standardmäßig das Verzeichnis /Apache2
. Wenn Sie nur eine Testkompilierung (ohne Installation) wünschen, können Sie stattdessen das BuildBin
-Projekt erstellen.
Die .dsp
-Projektdateien werden im Visual Studio 6.0 (98) -Format verteilt. In: Visual C++ 5.0 (97) wird sie erkennen. Benutzer von Visual Studio 2002 (.NET) und höher müssen Apache.dsw
plus die .dsp
-Dateien in Apache.sln
plus .msproj
-Dateien konvertieren. Stellen Sie sicher, dass Sie die .msproj
-Datei erneut konvertieren, wenn sich die .dsp
-Quelldatei ändert! Öffnen Sie einfach Apache.dsw
in der VC ++ 7.0-IDE erneut und konvertieren Sie sie erneut.
perl srclib\apr\build\cvtdsp.pl -2005
konvertiert die / D-Flags für RC-Flags, um eine alternative, analysierbare Syntax zu verwenden; Leider wird diese Syntax von Visual Studio 97 oder seinen Vorgängern nicht unterstützt.mak-Dateien. Diese /D-Flags werden verwendet, um die lange Beschreibung des mod_apachemodule.so dateien auf die freigegebene .rc resource version-Bezeichner erstellen.
perl srclib\apr\build\cvtdsp.pl -ossl11
Benutzer von Visual Studio 2002 (.NET) und höher sollten auch das Build-Menü im Dialogfeld Configuration Manager verwenden, um sowohl die Debug
– als auch die Release
-Lösungsmodule abs
, mod_deflate
und mod_ssl
-Komponenten sowie alle Komponenten, die mit apr_db*
beginnen, zu deaktivieren. Diese Module werden durch Aufrufen von nmake
oder der IDE direkt mit dem BinBuild
-Ziel erstellt, das diese Module bedingt erstellt, wenn die srclib
-Verzeichnisse openssl
und / oder zlib
vorhanden sind, und basierend auf der Einstellung von DBD_LIST
und DBM_LIST
Umgebungsvariablen.
Exportieren der Befehlszeile .mak-Dateien
Und .mak
Dateien stellen einen größeren Aufwand dar, sind jedoch für Visual C ++ 5.0-Benutzer erforderlich, um mod_ssl
, abs (ab
mit SSL-Unterstützung) und / oder mod_deflate
zu erstellen. Der .mak-Dateien unterstützen auch eine breitere Palette von C ++ – Toolkettendistributionen wie Visual Studio Express.
Sie müssen zuerst alle Projekte erstellen, um alle dynamisch automatisch generierten Ziele zu erstellen, damit Abhängigkeiten korrekt analysiert werden können. Erstellen Sie das gesamte Projekt aus Visual Studio 6 heraus.0 (98) IDE, mit dem Ziel BuildAll
, dann verwenden Sie das Projektmenü Export für alle Makefiles (aktivieren Sie „mit Abhängigkeiten“.) Führen Sie den folgenden Befehl aus, um absolute Pfade in relative Pfade zu korrigieren, damit sie überall erstellt werden:
perl srclib\apr\build\fixwin32mak.pl
Sie müssen diesen Befehl aus dem obersten Verzeichnis des httpd-Quellbaums eingeben. Jede .mak
– und .dep
-Projektdatei im aktuellen Verzeichnis und darunter wird korrigiert und die Zeitstempel an die .dsp
angepasst.
Überprüfen Sie immer die generierten .mak
– und .dep
-Dateien auf Platform SDK oder andere lokale, maschinenspezifische Dateipfade. Das Verzeichnis DevStudio\Common\MSDev98\bin\
(VC6) enthält eine Datei sysincl.dat
, in der alle Ausnahmen aufgelistet sind. Aktualisieren Sie diese Datei (einschließlich vorwärts- und rückwärtsgestrichener Pfade, z. B. sys/time.h
und sys\time.h
), um solche neueren Abhängigkeiten zu ignorieren. Wenn Sie lokale Installationspfade in eine verteilte .mak
-Datei aufnehmen, schlägt der Build vollständig fehl.
Wenn Sie einen Patch zurückbringen, der Projektdateien überarbeitet, müssen wir Projektdateien im Visual Studio 6.0-Format festschreiben. Änderungen sollten einfach sein, mit minimalen Kompilierungs- und Verknüpfungsflags, die von allen Visual Studio-Umgebungen erkannt werden können.
Installation
Sobald Apache kompiliert wurde, muss es in seinem Serverstammverzeichnis installiert werden. Der Standardwert ist das Verzeichnis \Apache2
desselben Laufwerks.
Verwenden Sie einen der folgenden nmake
-Befehle, um alle Dateien automatisch im gewünschten Ordnerverzeichnis zu erstellen und zu installieren:
nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir
Das Argument dir für INSTDIR
gibt das Installationsverzeichnis an; es kann weggelassen werden, wenn Apache in \Apache22
(des aktuellen Laufwerks) installiert werden soll.
Warnung zum Erstellen von Apache aus dem Entwicklungsbaum
.dsp
-Dateien werden zwischen release
-Builds verwaltet. Die .mak
-Dateien werden aufgrund der enormen Zeitverschwendung des Überprüfers NICHT neu generiert. Daher können Sie sich nicht auf die obigen NMAKE
-Befehle verlassen, um alle .dsp
-Projektdateien zu erstellen, es sei denn, Sie exportieren dann alle .mak
-Dateien selbst aus dem Projekt. Dies ist nicht erforderlich, wenn Sie in der Microsoft Developer Studio-Umgebung erstellen.