Kompilowanie Apache dla Microsoft Windows

budowanie httpd z dołączonymi plikami projektu Visual Studio

wymagania

Kompilowanie Apache wymaga prawidłowego zainstalowania następującego środowiska:

  • miejsce na dysku

    upewnij się, że masz co najmniej 200 MB wolnego miejsca na dysku. Po instalacji Apache wymaga około 80 MB miejsca na dysku, plus miejsce na pliki dziennika i pamięci podręcznej, które mogą szybko rosnąć. Rzeczywiste wymagania dotyczące miejsca na dysku będą się znacznie różnić w zależności od wybranej konfiguracji i modułów lub bibliotek innych firm, zwłaszcza gdy OpenSSL jest również zbudowany. Ponieważ wiele plików jest tekstowych i bardzo łatwo skompresowanych, kompresja systemu plików NTFS zmniejsza te wymagania o połowę.

  • odpowiednie łaty

    plik binarny httpd jest budowany przy pomocy kilku łat do pakietów innych firm, które zapewniają, że wydany kod jest budowany i debugowalny. Łaty te są dostępne i dystrybuowane z http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ i zaleca się ich stosowanie w celu uzyskania identycznych wyników jak „oficjalne” dystrybuowane pliki binarne ASF.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) lub nowszy.

    Apache może być zbudowany za pomocą narzędzi wiersza poleceń lub z poziomu stołu roboczego Visual Studio IDE. Budowanie wiersza poleceń wymaga środowiska odzwierciedlającego PATH, INCLUDE, LIB oraz inne zmienne, które można skonfigurować za pomocą skryptu vcvars32.bat.

    możesz chcieć Visual Studio Processor Pack dla starszej wersji Visual Studio lub pełnej (Nie ekspresowej) wersji nowszych wersji Visual Studio, dla ml.exe assembler. Pozwoli to na zbudowanie OpenSSL, w razie potrzeby, przy użyciu bardziej wydajnej implementacji kodu assembly.
    tylko łańcuch narzędzi kompilatora Microsoft jest aktywnie wspierany przez aktywnych współpracowników httpd. Chociaż projekt regularnie akceptuje poprawki w celu zapewnienia MinGW i innych alternatywnych budów i ulepszania ich, nie są one aktywnie utrzymywane i często są łamane w trakcie normalnego rozwoju.
  • zaktualizowany pakiet Microsoft Windows Platform SDK, luty 2003 lub nowszy.

    odpowiedni zestaw SDK dla platformy Windows jest domyślnie dołączony do pełnych (nie ekspresowych/lite) wersji Visual C++ 7.1 (Visual Studio 2002) i późniejszych, ci użytkownicy mogą zignorować te kroki, chyba że wyraźnie wybierze nowszą lub inną wersję zestawu SDK platformy.

    aby używać Visual C++ 6.0 lub 7.0 (Studio 2000.NET), środowisko Platform SDK musi być przygotowane przy użyciu skryptu setenv.bat (zainstalowanego przez Platform SDK) przed rozpoczęciem kompilacji wiersza poleceń lub uruchomieniem środowiska graficznego msdev/devenv. Zainstalowanie zestawu SDK platformy dla wersji Visual Studio Express (2003 i nowszych) powinno odpowiednio dostosować domyślne środowisko.

    "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
    "c:\Program Files\Platform SDK\setenv.bat"

  • Perl i awk

    kilka zalecanych tutaj kroków wymaga interpretera Perla podczas procesu przygotowania kompilacji, ale w przeciwnym razie nie jest to wymagane.

    aby zainstalować Apache w systemie kompilacji, kilka plików jest modyfikowanych za pomocą narzędzia awk.exe. awk został wybrany, ponieważ jest to bardzo małe pobieranie (w porównaniu z Perlem lub WSH / VB) i wykonuje zadanie modyfikacji plików konfiguracyjnych po instalacji. Strona http://www.cs.princeton.edu/~bwk/btl.mirror/ Briana Kernighana ma skompilowaną natywną wersję binarną Win32, http://www.cs.princeton.edu/~bwk/btl.mirror/ awk95.exe, które musisz zapisać z nazwą awk.exe (zamiast awk95.exe).

    jeśli awk.exe nie został znaleziony, Makefile.docelowa instalacja win nie wykona zamiany w zainstalowanym .pliki konf. Musisz ręcznie zmodyfikować zainstalowany .pliki conf umożliwiające uruchomienie serwera. Wyszukaj i zamień wszystkie znaczniki „@token@” odpowiednio.
    Visual Studio IDE znajdzie tylko awk.exe ze ścieżki lub ścieżki wykonywalnej określonej w opcji menu Narzędzia -> opcje -> (projekty ->) katalogi. Zapewnić awk.exe jest w ścieżce systemu.
    zwróć również uwagę, że jeśli używasz narzędzi Cygwin (http://www.cygwin.com/), narzędzie awk nosi nazwę gawk.exe i że plik awk.exe jest tak naprawdę dowiązaniem symbolicznym do pliku gawk.exe. Powłoka polecenia Windows nie rozpoznaje dowiązań symbolicznych i z powodu tego budynku InstallBin się nie powiedzie. Obejściem problemu jest usunięcie awk.exe z instalacji Cygwina i skopiowanie gawk.exe do awk.exe. Zwróć również uwagę na porty cygwin/MinGW gawk 3.0.x były buggy, proszę uaktualnić do 3.1.x przed przystąpieniem do użycia dowolnego portu gawk.
  • biblioteka zlib (dla mod_deflate)

    Zlib musi być zainstalowany w podkatalogu srclib o nazwie zlib. To musi być wbudowane. Zlib można uzyskać z http://www.zlib.net/ — mod_deflate jest potwierdzone, że działa poprawnie z wersją 1.2.3.

    nmake -f win32\Makefile.msc
    nmake -f win32\Makefile.msc test

  • biblioteki OpenSSL (dla mod_ssl i ab.exe z obsługą ssl)

    biblioteka OpenSSL jest oprogramowaniem kryptograficznym. Kraj, w którym obecnie mieszkasz, może mieć ograniczenia dotyczące importu, posiadania, używania i/lub reeksportowania oprogramowania szyfrującego do innego kraju. Przed użyciem jakiegokolwiek oprogramowania szyfrującego należy sprawdzić przepisy, regulacje i zasady obowiązujące w danym kraju dotyczące importu, posiadania, używania i reeksportowania oprogramowania szyfrującego, aby sprawdzić, czy jest to dozwolone. Zobacz http://www.wassenaar.org/ aby uzyskać więcej informacji.

    Konfigurowanie i budowanie OpenSSL wymaga zainstalowania Perla.

    OpenSSL musi być zainstalowany w podkatalogu srclib o nazwie openssl, uzyskanym z http://www.openssl.org/source/, aby skompilować mod_ssl lub projekt abs.exe, który jest ab.c z włączoną obsługą SSL. Aby przygotować OpenSSL do połączenia z Apache mod_ssl lub abs.exe, i wyłączyć obciążone patentami funkcje w OpenSSL, możesz użyć następujących poleceń kompilacji:

    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.mak

    nie jest wskazane używanie zlib-dynamic, ponieważ przenosi to koszt opróżnienia strumieni SSL na pierwsze żądanie, które musi załadować bibliotekę Zlib. Uwaga sugerowana łata pozwala fladze-L pracować z kompilacjami windows, koryguje nazwę zdll.lib i zapewnia .pliki pdb są generowane w celu rozwiązywania problemów. Jeśli asembler nie jest zainstalowany, dodasz no-asm powyżej i użyjesz ms\do_ms. bat zamiast ms\do_masm.skrypt nietoperza.
  • biblioteki baz danych (dla mod_dbd i mod_authn_dbm)

    biblioteka apr-util udostępnia funkcje klienta dbm (keyed database) i dbd (query oriented database) serwerowi httpd i jego modułom, takim jak uwierzytelnianie i autoryzacja. Dostawcy sdbm dbm i ODBC dbd są kompilowane bezwarunkowo.

    obsługa dbd obejmuje pakiet Oracle instantclient, MySQL, PostgreSQL i SQLite. Aby zbudować te wszystkie, na przykład, skonfiguruj LIB, aby zawierał ścieżkę biblioteki, INCLUDE, aby zawierał ścieżkę nagłówków, i PATH, aby zawierał ścieżkę bin dll wszystkich czterech zestawów SDK, a także Ustaw zmienną środowiskową DBD_LIST, aby informowała kompilację, które zestawy SDK sterowników klienta są poprawnie zainstalowane, np.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    podobnie, obsługa dbm może zostać rozszerzona o DBM_LIST, aby zbudować Berkeley DB provider (db) i/lub gdbm provider, podobnie konfigurując najpierw lib, INCLUDE I PATH, aby zapewnić dostępność bibliotek klienckich i nagłówków.

    set DBM_LIST=db gdbm

    w zależności od wyboru dystrybucji baz danych, może być konieczna zmiana rzeczywistej nazwy docelowej łącza (np. gdbm.lib vs.libgdb.lib), które są wymienione w odpowiednimdsp/mak plików w katalogach srclib \ apr-util \ dbd lub …\ dbm .

    Zobacz README-win32.plik txt więcej wskazówek na temat uzyskiwania różnych zestawów SDK sterowników bazy danych.

budowanie ze źródeł uniksowych

zasadą projektu serwera HTTP Apache jest wydawanie tylko źródeł uniksowych. Pakiety źródłowe systemu Windows udostępnione do pobrania zostały dostarczone przez wolontariuszy i mogą nie być dostępne w każdym wydaniu. Nadal możesz zbudować serwer w systemie Windows ze źródła Uniksa, wykonując tylko kilka dodatkowych kroków.

  1. Pobierz i rozpakuj Unix source tarball do najnowszej wersji.
  2. Pobierz i rozpakuj Unix source tarball dla najnowszej wersji APR, AR-Util i APR-Iconv, umieść te źródła w katalogach httpd-2.x. X\srclib\apr, httpd-2.x. X\srclib\apr-util i httpd-2.x.X\srclib \ apr-iconv
  3. Otwórz wiersz polecenia i płytę CD do httpd-2.folder x.X
  4. uruchom narzędzie do konwersji zakończeń linii w wierszu zachęty;

perl srclib\apr\build\lineends.pl

możesz teraz zbudować serwer za pomocą środowiska programistycznego Visual Studio przy użyciu IDE. Kompilowanie serwera z wiersza poleceń nie jest możliwe ze źródeł uniksowych, chyba że wyeksportujesz .pliki mak, jak wyjaśniono poniżej.

Budowa wiersza poleceń

Makefile.win jest plikiem Makefile Apache najwyższego poziomu. Aby skompilować Apache w systemie Windows, wystarczy użyć jednego z poniższych poleceń, aby zbudować smak release lub debug :

nmake /f Makefile.win _apacher
nmake /f Makefile.win _apached

każda komenda skompiluje Apache. Ten ostatni wyłączy optymalizację wynikowych plików, co ułatwi pojedynczy krok kodu, aby znaleźć błędy i wyśledzić problemy.

możesz dodać swoje apr-util DBD i dBm provider za pomocą dodatkowych zmiennych make (environment) DBD_LIST i DBM_LIST, Zobacz komentarze na temat bibliotek Baz Danych powyżej. Przejrzyj początkowe komentarze w pliku Makefile.wygraj za dodatkowe opcje, które mogą być dostarczone podczas wywoływania kompilacji.

Developer Studio Workspace IDE Build

Apache może być również skompilowany przy użyciu środowiska programistycznego Visual Studio VC++. Aby uprościć ten proces, dostępna jest przestrzeń robocza Visual Studio Apache.dsw. Ten obszar roboczy udostępnia całą listę pracujących .dsp projektów, które są wymagane do pełnego wydania binarnego Apache. Obejmuje zależności między projektami, aby zapewnić, że są one zbudowane w odpowiedniej kolejności.

Otwórz obszar roboczy Apache.dsw i wybierz InstallBin (Release lub Debug budować, zgodnie z potrzebami) jako aktywny projekt. InstallBin powoduje zbudowanie wszystkich powiązanych projektów, a następnie wywołuje Makefile.win przeniesienie skompilowanych plików wykonywalnych i bibliotek DLL. Możesz spersonalizować wybór INSTDIR=, zmieniając ustawienia InstallBin, kartę Ogólne, wpis wiersza poleceń kompilacji. INSTDIR domyślnie jest to katalog /Apache2. Jeśli chcesz tylko skompilować test (bez instalacji), możesz zamiast tego zbudować projekt BuildBin.

pliki projektu .dsp są dystrybuowane w formacie Visual Studio 6.0 (98). Visual C++ 5.0 (97) rozpozna je. Użytkownicy programu Visual Studio 2002 (. NET) i nowszych wersji muszą przekonwertować pliki Apache.dsw plus pliki .dsp na pliki Apache.sln plus .msproj. Upewnij się, że ponownie przekonwertujesz plik .msproj, jeśli zmieni się jego plik źródłowy .dsp! To jest naprawdę trywialne, po prostu otwórz Apache.dsw w VC++ 7.0 IDE jeszcze raz i przekonwertuj.

jest wada wVCPROJ konwersja .pliki dsp. devenv.exe źle przeanalizuje flagę / D dla FLAG RC zawierających długie cytowane / d ’ definicje, które zawierają spacje. Dowództwo:

perl srclib\apr\build\cvtdsp.pl -2005

przekonwertuje flagi / D dla FLAG RC, aby używały alternatywnej, analizowalnej składni; niestety składnia ta nie jest obsługiwana przez Visual Studio 97 lub jej eksportowane.pliki mak. Te flagi / D służą do przekazania długiego opisu mod_apachemodule.so pliki do udostępnionych .RC resource version-identifier build.

budowanie z OpenSSL 1.1.0 i do góry ze względu na różnicę w strukturze budowania OpenSSL począwszy od wersji 1.1.0 będziesz musiał przekonwertować pliki DSP, których dotyczy cvtdsp.pl od 1.6 kwietnia lub wyższej. Dowództwo:

perl srclib\apr\build\cvtdsp.pl -ossl11

Visual Studio 2002 (. NET) i nowsi użytkownicy powinni również użyć menu kompilacji, okna dialogowego Menedżer konfiguracji, aby odznaczyć zarówno Moduły rozwiązania Debug i Release abs, mod_deflate i mod_ssl, jak i każdy komponent zaczynający się od apr_db*. Moduły te są budowane przez wywołanie nmake lub IDE bezpośrednio z obiektem docelowym BinBuild, który buduje te moduły warunkowo, jeśli istnieją katalogi srclib openssl i/lub zlib, i w oparciu o ustawienie zmiennych środowiskowych DBD_LIST i DBM_LIST.

eksportowanie wiersza poleceń .pliki mak

wyeksportowane .mak pliki stwarzają większe problemy, ale są one wymagane dla użytkowników Visual C++ 5.0 do budowania mod_ssl, abs (abz obsługą SSL) i/lub mod_deflate. The .pliki mak obsługują również szerszy zakres dystrybucji łańcucha narzędzi C++, takich jak Visual Studio Express.

musisz najpierw zbudować wszystkie projekty, aby utworzyć wszystkie dynamiczne, automatycznie generowane cele, aby zależności mogły być poprawnie przeanalizowane. Zbuduj cały projekt z poziomu Visual Studio 6.0 (98) IDE, używając docelowego BuildAll, następnie użyj eksport menu projektu dla wszystkich plików Makefile (zaznaczając „z zależnościami”.) Uruchom następujące polecenie, aby skorygować ścieżki bezwzględne do ścieżek względnych, aby były budowane w dowolnym miejscu:

perl srclib\apr\build\fixwin32mak.pl

polecenie to należy wpisać z katalogu najwyższego poziomu drzewa źródłowego httpd. Każdy plik projektu .mak i .dep w bieżącym katalogu i poniżej zostanie poprawiony, a znaczniki czasu zostaną dostosowane tak, aby odzwierciedlały .dsp.

zawsze przeglądaj wygenerowane pliki .mak i .dep pod kątem SDK platformy lub innych lokalnych ścieżek plików specyficznych dla maszyny. Katalog DevStudio\Common\MSDev98\bin\ (VC6) zawiera plik sysincl.dat, który zawiera listę wszystkich wyjątków. Zaktualizuj ten plik (w tym zarówno ścieżki ukośne do przodu, jak i do tyłu, takie jak sys/time.h i sys\time.h), aby zignorować takie nowsze zależności. WĹ 'Ä … czenie Ĺ” cieĹźek lokalnej instalacji do rozproszonego pliku .mak spowoduje caĹ ’ kowite niepowodzenie kompilacji.

jeśli przyczynisz się do poprawienia plików projektu, musimy zatwierdzić pliki projektu w formacie Visual Studio 6.0. Zmiany powinny być proste, z minimalnymi flagami kompilacji i powiązań, które mogą być rozpoznawane przez wszystkie środowiska Visual Studio.

instalacja

po skompilowaniu Apache musi zostać zainstalowany w katalogu głównym serwera. Domyślnym katalogiem jest \Apache2tego samego dysku.

aby automatycznie zbudować i zainstalować wszystkie pliki w żądanym katalogu, użyj jednej z poniższych komend nmake :

nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir

argument dir do INSTDIR zapewnia katalog instalacyjny; można go pominąć, jeśli Apache ma być zainstalowany na \Apache22 (aktualnego dysku).

ostrzeżenie o budowaniu Apache ’ a z drzewa deweloperskiego

Uwaga tylko pliki .dsp są przechowywane pomiędzy kompilacjami release. Pliki .mak nie są regenerowane, ze względu na ogromną stratę czasu recenzenta. Dlatego nie można polegać na powyższych poleceniach NMAKE, aby zbudować poprawione pliki projektu .dsp, chyba że wszystkie pliki .mak wyeksportujesz samodzielnie z projektu. Jest to niepotrzebne, jeśli tworzysz ze środowiska Microsoft Developer Studio.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.