kompilace Apache pro Microsoft Windows

budování httpd s přiloženými soubory projektu Visual Studio

požadavky

kompilace Apache vyžaduje, aby bylo správně nainstalováno následující prostředí:

  • místo na disku

    ujistěte se, že máte k dispozici alespoň 200 MB volného místa na disku. Po instalaci Apache vyžaduje přibližně 80 MB místa na disku, plus prostor pro soubory protokolu a mezipaměti, které mohou rychle růst. Skutečné požadavky na místo na disku se budou značně lišit v závislosti na zvolené konfiguraci a jakýchkoli modulech nebo knihovnách třetích stran, zejména pokud je také postaven OpenSSL. Protože mnoho souborů je textových a velmi snadno komprimovaných, komprese souborů NTFS snižuje tyto požadavky na polovinu.

  • příslušné záplaty

    binární soubor httpd je vytvořen pomocí několika záplat na balíčky třetích stran, které zajišťují, že uvolněný kód je sestavitelný a debugovatelný. Tyto záplaty jsou dostupné a distribuovány od http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ a doporučuje se je použít k získání identických výsledků jako „oficiální“ distribuované binární soubory ASF.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) nebo novější.

    Apache lze vytvořit pomocí nástrojů příkazového řádku nebo z pracovní plochy Visual Studio IDE. Sestavení příkazového řádku vyžaduje, aby prostředí odráželo PATH, INCLUDE, LIB a další proměnné, které lze konfigurovat pomocí skriptu vcvars32.bat.

    můžete chtít sadu procesorů Visual Studio pro vaši starší verzi Visual Studia nebo plnou (ne expresní) verzi novějších edic Visual Studio pro ml.exe assembler. To vám umožní vytvořit OpenSSL, pokud je to žádoucí, pomocí efektivnější implementace kódu sestavy.
    aktivní přispěvatelé httpd aktivně podporují pouze řetězec nástrojů kompilátoru společnosti Microsoft. Přestože projekt pravidelně přijímá záplaty, aby zajistil práci MinGW a dalších alternativních staveb a zlepšil je, nejsou aktivně udržovány a v průběhu normálního vývoje jsou často porušovány.
  • Aktualizováno Microsoft Windows Platform SDK, únor 2003 nebo novější.

    vhodná sada SDK platformy Windows je standardně zahrnuta v plných (nikoli expresních/lite) verzích Visual C++ 7.1 (Visual Studio 2002) a později mohou tito uživatelé tyto kroky ignorovat, pokud výslovně nezvolí novější nebo jinou verzi sady Platform SDK.

    Chcete – li použít Visual C++ 6.0 nebo 7.0 (Studio 2000. Net), musí být prostředí Platform SDK připraveno pomocí skriptu setenv.bat (nainstalovaného platformou SDK) před spuštěním sestavení příkazového řádku nebo spuštěním prostředí MSDEV/devenv GUI. Instalace platformy SDK pro verze Visual Studio Express (2003 a novější) by měla odpovídajícím způsobem upravit výchozí prostředí.

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

  • Perl a awk

    několik zde doporučených kroků vyžaduje interpret perl během procesu přípravy sestavení, ale jinak to není nutné.

    Chcete-li nainstalovat Apache v systému sestavení, několik souborů je upraveno pomocí nástroje awk.exe. awk byl vybrán, protože se jedná o velmi malý download (ve srovnání s Perl nebo WSH / VB) a plní úlohu úpravy konfiguračních souborů po instalaci. http://www.cs.princeton.edu/~bwk/btl.mirror/ web Briana Kernighana má kompilovaný nativní binární Win32, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe, který musíte uložit s názvem awk.exe (spíše než awk95.exe).

    pokud awk.exe nebyl nalezen, Makefile.win install target nebude provádět substituce v nainstalovaném .soubory conf. Musíte ručně upravit nainstalované .soubory conf umožňují spuštění serveru. Vyhledejte a podle potřeby nahraďte všechny značky „@token@“.
    Visual Studio IDE najde pouze awk.exe z cesty nebo spustitelné cesty zadané v nabídce Nástroje -> Možnosti -> (projekty ->) adresáře. Zajistěte awk.exe je ve vaší systémové cestě.
    také si všimněte, že pokud používáte Cygwin tools (http://www.cygwin.com/), nástroj awk je pojmenován gawk.exe a že soubor awk.exe je skutečně symbolickým odkazem na soubor gawk.exe. Příkazový shell systému Windows nerozpozná symbolické odkazy a kvůli této budově se InstallBin nezdaří. Řešením je odstranit awk.exe z instalace cygwin a zkopírovat gawk.exe do awk.exe. Všimněte si také portů cygwin/mingw gawk 3.0.x byly buggy, upgradujte na 3.1.x před pokusem o použití jakéhokoli portu gawk.
  • knihovna zlib (pro mod_deflate)

    Zlib musí být nainstalován do srclib podadresáře s názvem zlib. To musí být postaveno na místě. Zlib lze získat z http://www.zlib.net/ – mod_deflate je potvrzeno, že pracuje správně s verzí 1.2.3.

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

  • OpenSSL knihovny (pro mod_ssl a ab.exe s podporou ssl)

    OpenSSL knihovna je kryptografický software. Země, ve které aktuálně pobýváte, může mít omezení týkající se importu, držení, používání a/nebo zpětného vývozu šifrovacího softwaru do jiné země. Před použitím jakéhokoli šifrovacího softwaru zkontrolujte zákony, předpisy a zásady vaší země týkající se dovozu, držení nebo používání a zpětného vývozu šifrovacího softwaru, abyste zjistili, zda je to povoleno. Více informací viz http://www.wassenaar.org/.

    konfigurace a budování OpenSSL vyžaduje instalaci perl.

    OpenSSL musí být nainstalován do srclib podadresáře s názvem openssl, získaného z http://www.openssl.org/source/, aby bylo možné sestavit mod_ssl nebo abs.exe projekt, který je ab.c s podporou SSL povoleno. Chcete-li připravit OpenSSL být spojen s Apache mod_ssl nebo abs.exe, a zakázat patent zatížené funkce v OpenSSL, můžete použít následující příkazy sestavení:

    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

    není vhodné používat zlib-dynamic, protože to přenáší náklady na deflaci SSL toků na první požadavek, který musí načíst Zlib dll. Poznámka: navrhovaná oprava umožňuje příznak-L pracovat s budováním systému windows, opravuje název zdll.lib a zajišťuje .pdb soubory jsou generovány pro řešení problémů. Pokud assembler není nainstalován, měli byste přidat no-asm výše a použít ms\do_ms.bat místo ms\do_masm.netopýří scénář.
  • databázové knihovny (pro mod_dbd a mod_authn_dbm)

    knihovna apr-util vystavuje klientskou funkčnost dBm (keyed database) a dbd (query oriented database) serveru httpd a jeho modulům, jako je ověřování a autorizace. Poskytovatelé sdbm dbm a odbc dbd jsou kompilováni bezpodmínečně.

    podpora dbd zahrnuje balíček Oracle instantclient, MySQL, PostgreSQL a sqlite. Chcete-li je například sestavit, nastavte LIB tak, aby zahrnoval cestu knihovny, zahrnujte cestu záhlaví a cestu k zahrnutí cesty dll bin všech čtyř SDK a nastavte proměnnou prostředí DBD_LIST, aby informovala sestavení, které sady SDK ovladače klienta jsou správně nainstalovány, např.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    podobně může být podpora dbm rozšířena o DBM_LIST, aby se vytvořil poskytovatel Berkeley DB (db) a / nebo poskytovatel gdbm, a to podobně konfigurací LIB, INCLUDE a PATH first, aby se zajistilo, že knihovna klientů libs a záhlaví jsou k dispozici.

    set DBM_LIST=db gdbm

    v závislosti na volbě databázových distribucí může být nutné změnit skutečný název cílového odkazu (např.lib vs. libgdb.lib), které jsou uvedeny v odpovídajícím .dsp/.mak soubory v adresářích srclib \ apr-util\dbd nebo …\dbm.

    viz README-win32.soubor txt pro více rad o získání různých sad SDK ovladačů databáze.

vytváření z unixových zdrojů

zásadou projektu Apache HTTP Server je pouze uvolnění unixových zdrojů. Zdrojové balíčky systému Windows zpřístupněné ke stažení byly dodány dobrovolníky a nemusí být k dispozici pro každé vydání. Stále můžete vytvořit server na Windows ze zdroje Unix tarball s několika dalšími kroky.

  1. stáhněte a rozbalte unixový zdrojový tarball pro nejnovější verzi.
  2. stáhněte a rozbalte Unix source tarball pro nejnovější verzi APR, AR-Util a APR-Iconv, umístěte tyto zdroje do adresářů httpd-2.x.x\srclib\apr, httpd-2.x.x \ srclib\apr-util a httpd-2.x.x \ srclib \ apr-iconv
  3. otevřete příkazový řádek a CD do httpd-2.složka x. x
  4. spusťte nástroj pro převod koncovek řádků na výzvu;

perl srclib\apr\build\lineends.pl

nyní můžete vytvořit server s vývojovým prostředím Visual Studio pomocí IDE. Sestavení příkazového řádku serveru není možné ze zdrojů Unixu, pokud nevyexportujete .mak soubory, jak je vysvětleno níže.

sestavení příkazového řádku

Makefile.win je nejvyšší úroveň Apache makefile. Chcete-li kompilovat Apache na Windows, jednoduše použijte jeden z následujících příkazů k vytvoření chuti release nebo debug :

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

každý příkaz sestaví Apache. Ten zakáže optimalizaci výsledných souborů, což usnadňuje jediný krok kódu najít chyby a vystopovat problémy.

můžete přidat volby poskytovatele apr-util dbd a dbm s dalšími proměnnými DBD_LIST a DBM_LIST, viz komentáře k databázovým knihovnám výše. Zkontrolujte počáteční komentáře v Makefile.vyhrajte další možnosti, které lze poskytnout při vyvolání sestavení.

Developer Studio Workspace IDE Build

Apache lze také zkompilovat pomocí vývojového prostředí Visual Studio VC++. Pro zjednodušení tohoto procesu je k dispozici pracovní prostor Visual Studio Apache.dsw. Tento pracovní prostor vystavuje celý seznam pracovních .dsp projektů, které jsou vyžadovány pro úplné binární vydání Apache. Zahrnuje závislosti mezi projekty, aby bylo zajištěno, že jsou postaveny ve vhodném pořadí.

otevřete pracovní prostor Apache.dsw a jako aktivní Projekt vyberte InstallBin (Release nebo Debug sestavit podle potřeby). InstallBin způsobí, že všechny související Projekt, které mají být postaveny, a pak vyvolá Makefile.win přesunout kompilované spustitelné soubory a DLL. Volbu INSTDIR= můžete přizpůsobit změnou nastavení InstallBin, karty Obecné, položky příkazového řádku sestavení. INSTDIR výchozí adresář /Apache2. Pokud chcete pouze testovací kompilaci (bez instalace), můžete místo toho vytvořit projekt BuildBin .

soubory projektu .dsp jsou distribuovány ve formátu Visual Studio 6.0 (98). Visual C++ 5.0 (97) je rozpozná. Visual Studio 2002 (. NET) a novější uživatelé musí převést Apache.dsw plus soubory .dsp na soubory Apache.sln plus .msproj. Nezapomeňte znovu převést soubor .msproj, pokud se změní jeho zdroj .dsp soubor! To je opravdu triviální, stačí otevřít Apache.dsw v VC++ 7.0 IDE znovu a znovu převést.

je chyba v .vcproj konverze .soubory dsp. devenve.exe bude mis-analyzovat / d příznak pro RC příznaky, které obsahují dlouhé citoval / d ‚ defines, které obsahují mezery. Příkaz:

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

převede / d flags pro RC flags použít alternativní, analyzovatelné syntaxi; bohužel tato syntaxe není podporována Visual Studio 97 nebo jeho exportovány .mak soubory. Tyto / d příznaky se používají k předání dlouhého popisu mod_apachemodule.so soubory na sdílené .verze zdroje rc-sestavení identifikátoru.

budova s OpenSSL 1.1.0 a vyšší kvůli rozdílu ve struktuře sestavení OpenSSL počínaje verzí 1.1.0 budete muset převést soubory DSP ovlivněné cvtdsp.pl od dubna 1.6 nebo vyšší. Příkaz:

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

Visual Studio 2002 (. NET) a novější uživatelé by také měli použít dialogové okno Build menu, Configuration Manager pro zrušení zaškrtnutí jak modulů řešení Debug a Release abs, mod_deflate a mod_ssl, tak všech komponent začínajících apr_db*. Tyto moduly jsou vytvářeny vyvoláním nmake nebo IDE přímo s BinBuild target, který tyto moduly staví podmíněně, pokud existují adresáře srclib openssl a/nebo zlib a na základě nastavení proměnných prostředí DBD_LIST a DBM_LIST.

Export příkazového řádku .mak soubory

exportované .mak soubory představují větší potíže, ale jsou nutné pro Visual C++ 5.0 uživatelé stavět mod_ssl, abs (ab s podporou SSL) a / nebo mod_deflate. Na .Mak soubory také podporují širší škálu distribucí řetězce nástrojů C++, jako je Visual Studio Express.

nejprve musíte vytvořit všechny projekty, abyste vytvořili všechny dynamické automaticky generované cíle, aby bylo možné správně analyzovat závislosti. Sestavte celý projekt v rámci Visual Studia 6.0 (98) IDE, pomocí cíle BuildAll, pak použijte nabídku Export projektu pro všechny makefiles (kontrola „se závislostmi“.) Spusťte následující příkaz opravit absolutní cesty do relativních cest, takže budou stavět kdekoliv:

perl srclib\apr\build\fixwin32mak.pl

tento příkaz musíte zadat z adresáře nejvyšší úrovně zdrojového stromu httpd. Každý soubor projektu .mak a .dep v aktuálním adresáři a níže bude opraven a časová razítka upravena tak, aby odrážela .dsp.

vždy zkontrolujte generované soubory .mak a .dep pro platformu SDK nebo jiné místní cesty k souborům specifické pro stroj. Adresář DevStudio\Common\MSDev98\bin\ (VC6) obsahuje soubor sysincl.dat, který obsahuje seznam všech výjimek. Aktualizujte tento soubor (včetně cest vpřed i vzad, například sys/time.h a sys\time.h), abyste tyto novější závislosti ignorovali. Zahrnutí cest místní instalace do distribuovaného souboru .mak způsobí úplné selhání sestavení.

pokud přispějete zpět opravou, která reviduje soubory projektu, musíme odevzdat soubory projektu ve formátu Visual Studio 6.0. Změny by měly být jednoduché, s minimálními příznaky kompilace a propojení, které lze rozpoznat ve všech prostředích Visual Studio.

instalace

po kompilaci Apache je třeba jej nainstalovat do kořenového adresáře serveru. Výchozí je adresář \Apache2 stejné jednotky.

Chcete-li automaticky sestavit a nainstalovat všechny soubory do požadované složky dir, použijte jeden z následujících příkazů nmake :

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

argument dir INSTDIR poskytuje instalační adresář; může být vynechán, pokud má být Apache nainstalován do \Apache22 (aktuální jednotky).

varování o budování Apache z vývojového stromu

Poznámka: mezi release buildy jsou udržovány pouze soubory .dsp . Soubory .mak nejsou regenerovány kvůli obrovské ztrátě času recenzenta. Proto se nemůžete spolehnout na příkazy NMAKE výše, abyste vytvořili revidované soubory projektu .dsp, pokud z projektu nevyexportujete všechny soubory .mak. To je zbytečné, pokud stavíte z prostředí Microsoft Developer Studio.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.