kompilera Apache för Microsoft Windows

bygga httpd med de medföljande Visual Studio-projektfilerna

krav

kompilera Apache kräver att följande miljö installeras korrekt:

  • diskutrymme

    se till att du har minst 200 MB ledigt diskutrymme tillgängligt. Efter installationen kräver Apache cirka 80 MB diskutrymme, plus utrymme för logg-och cachefiler, som kan växa snabbt. De faktiska diskutrymmeskraven varierar avsevärt beroende på din valda konfiguration och eventuella tredjepartsmoduler eller bibliotek, särskilt när OpenSSL också är byggt. Eftersom många filer är text och mycket lätt komprimeras, skär NTFS filsystem komprimering dessa krav i hälften.

  • lämpliga patchar

    httpd-binären är byggd med hjälp av flera patchar till tredjepartspaket, vilket säkerställer att den släppta koden är byggbar och debuggbar. Dessa patchar är tillgängliga och distribueras från http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ och rekommenderas att appliceras för att få identiska resultat som de ”officiella” ASF-distribuerade binärerna.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) eller senare.

    Apache kan byggas med kommandoradsverktygen eller från Visual Studio IDE-arbetsbänken. Kommandoradsbyggnaden kräver att miljön återspeglar PATH, INCLUDE, LIB och andra variabler som kan konfigureras med skriptet vcvars32.bat.

    du kanske vill Visual Studio Processor Pack för din äldre version av Visual Studio, eller en fullständig (inte Express) version av nyare Visual Studio upplagor, för ml.exe assembler. Detta gör att du kan bygga OpenSSL, om så önskas, med hjälp av den effektivare implementeringen av monteringskoden.
    endast Microsoft compiler tool-kedjan stöds aktivt av de aktiva httpd-bidragsgivarna. Även om projektet regelbundet accepterar patchar för att säkerställa att MinGW och andra alternativ bygger arbete och förbättrar dem, underhålls de inte aktivt och bryts ofta under normal utveckling.
  • uppdaterad Microsoft Windows Platform SDK, februari 2003 eller senare.

    en lämplig Windows-plattform SDK ingår som standard i den fullständiga (inte express/lite) versioner av Visual C++ 7.1 (Visual Studio 2002) och senare, dessa användare kan ignorera dessa steg om inte uttryckligen välja en nyare eller annan version av plattformen SDK.

    för att använda Visual C++ 6.0 eller 7.0 (Studio 2000.Net) måste Platform SDK-miljön förberedas med setenv.bat – skriptet (installerat av Platform SDK) innan du startar kommandoradsbyggnaden eller startar MSDEV/DEVENV GUI-miljön. Installera Platform SDK för Visual Studio Express-versioner (2003 och senare) bör justera standardmiljön på lämpligt sätt.

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

  • Perl och awk

    flera steg som rekommenderas här kräver en perl-tolk under byggförberedelseprocessen, men det krävs annars inte.

    för att installera Apache i byggsystemet ändras flera filer med verktyget awk.exe. awk valdes eftersom det är en mycket liten nedladdning (jämfört med Perl eller WSH/VB) och utför uppgiften att ändra konfigurationsfiler vid installationen. Brian Kernighans http://www.cs.princeton.edu/~bwk/btl.mirror/ – webbplats har en sammanställd inbyggd Win32-binär, http://www.cs.princeton.edu/~bwk/btl.mirror/ awk95.exe som du måste spara med namnet awk.exe (snarare än awk95.exe).

    om awk.exe hittades inte, Makefile.win ’ s install target kommer inte att utföra ersättningar i den installerade .conf-filer. Du måste manuellt ändra den installerade .conf-filer för att tillåta servern att starta. Sök och ersätt alla” @token@ ” – taggar efter behov.
    Visual Studio IDE hittar baraawk.exe från sökvägen eller körbar sökväg som anges i menyalternativet Verktyg- > alternativ- > (projekt- >) kataloger. Se till awk.exe finns i din systemväg.
    Observera också att om du använder Cygwin tools (http://www.cygwin.com/) heter awk-verktyget gawk.exe och att filen awk.exe verkligen är en symbolisk länk till filen gawk.exe. Windows – kommandoskalet känner inte igen symlinks, och på grund av denna byggnad kommer InstallBin att misslyckas. En lösning är att ta bort awk.exe från cygwin-installationen och kopiera gawk.exetill awk.exe. Observera också cygwin / mingw-portarna i gawk 3.0.x var buggy, uppgradera till 3.1.x innan du försöker använda någon gawk-port.
  • zlib library (för mod_deflate)

    Zlib måste installeras i en srclib underkatalog med namnet zlib. Detta måste byggas på plats. Zlib kan erhållas från http://www.zlib.net/ – mod_deflate bekräftas att fungera korrekt med version 1.2.3.

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

  • OpenSSL-bibliotek (för mod_ssl och ab.exe med ssl-stöd)

    OpenSSL-biblioteket är kryptografisk programvara. Det land där du för närvarande bor kan ha begränsningar för import, innehav, användning och/eller återexport till ett annat land av krypteringsprogram. Innan du använder någon krypteringsprogramvara, kontrollera ditt lands lagar, förordningar och policyer angående import, innehav eller användning och återexport av krypteringsprogramvara för att se om detta är tillåtet. Se http://www.wassenaar.org/ för mer information.

    konfigurera och bygga OpenSSL kräver att perl installeras.

    OpenSSL måste installeras i en srclib underkatalog med namnet openssl, erhållen från http://www.openssl.org/source/, för att kompilera mod_ssl eller abs.exe – projektet, som är AB.C med SSL-stöd aktiverat. För att förbereda OpenSSL som ska kopplas till Apache mod_ssl eller abs.exe, och inaktivera patent belastade funktioner i OpenSSL, kan du använda följande byggkommandon:

    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

    det är inte tillrådligt att använda zlib-dynamic, eftersom det överför kostnaden för att tömma SSL-strömmar till den första begäran som måste ladda zlib dll. Obs! den föreslagna korrigeringen gör det möjligt för-L-flaggan att fungera med windows-byggnader, korrigerar namnet på zdll.lib och säkerställer .pdb-filer genereras för felsökning. Om assembler inte är installerad, skulle du lägga till no-asm ovan och använda ms\do_ms.bat istället för ms\do_masm.bat script.
  • databasbibliotek (för mod_dbd och mod_authn_dbm)

    apr-util-biblioteket exponerar dBm (keyed database) och DBD (query oriented database) klientfunktionalitet till httpd-servern och dess moduler, såsom autentisering och auktorisering. Sdbm dBm och odbc DBD leverantörer sammanställs villkorslöst.

    DBD-stödet inkluderar Oracle instantclient-paketet, MySQL, PostgreSQL och sqlite. För att bygga dessa alla, till exempel, ställa in LIB för att inkludera bibliotekets sökväg, inkludera att inkludera rubrikens sökväg och sökväg för att inkludera DLL bin-sökvägen för alla fyra SDK: er och ställa in miljövariabeln DBD_LIST för att informera byggnaden vilka Klientdrivrutinsdk: er som är installerade korrekt, t. ex.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    på samma sätt kan dBm-stödet utökas med DBM_LIST för att bygga en Berkeley DB provider (db) och/eller gdbm provider, genom att på samma sätt konfigurera LIB, INCLUDE Och PATH först för att säkerställa att klientbibliotekets lib och rubriker är tillgängliga.

    set DBM_LIST=db gdbm

    beroende på valet av databasdistributioner kan det vara nödvändigt att ändra det faktiska länkmålnamnet (t.ex. gdbm.lib vs. libgdb.lib) som anges i motsvarande .dsp/.mak-filer i katalogerna srclib \ apr-util \ dbd eller …\ dbm.

    Se readme-win32.txt-fil för fler tips om att få de olika databasdrivrutinerna SDK.

bygga från Unix-källor

principen för Apache HTTP Server project är att endast släppa Unix-källor. Windows – källkodspaket som gjorts tillgängliga för nedladdning har tillhandahållits av volontärer och kanske inte är tillgängliga för varje utgåva. Du kan fortfarande bygga servern på Windows från Unix source tarball med bara några ytterligare steg.

  1. ladda ner och packa upp Unix source tarball för den senaste versionen.
  2. hämta och packa upp Unix källa tarball för senaste versionen av april, AR-Util och april-Iconv, placera dessa källor i kataloger httpd-2.x. x\srclib \ apr, httpd-2.x. x\srclib\apr-util och httpd-2.x.x \ srclib \ apr-iconv
  3. öppna en kommandotolk och CD till httpd-2.x. x mapp
  4. kör konverteringsverktyget för radändelser vid prompten;

perl srclib\apr\build\lineends.pl

du kan nu bygga servern med Visual Studio utvecklingsmiljö med hjälp av IDE. Kommandoradsbyggnader av servern är inte möjliga från Unix-källor om du inte exporterar .mak-filer som förklaras nedan.

Kommandoradsbyggnad

Makefile.win är den översta nivån Apache makefile. För att kompilera Apache på Windows, använd bara en av följande kommandon för att bygga release eller debug smak:

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

antingen kommando kommer att sammanställa Apache. Den senare kommer att inaktivera optimering av de resulterande filerna, vilket gör det lättare att stegvisa koden för att hitta buggar och spåra problem.

du kan lägga till dina apr-util DBD och dbm leverantör val med ytterligare make (miljö) variabler DBD_LIST och DBM_LIST, se kommentarerna om databasbibliotek, ovan. Granska de första kommentarerna i Makefile.vinn för ytterligare alternativ som kan tillhandahållas när du åberopar byggnaden.

Developer Studio Workspace IDE Build

Apache kan också kompileras med hjälp av VC++: s Visual Studio utvecklingsmiljö. För att förenkla denna process tillhandahålls en Visual Studio-arbetsyta, Apache.dsw. Denna arbetsyta exponerar hela listan över arbetande .dsp – projekt som krävs för den fullständiga Apache binary-utgåvan. Det inkluderar beroenden mellan projekten för att säkerställa att de är byggda i lämplig ordning.

öppna arbetsytan Apache.dsw och välj InstallBin (Release eller Debug bygg, som önskat) som det aktiva projektet. InstallBin gör att allt relaterat projekt byggs och anropar sedan Makefile.win för att flytta de kompilerade körbara filerna och DLL-filerna. Du kan anpassa valet INSTDIR= genom att ändra InstallBinInställningar, fliken Allmänt, bygga kommandoradspost. INSTDIR är standard för katalogen /Apache2. Om du bara vill ha en testkompilering (utan att installera) kan du bygga BuildBin – projektet istället.

.dsp projektfiler distribueras i Visual Studio 6.0 (98) format. Visual C++ 5.0 (97) kommer att känna igen dem. Visual Studio 2002 (. net) och senare användare måste konvertera Apache.dsw Plus .dsp filer till en Apache.sln plus .msproj filer. Se till att du omkonverterar filen .msproj igen om dess källa .dsp – fil ändras! Detta är verkligen trivialt, bara öppna Apache.dsw i VC++ 7.0 IDE igen och omkonvertera.

det finns ett fel i .VCPROJ konvertering av .dsp-filer. devenv.exe kommer att mis-tolka / d flagga för RC flaggor som innehåller långa citerade / d ’ defines som innehåller mellanslag. Kommando:

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

konverterar / d-flaggorna för RC-flaggor för att använda en alternativ, tolkningsbar syntax; tyvärr stöds inte denna syntax av Visual Studio 97 eller dess exporterade .mak-filer. Dessa / d-flaggor används för att passera den långa beskrivningen av mod_apachemodule.so filer till den delade .rc resurs version-identifierare bygga.

byggnad med OpenSSL 1.1.0 och uppåt på grund av skillnaden i Byggstrukturen för OpenSSL som börjar med version 1.1.0 måste du konvertera dsp-filerna som påverkas med cvtdsp.pl från APR 1.6 eller högre. Kommando:

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

Visual Studio 2002 (. net) och senare användare bör också använda Build-menyn, Konfigurationshanteraren dialogrutan för att avmarkera både Debug och Release Lösningsmoduler abs, mod_deflate och mod_ssl komponenter, liksom varje komponent som börjar med apr_db*. Dessa moduler byggs genom att anropa nmake, eller IDE direkt med BinBuild målet, som bygger dessa moduler villkorligt om srclib kataloger openssl och/eller zlib existerar, och baserat på inställningen av DBD_LIST och DBM_LIST miljövariabler.

exportera kommandoraden .mak-filer

exporterade .mak filer utgör ett större krångel, men de krävs för Visual C++ 5.0-användare att bygga mod_ssl, abs (ab med SSL-stöd) och/eller mod_deflate. Den .mak-filer stöder också ett bredare utbud av C++ verktygskedja distributioner, såsom Visual Studio Express.

du måste först bygga alla projekt för att skapa alla dynamiska autogenererade mål, så att beroenden kan tolkas korrekt. Bygg hela projektet från Visual Studio 6.0 (98) IDE, med målet BuildAll, använd sedan projektmenyn Export för alla makefiler (kontrollera ”med beroenden”.) Kör följande kommando för att korrigera absoluta sökvägar i relativa sökvägar så att de kommer att bygga var som helst:

perl srclib\apr\build\fixwin32mak.pl

du måste skriva det här kommandot från toppnivåkatalogen i httpd-källträdet. Varje .mak och .dep projektfil i den aktuella katalogen och nedan kommer att korrigeras och tidsstämplarna justeras för att återspegla .dsp.

granska alltid de genererade .mak och .dep filerna för Platform SDK eller andra lokala, maskinspecifika filvägar. Katalogen DevStudio\Common\MSDev98\bin\ (VC6) innehåller en sysincl.dat – fil, som listar alla undantag. Uppdatera den här filen (inklusive både framåt-och bakåtklippta sökvägar, till exempel både sys/time.h och sys\time.h) för att ignorera sådana nyare beroenden. Inklusive lokala installationsvägar i en distribuerad .mak – fil kommer att göra att byggnaden misslyckas helt.

om du bidrar med en korrigeringsfil som reviderar projektfiler måste vi göra projektfiler i Visual Studio 6.0-format. Ändringar ska vara enkla, med minimal kompilering och länkflaggor som kan kännas igen av alla Visual Studio-miljöer.

Installation

När Apache har sammanställts måste den installeras i serverns rotkatalog. Standard är katalogen \Apache2 på samma enhet.

för att bygga och installera alla filer i önskad mapp dir automatiskt, använd något av följande nmake kommandon:

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

argumentet dir till INSTDIR ger installationskatalogen; det kan utelämnas om Apache ska installeras i \Apache22 (av den aktuella enheten).

varning om att bygga Apache från utvecklingsträdet

OBS! Endast .dsp – filerna underhålls mellan release – byggnader. .mak – filerna regenereras inte på grund av det enorma slöseri med granskarens tid. Därför kan du inte lita på kommandona NMAKE ovan för att bygga reviderade .dsp projektfiler om du inte exporterar alla .mak filer själv från projektet. Detta är onödigt om du bygger inifrån Microsoft Developer Studio-miljön.

Lämna ett svar

Din e-postadress kommer inte publiceras.