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ą skryptuvcvars32.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
(zamiastawk95.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 tylkoawk.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 plikawk.exe
jest tak naprawdę dowiązaniem symbolicznym do plikugawk.exe
. Powłoka polecenia Windows nie rozpoznaje dowiązań symbolicznych i z powodu tego budynku InstallBin się nie powiedzie. Obejściem problemu jest usunięcieawk.exe
z instalacji Cygwina i skopiowaniegawk.exe
doawk.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 nazwiezlib
. 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
iab.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 nazwieopenssl
, uzyskanym z http://www.openssl.org/source/, aby skompilowaćmod_ssl
lub projektabs.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.maknie 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
imod_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.
- Pobierz i rozpakuj Unix source tarball do najnowszej wersji.
- 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
- Otwórz wiersz polecenia i płytę CD do httpd-2.folder x.X
- 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.
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.
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 (ab
z 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 \Apache2
tego 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
.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.