kompilering af Apache til Microsoft vinduer

opbygning af httpd med de medfølgende Visual Studio-projektfiler

krav

kompilering af Apache kræver, at følgende miljø installeres korrekt:

  • diskplads

    sørg for, at du har mindst 200 MB ledig diskplads til rådighed. 80 MB diskplads plus plads til log-og cache-filer, som kan vokse hurtigt. De faktiske krav til diskplads varierer betydeligt baseret på din valgte konfiguration og eventuelle tredjepartsmoduler eller biblioteker, især når OpenSSL også er bygget. Fordi mange filer er tekst og meget let komprimeres, NTFS filsystem kompression skærer disse krav i halve.

  • passende Patches

    httpd binary er bygget ved hjælp af flere patches til tredjepartspakker, som sikrer, at den frigivne kode kan bygges og debuggeres. Disse programrettelser er tilgængelige og distribueret fra http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ og anbefales at blive anvendt for at opnå identiske resultater som de “officielle” ASF-distribuerede binære filer.

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

    Apache kan bygges ved hjælp af kommandolinjeværktøjerne eller fra Visual Studio IDE-arbejdsbænken. Kommandolinjeopbygningen kræver, at miljøet afspejler PATH, INCLUDE, LIB og andre variabler, der kan konfigureres med vcvars32.bat scriptet.

    du vil muligvis have Visual Studio-Processorpakken til din ældre version af Visual Studio eller en fuld (ikke Ekspres) version af nyere Visual Studio-udgaver til ml.eks assembler. Dette giver dig mulighed for at opbygge OpenSSL, hvis det ønskes, ved hjælp af den mere effektive implementering af monteringskode.
    kun Microsoft compiler-værktøjskæden understøttes aktivt af de aktive httpd-bidragydere. Selvom projektet regelmæssigt accepterer programrettelser for at sikre, at Mingv og andre alternative bygninger fungerer og forbedrer dem, vedligeholdes de ikke aktivt og brydes ofte i løbet af normal udvikling.
  • SDK, februar 2003 eller senere.

    en passende SDK-Platform er som standard inkluderet i de fulde (ikke Ekspres/lite) versioner af Visual C++ 7.1 (Visual Studio 2002) og senere kan disse brugere ignorere disse trin, medmindre de eksplicit vælger en nyere eller anden version af platformens SDK.

    for at bruge Visual C++ 6.0 eller 7.0 (Studio 2000.net) skal Platform SDK-miljøet forberedes ved hjælp af scriptet setenv.bat (installeret af platformen SDK), før du starter kommandolinjebygningen eller starter MSDEV/devenv GUI-miljøet. Installation af Platform SDK til Visual Studio Ekspresversioner (2003 og senere) skal justere standardmiljøet korrekt.

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

  • flere trin, der anbefales her, kræver en perl-tolk under byggeforberedelsesprocessen, men det er ellers ikke nødvendigt.

    for at installere Apache I build-systemet ændres flere filer ved hjælp af awk.exe – værktøjet. det er en meget lille overførsel (sammenlignet med Perl eller VSH/VB) og udfører opgaven med at ændre konfigurationsfiler ved installationen. Brian Kernighan ‘ s http://www.cs.princeton.edu/~bwk/btl.mirror/ site har en kompileret native vinde 32 binær, http://www.cs.princeton.edu/~bwk/btl.mirror/akavet 95.du skal gemme med navnet awk.exe(i stedet for awk95.exe).

    hvis AK.eks findes ikke, Makefile.vind installere mål vil ikke udføre udskiftninger i den installerede .conf filer. Du skal manuelt ændre den installerede .conf filer til at tillade serveren at starte. Søg og erstat alle “@token@” tags efter behov.
    Visual Studio IDE finder kunawk.exe fra stien eller den eksekverbare sti, der er angivet i menupunktet Værktøjer- > indstillinger- > (projekter- >) mapper. Sørg for åk.Ek er i din systemsti.
    Bemærk også, at hvis du bruger cygvin tools (http://www.cygwin.com/), er det værktøj, der hedder gawk.exe, og at filen awk.exe virkelig er et symlink til filen gawk.exe. Vinduerne kommando shell genkender ikke symlinks, og på grund af denne bygning InstallBin vil mislykkes. En løsning er at slette awk.exe fra installationen og kopiere gawk.exe til awk.exe. Bemærk også cygvin / mingv-havne i gak 3.0.var buggy, skal du opgradere til 3.1.at bruge en hvilken som helst gak-port.
  • bibliotek (for mod_deflate)

    Lib skal installeres i en srclib undermappe med navnet zlib. Dette skal bygges på stedet. Fra http://www.zlib.net/ – mod_deflate bekræftes at fungere korrekt med version 1.2.3.

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

  • OpenSSL-biblioteker (for mod_ssl og ab.exe med ssl-understøttelse)

    OpenSSL-biblioteket er kryptografisk program. Det land, hvor du i øjeblikket bor, kan have begrænsninger for import, besiddelse, brug og/eller reeksport til et andet land af krypteringsprogrammer. Før du bruger et krypteringsprogram, skal du kontrollere dit lands love, regler og politikker vedrørende import, besiddelse eller brug og reeksport af krypteringsprogrammer for at se, om dette er tilladt. Se http://www.wassenaar.org/ for mere information.

    konfiguration og opbygning af OpenSSL kræver, at perl installeres.

    OpenSSL skal installeres i en srclib undermappe med navnet openssl, hentet fra http://www.openssl.org/source/, for at kompilere mod_ssl eller abs.exe – projektet, som er ab.C med SSL support aktiveret. For at forberede OpenSSL til at blive knyttet til Apache mod_ssl eller abs.for eksempel, og deaktiver patentbesatte funktioner i OpenSSL, du bruger muligvis følgende build-kommandoer:

    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 er ikke tilrådeligt at bruge , da det overfører omkostningerne ved deflatering af SSL-streams til den første anmodning, som skal indlæse dll. Bemærk den foreslåede patch gør det muligt for-L flag til at arbejde med vinduer bygger, korrigerer navnet på DLL.lib og sikrer .pdb-filer genereres til fejlfinding. Hvis assembler ikke er installeret, vil du tilføje no-asm ovenfor og bruge ms\do_ms.bat i stedet for ms\do_masm.bat script.
  • Databasebiblioteker (for mod_dbd og mod_authn_dbm)

    apr-util-biblioteket udsætter dBm (keyed database) og DBD (forespørgselsorienteret database) klientfunktionalitet til httpd-serveren og dens moduler, såsom godkendelse og autorisation. Sdbm dbm og odbc DBD udbydere er samlet betingelsesløst.

    DBD-supporten omfatter Oracle instantclient-pakken. For at opbygge disse alle skal du for eksempel oprette LIB ‘en til at inkludere biblioteksstien, inkludere for at inkludere overskriftsstien og sti for at inkludere DLL-binstien for alle fire SDK’ er og indstille dbd_list-miljøvariablen for at informere build, hvilke klientdriver SDK ‘ er der er installeret korrekt, f. eks.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    Tilsvarende kan dBm-supporten udvides med DBM_LIST til at opbygge en Berkeley DB provider (db) og/eller gdbm-udbyder ved på samme måde at konfigurere LIB, Inkluder og sti først for at sikre, at klientbiblioteket libs og overskrifter er tilgængelige.

    set DBM_LIST=db gdbm

    afhængigt af valget af databasefordelinger kan det være nødvendigt at ændre det faktiske linkmålnavn (f.eks.lib vs. libgdb.lib), der er angivet i den tilsvarende .dsp/.mak filer i mapper srclib \ apr-util \ dbd eller …\dbm.

    se README-vind32.tekstfil for flere tips om at opnå de forskellige database driver SDK ‘ er.

opbygning fra unikke kilder

politikken for Apache HTTP Server-projektet er kun at frigive unikke kilder. Kildepakker, der stilles til rådighed, er leveret af frivillige og er muligvis ikke tilgængelige for hver udgivelse. Du kan stadig bygge serveren på vinduer fra den unikke kilde tarball med blot et par ekstra trin.

  1. Hent og udpak den unikke kilde tarball for den nyeste version.
  2. Hent og pak den unikke kilde tarball for nyeste version af APR, AR-Util og APR-Iconv, placere disse kilder i mapper httpd-2.apr, httpd-2.Apr-util og httpd-2.x.iconv
  3. Åbn en kommandoprompt og CD til httpd-2.
  4. Kør linjeendings konverteringsværktøjet ved prompten;

perl srclib\apr\build\lineends.pl

du kan nu opbygge serveren med Visual Studio udviklingsmiljø ved hjælp af IDE. Kommandolinjebygninger af serveren er ikke mulige fra unikke kilder, medmindre du eksporterer .mak filer som forklaret nedenfor.

Kommandolinjebygning

Makefile.win er det øverste niveau Apache makefile. For at kompilere Apache på vinduer skal du blot bruge en af følgende kommandoer til at opbygge release eller debug smag:

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

enten kommando vil kompilere Apache. Sidstnævnte vil deaktivere optimering af de resulterende filer, hvilket gør det lettere at enkelt trin koden for at finde fejl og opspore problemer.

du kan tilføje dine apr-util dbd-og dbm-udbydervalg med de ekstra make (environment) – variabler DBD_LIST og DBM_LIST, se kommentarerne om Databasebiblioteker ovenfor. Gennemgå de indledende kommentarer i Makefile.vind for yderligere muligheder, der kan leveres, når du påberåber bygningen.

Udvikler Studio arbejdsområde IDE Build

Apache kan også kompileres ved hjælp af VC++’s Visual Studio udviklingsmiljø. For at forenkle denne proces leveres et Visual Studio-arbejdsområde, Apache.dsw. Dette arbejdsområde udsætter hele listen over arbejder .dsp projekter, der er nødvendige for den komplette Apache binære udgivelse. Det inkluderer afhængigheder mellem projekterne for at sikre, at de er bygget i den rigtige rækkefølge.

Åbn arbejdsområdet Apache.dsw, og vælg InstallBin (Release eller Debug build, som ønsket) som det aktive projekt. InstallBin får alt relateret projekt til at blive bygget, og påkalder derefter Makefile.win for at flytte de kompilerede eksekverbare filer og DLL ‘ er. Du kan tilpasse INSTDIR= valget ved at ændre InstallBins Indstillinger, fanen Generelt, Byg kommandolinjepost. INSTDIR som standard til /Apache2 mappen. Hvis du kun vil have en testkompilering (uden installation), kan du bygge BuildBin – projektet i stedet.

projektfilerne .dsp distribueres i Visual Studio 6.0 (98) format. Visuel C++ 5.0 (97) vil genkende dem. Visual Studio 2002 (. net) og nyere brugere skal konvertere Apache.dsw plus .dsp filer til en Apache.sln plus .msproj filer. Sørg for, at du konverterer .msproj filen igen, hvis dens kilde .dsp fil ændres! Dette er virkelig trivielt, bare åbn Apache.dsw i VC++ 7.0 IDE igen og omform.

der er en fejl i .VCPROJ konvertering af .DSP-filer. devenv.d – flag for RC-flag, der indeholder lange citerede /d ‘ defines, der indeholder mellemrum. Kommando:

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

konverterer / d-flagene til RC-flag til at bruge en alternativ, parserbar syntaks; desværre understøttes denne syntaks ikke af Visual Studio 97 eller dens eksporterede .mak filer. Disse / D flag bruges til at passere den lange beskrivelse af mod_apachemodule.so filer til den delte .rc ressource version-identifikator build.

bygning med OpenSSL 1.1.0 og op på grund af forskel i opbygningen struktur OpenSSL begynder med version 1.1.0 du bliver nødt til at konvertere DSP filer berørt med cvtdsp.pl fra APR 1.6 eller derover. Kommando:

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

Visual Studio 2002 (. net) og nyere brugere bør også bruge Build-menuen, Configuration Manager-dialogen til at fjerne markeringen af både Debug og Release Løsningsmodulerne abs, mod_deflate og mod_ssl komponenterne samt hver komponent, der starter med apr_db*. Disse moduler er bygget ved at påberåbe nmake, eller IDE direkte med BinBuild målet, som bygger disse moduler betinget, hvis srclib mapper openssl og/eller zlib eksisterer, og baseret på indstillingen af DBD_LIST og DBM_LIST miljøvariabler.

eksport kommandolinje .mak filer

eksporteret .mak filer udgør en større besvær, men de er nødvendige for Visual C++ 5.0 brugere til at bygge mod_ssl, abs (ab med SSL support) og/eller mod_deflate. Den .mak-filer understøtter også en bredere vifte af C++ værktøjskædefordelinger, såsom Visual Studio Ekspres.

du skal først bygge alle projekter for at skabe alle dynamiske auto-genererede mål, så afhængigheder kan analyseres korrekt. Byg hele projektet fra Visual Studio 6.0 (98) IDE, ved hjælp af BuildAll målet, brug derefter Projektmenuen eksport til alle makefiles (kontrol på “med afhængigheder”.) Kør følgende kommando for at rette absolutte stier i relative stier, så de vil bygge hvor som helst:

perl srclib\apr\build\fixwin32mak.pl

du skal skrive denne kommando fra mappen øverste niveau i httpd-kildetræet. Hver .mak og .dep projektfil i den aktuelle mappe og nedenfor vil blive rettet, og tidsstemplerne justeres for at afspejle .dsp.

gennemgå altid de genererede .mak og .dep filer til Platform SDK eller andre lokale, Maskinspecifikke filstier. Mappen DevStudio\Common\MSDev98\bin\ (VC6) indeholder en sysincl.dat fil, der viser alle undtagelser. Opdater denne fil (inklusive både frem-og tilbageskridt stier, såsom både sys/time.h og sys\time.h) for at ignorere sådanne nyere afhængigheder. Inkludering af lokale installationsstier i en distribueret .mak – fil får bygningen til at mislykkes fuldstændigt.

hvis du bidrager med en patch, der reviderer projektfiler, skal vi forpligte projektfiler i Visual Studio 6.0-format. Ændringer skal være enkle, med minimal kompilering og koblingsflag, der kan genkendes af alle Visual Studio-miljøer.

Installation

Når Apache er blevet kompileret, skal den installeres i sin server rodmappe. Standard er \Apache2 – mappen for det samme drev.

for at opbygge og installere alle filerne i den ønskede mappe dir Automatisk, brug en af følgende nmake kommandoer:

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

dir-argumentet til INSTDIR giver installationsmappen; det kan udelades, hvis Apache skal installeres i \Apache22 (af det aktuelle drev).

advarsel om opbygning af Apache fra udviklingstræet

Bemærk Kun .dsp filerne opretholdes mellem release builds. .mak – filerne regenereres ikke på grund af det enorme spild af korrekturlæserens tid. Derfor kan du ikke stole på NMAKE kommandoerne ovenfor for at opbygge reviderede .dsp projektfiler, medmindre du derefter eksporterer alle .mak filer selv fra projektet. Dette er unødvendigt, hvis du bygger fra Microsoft Developer Studio-miljøet.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.