Kompilering Av Apache For Microsoft Windows

Bygging av httpd med De inkluderte Visual Studio-prosjektfilene

Krav

Kompilering Av Apache krever at følgende miljø er riktig installert:

  • Diskplass

    Kontroller at du har minst 200 MB ledig diskplass tilgjengelig. Etter installasjon Apache krever ca 80 MB diskplass, pluss plass for logg og cache-filer, som kan vokse raskt. De faktiske diskplasskravene vil variere betydelig basert på den valgte konfigurasjonen og eventuelle tredjepartsmoduler eller biblioteker, spesielt Når OpenSSL også er bygget. FORDI MANGE filer er tekst og veldig lett komprimert, kutter NTFS filsystem komprimering disse kravene i to.

  • Passende Patcher

    httpd-binæren er bygget ved hjelp av flere patcher til tredjepartspakker, som sikrer at den utgitte koden er byggbar og feilsøkbar. Disse oppdateringene er tilgjengelige og distribuert fra http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ og anbefales å brukes for å oppnå identiske resultater som DE «offisielle» asf distribuerte binærfilene.

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

    Apache kan bygges ved hjelp av kommandolinjeverktøyene, eller fra Visual Studio IDE Workbench. Kommandolinjen bygger krever at miljøet reflekterer PATH, INCLUDE, LIB og andre variabler som kan konfigureres med vcvars32.bat – skriptet.

    Du vil Kanskje Ha Visual Studio Processor Pack for den eldre Versjonen Av Visual Studio, eller en full (ikke Express) versjon av nyere Visual Studio-utgaver, for ml.exe assembler. Dette vil tillate Deg å bygge OpenSSL, hvis ønskelig, ved hjelp av mer effektiv assembly code implementering.
    Bare Microsoft compiler tool-kjeden støttes aktivt av de aktive httpd-bidragsyterne. Selv om prosjektet regelmessig aksepterer patcher for å sikre At MinGW og andre alternative bygger arbeid og forbedrer dem, blir de ikke aktivt vedlikeholdt og blir ofte ødelagt i løpet av normal utvikling.
  • Oppdatert Microsoft Windows Platform SDK, februar 2003 eller senere.

    en passende WINDOWS-PLATTFORM SDK er inkludert som standard i full (ikke express/lite) versjoner Av Visual C++ 7.1 (Visual Studio 2002) og nyere, kan disse brukerne ignorere disse trinnene med mindre du eksplisitt velger en nyere eller annen versjon av Plattform SDK.

    Hvis Du vil bruke Visual C++ 6.0 eller 7.0 (Studio 2000. NET), Må Platform SDK-miljøet være forberedt ved hjelp av skriptet setenv.bat (installert AV Platform SDK) før du starter kommandolinjen eller starter MSDEV / devenv GUI-miljøet. Installere Plattform SDK For Visual Studio Express-versjoner (2003 og nyere) bør justere standardmiljøet på riktig måte.

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

  • Perl og awk

    Flere trinn som anbefales her, krever en perl-tolk under byggeforberedelsesprosessen, men det er ellers ikke nødvendig.

    for å installere Apache i byggesystemet, endres flere filer ved hjelp av verktøyet awk.exe. awk ble valgt siden det er en svært liten nedlasting (sammenlignet Med Perl eller WSH / VB) og oppnår oppgaven med å endre konfigurasjonsfiler ved installasjon. Brian Kernighans http://www.cs.princeton.edu/~bwk/btl.mirror/ nettsted har en kompilert innfødt Win32 binær, http://www.cs.princeton.edu/~bwk/btl.mirror/ awk95.exe som du må lagre med navnet awk.exe (i stedet for awk95.exe).

    hvis awk.exe er ikke funnet, Makefile.win ‘ s install target vil ikke utføre erstatninger i den installerte .conf-filer. Du må manuelt endre den installerte .conf filer for å tillate serveren å starte. Søk og erstatt alle»@ token @ » – tagger etter behov.
    Visual Studio IDE finner bare awk.exe FRA BANEN eller kjørbar bane som er angitt I Menyalternativverktøyene -> Alternativer -> (Prosjekter ->) Kataloger. Sikre awk.exe er i systemet banen.
    vær også oppmerksom på at hvis Du bruker Cygwin tools (http://www.cygwin.com/) awk-verktøyet heter gawk.exe og at filen awk.exe egentlig er en symlink til gawk.exe – filen. Windows command shell gjenkjenner ikke symlinks, og På grunn av denne bygningen Vil InstallBin mislykkes. En løsning er å slette awk.exe fra cygwin-installasjonen og kopiere gawk.exe til awk.exe. Legg også merke til cygwin / mingw porter av gawk 3.0.x var buggy, vennligst oppgrader til 3.1.x før du prøver å bruke noen gawk port.
  • zlib bibliotek (for mod_deflate)

    Zlib må være installert i en underkatalog srclib kalt zlib. Dette må bygges på plass. Zlib kan fås fra http://www.zlib.net/ – mod_deflate er bekreftet å fungere riktig med versjon 1.2.3.

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

  • OpenSSL-biblioteker (for mod_ssl og ab.exe med ssl-støtte)

    OpenSSL-biblioteket er kryptografisk programvare. Landet du bor i, kan ha restriksjoner på import, besittelse, bruk og/eller reeksport til et annet land av krypteringsprogramvare. Før du bruker krypteringsprogramvare, vennligst sjekk landets lover, forskrifter og retningslinjer for import, besittelse eller bruk, og reeksport av krypteringsprogramvare, for å se om dette er tillatt. Se http://www.wassenaar.org/ for mer informasjon.

    Konfigurering Og bygging Av OpenSSL krever at perl installeres.

    OpenSSL må installeres i en srclib underkatalog kalt openssl, hentet fra http://www.openssl.org/source/ , for å kompilere mod_ssl eller abs.exe – prosjektet, som er ab.c MED SSL-støtte aktivert. Å forberede OpenSSL å være knyttet Til Apache mod_ssl eller abs.exe, og deaktivere patent beheftet funksjoner I OpenSSL, kan du bruke følgende bygge 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ådelig å bruke zlib-dynamic, da det overfører kostnaden for deflating SSL-strømmer til den første forespørselen som må laste zlib dll. Den foreslåtte oppdateringen gjør at-l-flagget fungerer med windows-bygg, korrigerer navnet på zdll.lib og sikrer .pdb-filer genereres for feilsøking. Hvis assembler ikke er installert, vil du legge til no-asm over og bruke ms \ do_ms. bat i stedet for ms \ do_masm.bat script.
  • Databasebiblioteker (for mod_dbd og mod_authn_dbm)

    apr-util-biblioteket eksponerer dbm (keyed database) og dbd (query oriented database) klientfunksjonalitet til httpd-serveren og dens moduler, for eksempel godkjenning og autorisasjon. Sdbm dbm og odbc dbd leverandører er kompilert ubetinget.

    dbd-støtten inkluderer oracle instantclient-pakken, MySQL, PostgreSQL og sqlite. For å bygge disse alle, for eksempel, sett OPP LIB til å inkludere bibliotekbanen, INKLUDER for å inkludere overskriftsbanen og BANE for å inkludere dll bin-banen for alle fire SDK-ene, og sett dbd_list-miljøvariabelen for å informere bygningen hvilken klientdriver Sdk er installert riktig, f. eks.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    På Samme måte kan dbm-støtten utvides MED DBM_LIST for å bygge En Berkeley DB provider (db) og/eller gdbm provider, ved å konfigurere LIB på samme måte, INKLUDERE OG BANE først for å sikre at klientbiblioteket libs og overskrifter er tilgjengelige.

    set DBM_LIST=db gdbm

    avhengig av valg av databasefordelinger, kan det være nødvendig å endre det faktiske koblingsmålnavnet (f.eks. gdbm.lib vs. libgdb.lib) som er oppfort i tilsvarende .dsp/.mak-filer i katalogene srclib\apr-util\dbd eller …\dbm.

    Se README-win32.txt-fil for flere tips om å skaffe de ulike database driver Sdk.

Bygge Fra Unix-kilder

politikken Til Apache HTTP Server-prosjektet er å bare slippe unix-kilder. Windows-kildepakker som er tilgjengelig for nedlasting, har blitt levert av frivillige og er kanskje ikke tilgjengelige for hver utgivelse. Du kan fortsatt bygge serveren På Windows Fra Unix-kilden tarball med bare noen få ekstra trinn.

  1. Last Ned Og pakk Ut Unix-kilden tarball for den nyeste versjonen.
  2. Last Ned Og pakk Unix kilde tarball for nyeste versjon AV APR, AR-Util OG APR-Iconv, plassere disse kildene i kataloger httpd-2.x. x\srclib\apr, httpd-2.x. x \ srclib \ apr-util og httpd-2.x.x \ srclib \ apr-iconv
  3. Åpne En Ledetekst og CD til httpd-2.x. x folder
  4. Kjør konverteringsverktøyet for linjeavslutninger ved ledeteksten;

perl srclib\apr\build\lineends.pl

Du kan nå bygge serveren Med Visual Studio utviklingsmiljø ved HJELP AV IDE. Kommandolinjebygninger av serveren er ikke mulig Fra Unix-kilder med mindre du eksporterer .mak-filer som forklart nedenfor.

Kommandolinje Build

Makefile.win Er Det Øverste nivået Apache makefile. For å kompilere Apache På Windows, bruk bare en av følgende kommandoer for å bygge release eller debug smaken:

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

enten kommandoen vil kompilere Apache. Sistnevnte vil deaktivere optimalisering av de resulterende filene, noe som gjør det lettere å enkelt trinn koden for å finne feil og spore problemer.

du kan legge til apr-util dbd-og dbm-leverandørvalgene dine med de ekstra make (miljø) variablene DBD_LIST og DBM_LIST, se kommentarene om Databasebiblioteker ovenfor. Se gjennom de første kommentarene I Makefile.vinn for flere alternativer som kan gis når påkalle bygge.

Developer Studio Workspace IDE Build

Apache kan også kompileres ved HJELP AV Vc++’S Visual Studio utviklingsmiljø. For å forenkle denne prosessen tilbys Et Visual Studio-arbeidsområde, Apache.dsw. Dette arbeidsområdet viser hele listen over arbeid .dsp prosjekter som kreves for den komplette Apache binary-utgivelsen. Det inkluderer avhengigheter mellom prosjektene for å sikre at de er bygget i riktig rekkefølge.

Åpne arbeidsområdet Apache.dsw, og velg InstallBin(Release eller Debug bygg etter ønske) som Det Aktive Prosjektet. InstallBin fører til at alle relaterte prosjekter bygges, og deretter starter Makefile.win for å flytte kompilerte kjørbare filer og dll-filer. Du kan tilpasse INSTDIR= valg ved å endre InstallBin‘S Innstillinger, Generelt kategorien, Bygge kommandolinje oppføring. INSTDIR er standard til katalogen /Apache2. Hvis du bare vil ha en testkompilering (uten å installere), kan du bygge BuildBin – prosjektet i stedet.

.dsp prosjektfiler distribueres I Visual Studio 6.0 (98) format. Visual C++ 5.0 (97) vil gjenkjenne dem. Visual Studio 2002 (. NET) og senere brukere må konvertere Apache.dsw pluss .dsp – filer til en Apache.sln pluss .msproj – filer. Pass på at du reconvert filen .msproj igjen hvis kilden .dsp filen endres! Dette er veldig trivielt, bare åpne Apache.dsw I VC++ 7.0 IDE igjen og reconvert.

Det er en feil i den .vcproj konvertering av .dsp-filer. devenv.exe vil mis-analysere / D flagg FOR RC flagg som inneholder lange sitert / D ‘ defines som inneholder mellomrom. Kommando:

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

konverterer / D-flaggene FOR RC-flagg til å bruke en alternativ, analyserbar syntaks. dessverre støttes ikke denne syntaksen Av Visual Studio 97 eller den eksporterte .mak-filer. Disse / d-flaggene brukes til å passere den lange beskrivelsen av mod_apachemodule.so filer til den delte .rc ressurs versjon-identifier bygge.

Bygg Med OpenSSL 1.1.0 Og opp på grunn av forskjell i byggestrukturen Til OpenSSL begining med versjon 1.1.0 må du konvertere dsp-filene som er berørt med cvtdsp.pl FRA APR 1.6 eller høyere. Kommando:

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

Visual Studio 2002 (. NET) og senere brukere bør også bruke Bygg-menyen, Configuration Manager dialog for å fjerne merket for Både Debug Og Release Løsningsmoduler abs, mod_deflate og mod_ssl komponenter, samt hver komponent som starter med apr_db*. Disse modulene er bygget ved å påkalle nmake, ELLER IDE direkte med BinBuild – målet, som bygger disse modulene betinget hvis srclib katalogene openssl og/eller zlib eksisterer, og basert på innstillingen av DBD_LIST og DBM_LIST miljøvariabler.

Eksporterer kommandolinjen .mak-filer

Eksporterte .mak filer utgjør et større problem, men De kreves For Visual C++ 5.0-brukere å byggemod_ssl, abs (abMED SSL-støtte) og/eller mod_deflate. Den .mak-filer støtter også et bredere utvalg Av c++ verktøykjededistribusjoner, for Eksempel Visual Studio Express.

du må først bygge alle prosjekter for å opprette alle dynamiske automatisk genererte mål, slik at avhengigheter kan analyseres riktig. Bygg hele prosjektet fra Visual Studio 6.0 (98) IDE, ved hjelp av målet BuildAll, bruk Deretter Prosjektmenyen Eksport for alle makefiles (sjekker på «med avhengigheter».) Kjør følgende kommando for å korrigere absolutte stier i relative baner slik at de vil bygge hvor som helst:

perl srclib\apr\build\fixwin32mak.pl

du må skrive inn denne kommandoen fra katalogen på øverste nivå i httpd-kildetreet. Hver .mak og .dep prosjektfil i gjeldende katalog og under vil bli korrigert, og tidsstemplene justeres for å gjenspeile .dsp.

se alltid gjennom de genererte .mak og .dep filene for Plattform SDK eller andre lokale, maskinspesifikke filbaner. Katalogen DevStudio\Common\MSDev98\bin\ (VC6) inneholder en sysincl.dat – fil, som viser alle unntak. Oppdater denne filen (inkludert både forover og backslashed baner, for eksempel både sys/time.h og sys\time.h) for å ignorere slike nyere avhengigheter. Inkludert lokale installasjonsbaner i en distribuert .mak – fil vil føre til at bygningen mislykkes helt.

hvis du bidrar tilbake en oppdatering som reviderer prosjektfiler, må vi forplikte prosjektfiler I Visual Studio 6.0-format. Endringer bør være enkle, med minimal kompilering og koblingsflagg som kan gjenkjennes av Alle Visual Studio-miljøer.

Installasjon

Når Apache er kompilert, må Den installeres i serverrotkatalogen. Standard er katalogen \Apache2, på samme stasjon.

for å bygge og installere alle filene i ønsket mappe dir automatisk, bruk en av følgende kommandoer nmake :

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

dir-argumentet til INSTDIR gir installasjonsmappen; Det kan utelates hvis Apache skal installeres i \Apache22 (av gjeldende stasjon).

Advarsel om å bygge Apache fra utviklingstreet

Merk bare .dsp filer opprettholdes mellom release bygger. De .mak filene er ikke regenerert, på grunn av den enorme sløsing med anmelder tid. Derfor kan du ikke stole på kommandoene NMAKE ovenfor for å bygge reviderte .dsp prosjektfiler med mindre du deretter eksportere alle .mak filer selv fra prosjektet. Dette er unødvendig hvis Du bygger fra Microsoft Developer Studio-miljøet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.