Apache compileren voor Microsoft Windows

httpd bouwen met de meegeleverde Visual Studio-projectbestanden

vereisten

Apache compileren vereist dat de volgende omgeving correct is geïnstalleerd:

  • schijfruimte

    zorg ervoor dat u ten minste 200 MB vrije schijfruimte beschikbaar hebt. Na de installatie heeft Apache ongeveer 80 MB schijfruimte nodig, plus ruimte voor log-en cachebestanden, die snel kunnen groeien. De werkelijke schijfruimte-vereisten zullen aanzienlijk variëren afhankelijk van de door u gekozen configuratie en eventuele modules of bibliotheken van derden, vooral wanneer OpenSSL ook is gebouwd. Omdat veel bestanden tekst zijn en zeer gemakkelijk gecomprimeerd, snijdt NTFS bestandssysteem compressie deze vereisten in de helft.

  • geschikte Patches

    het httpd binaire bestand wordt gebouwd met behulp van verschillende patches naar pakketten van derden, die ervoor zorgen dat de vrijgegeven code buildable en debuggable is. Deze patches zijn beschikbaar en gedistribueerd vanaf http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ en worden aanbevolen toe te passen om identieke resultaten te verkrijgen als de “officiële” ASF gedistribueerde binaries.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) of hoger.

    Apache kan worden gebouwd met behulp van de commandoregel gereedschappen, of vanuit de Visual Studio IDE Workbench. De command line build vereist dat de omgeving om de PATH, INCLUDE, LIB en andere variabelen die kunnen worden geconfigureerd met het vcvars32.bat script.

    u wilt misschien het Visual Studio-Processorpakket voor uw oudere versie van Visual Studio, of een volledige (niet uitdrukkelijke) versie van nieuwere Visual Studio-edities, voor de ml.exe assembler. Dit zal u toelaten om OpenSSL te bouwen, indien gewenst, met behulp van de efficiëntere assemblage code implementatie.
    alleen de Microsoft compiler tool keten wordt actief ondersteund door de actieve httpd-bijdragers. Hoewel het project regelmatig patches accepteert om ervoor te zorgen dat MinGW en andere alternatieve bouwt werken en verbeteren op hen, worden ze niet actief onderhouden en worden vaak gebroken in de loop van de normale ontwikkeling.
  • bijgewerkt Microsoft Windows Platform SDK, februari 2003 of later.

    een geschikte Windows-Platformsdk is standaard opgenomen in de volledige (niet express/lite) versies van Visual C++ 7.1 (Visual Studio 2002) en later, deze gebruikers kunnen deze stappen negeren, tenzij ze expliciet een nieuwere of andere versie van de Platformsdk kiezen.

    om Visual C++ 6.0 of 7.0 (Studio 2000.net) te gebruiken, moet de SDK-omgeving van het Platform worden voorbereid met behulp van het setenv.bat – script (geïnstalleerd door de SDK van het Platform) voordat de command line build wordt gestart of de GUI-omgeving van msdev/devenv wordt gestart. Het installeren van het Platform SDK voor Visual Studio Express-versies (2003 en later) moet de standaardomgeving op de juiste manier aanpassen.

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

  • Perl en awk

    verschillende hier aanbevolen stappen vereisen een Perl-interpreter tijdens het bouwvoorbereidingsproces, maar het is anders niet vereist.

    om Apache binnen het build systeem te installeren, worden verschillende bestanden gewijzigd met het awk.exe hulpprogramma. awk werd gekozen omdat het een zeer kleine download (vergeleken met Perl of WSH/VB) en vervult de taak van het wijzigen van configuratiebestanden bij de installatie. Brian Kernighan ‘ s http://www.cs.princeton.edu/~bwk/btl.mirror/ site heeft een gecompileerde Win32 binary, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe die u moet opslaan met de naam awk.exe (in plaats van awk95.exe).

    indien awk.exe is niet gevonden, Makefile.win ‘ s install target zal geen vervangingen uitvoeren in de geïnstalleerde .conf files. U moet de geïnstalleerde handmatig wijzigen .conf bestanden om de server te laten starten. Zoek en vervang alle”@ token @ ” tags indien van toepassing.
    de Visual Studio IDE zal alleen awk.exe vinden in het pad, of het uitvoerbare pad gespecificeerd in de menu-optie hulpmiddelen- > opties- > (projecten – >) mappen. Zorg voor awk.exe is in uw systeem pad.
    merk ook op dat als u Cygwin tools (http://www.cygwin.com/) gebruikt, het hulpprogramma awk gawk.exe heet en dat het bestand awk.exe in werkelijkheid een symlink is naar het bestand gawk.exe. De windows command shell herkent geen symlinks, en vanwege dit gebouw zal InstallBin falen. Een tijdelijke oplossing is het verwijderen van awk.exe uit de cygwin installatie en het kopiëren van gawk.exe naar awk.exe. Let ook op de cygwin/mingw poorten van gawk 3.0.x waren buggy, gelieve te upgraden naar 3.1.x voordat u een gawk-poort probeert te gebruiken.
  • zlib-bibliotheek (voor mod_deflate)

    Zlib moet geïnstalleerd worden in een srclib submap met de naam zlib. Dit moet op zijn plaats worden ingebouwd. Zlib kan worden verkregen van http://www.zlib.net/ — de mod_deflate is bevestigd om correct te werken met Versie 1.2.3.

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

  • OpenSSL-bibliotheken (voor mod_ssl en ab.exe met ssl-ondersteuning)

    de OpenSSL-bibliotheek is cryptografische software. Het land waar u momenteel woont, kan beperkingen hebben op het importeren, in bezit hebben, gebruiken en/of opnieuw exporteren naar een ander land van encryptiesoftware. Controleer voordat u coderingssoftware gebruikt de wetten, voorschriften en het beleid van uw land met betrekking tot het importeren, in bezit hebben of gebruiken en herexport van coderingssoftware, om te zien of dit is toegestaan. Zie http://www.wassenaar.org/ voor meer informatie.

    het configureren en bouwen van OpenSSL vereist dat perl geïnstalleerd is.

    OpenSSL moet worden geïnstalleerd in een srclib submap met de naam openssl, verkregen uit http://www.openssl.org/source/, om mod_ssl of het abs.exe project, dat ab is, te compileren.c met SSL-ondersteuning ingeschakeld. Om OpenSSL voor te bereiden om te worden gekoppeld aan Apache mod_ssl of abs.exe, en uitschakelen patent bezwaard functies in OpenSSL, kunt u de volgende build commando ‘ s gebruiken:

    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

    het is niet aan te raden om zlib-dynamic te gebruiken, omdat dat de kosten van het leeglopen van SSL-streams overbrengt naar het eerste verzoek dat de zlib-dll moet laden. Merk op dat de voorgestelde patch de-l vlag in staat stelt om te werken met windows builds, corrigeert de naam van zdll.lib en verzekert .pdb-bestanden worden gegenereerd voor het oplossen van problemen. Als de assembler niet geïnstalleerd is, voeg je no-asm toe en gebruik je ms\do_ms.bat in plaats van ms\do_masm.bat script.
  • Databasebibliotheken (voor mod_dbd en mod_authn_dbm)

    de Apr-util bibliotheek stelt dBm (gecodeerde database) en dbd (query oriented database) client functionaliteit bloot aan de httpd server en zijn modules, zoals authenticatie en autorisatie. De sdbm DBM en odbc dbd providers worden onvoorwaardelijk gecompileerd.

    de DBD-ondersteuning omvat het Oracle instantclient-pakket, MySQL, PostgreSQL en sqlite. Bouwen van deze alle, bijvoorbeeld het opzetten van het LIB te zijn van de bibliotheek pad ZIJN om de koppen weg en PAD naar de dll-bin pad van alle vier de SDK ‘s, en het instellen van de DBD_LIST omgevingsvariabele te geven aan het bouwen van die client-stuurprogramma Sdk’ s correct zijn geïnstalleerd, bijvoorbeeld;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    Ook de dbm ondersteuning kan worden uitgebreid met DBM_LIST voor het bouwen van een Berkeley DB-provider (db) en/of gdbm provider, door op dezelfde manier configureren LIB, ZIJN PAD en eerst te zorgen dat de client-bibliotheek libs en koppen zijn beschikbaar.

    set DBM_LIST=db gdbm

    afhankelijk van de keuze van de databasedistributies, kan het nodig zijn om de eigenlijke doelnaam van de koppeling te wijzigen (bijvoorbeeld gdbm.lib vs. libgdb.lib) die in de overeenkomstige worden vermeld .dsp/.mak bestanden binnen de mappen srclib\apr-util\dbd of …\dbm.

    zie de readme-win32.txt-bestand voor meer tips over het verkrijgen van de verschillende database driver SDK ‘ s.

bouwen van Unix bronnen

het beleid van het Apache HTTP Server project is om alleen Unix bronnen vrij te geven. Windows source pakketten beschikbaar gesteld voor download zijn geleverd door vrijwilligers en zijn mogelijk niet beschikbaar voor elke release. U kunt de server Nog steeds bouwen op Windows vanuit de Unix bron tarball met slechts een paar extra stappen.

  1. download en pak de UNIX brontarball uit voor de laatste versie.
  2. download en pak de UNIX brontarball uit voor de laatste versie van APR, AR-Util en APR-Iconv, plaats deze bronnen in mappen httpd-2.x. x \ srclib \ apr, httpd-2.x. x \ srclib \ apr-util en httpd-2.x.x \ srclib \ apr-iconv
  3. open een opdrachtprompt en CD naar de httpd-2.x. x map
  4. voer het conversie-hulpprogramma voor regeleinden uit achter de prompt;

perl srclib\apr\build\lineends.pl

u kunt nu de server bouwen met de Visual Studio-ontwikkelomgeving met behulp van de IDE. Command-Line builds van de server zijn niet mogelijk vanuit Unix bronnen tenzij u exporteert .mak bestanden zoals hieronder uitgelegd.

Command-Line Build

Makefile.win is het hoogste niveau Apache makefile. Om Apache op Windows te compileren, gebruik je gewoon een van de volgende commando ’s om de release of debug smaak te bouwen:

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

beide commando’ s zullen Apache compileren. De laatste zal de optimalisatie van de resulterende bestanden uit te schakelen, waardoor het gemakkelijker is om een stap de code om bugs te vinden en op te sporen problemen.

u kunt uw apr-util DBD en dbm provider keuzes toevoegen met de extra make (environment) variabelen DBD_LIST en DBM_LIST, zie de opmerkingen over Databasebibliotheken hierboven. Bekijk de eerste opmerkingen in Makefile.win voor extra opties die kunnen worden verstrekt bij het aanroepen van de build.

Developer Studio Workspace IDE Build

Apache kan ook gecompileerd worden met behulp van VC++’s Visual Studio ontwikkelomgeving. Om dit proces te vereenvoudigen, wordt een Visual Studio-werkruimte (Apache.dsw) aangeboden. Deze werkruimte toont de volledige lijst van .dsp werkprojecten die nodig zijn voor de volledige Apache binaire release. Het omvat afhankelijkheden tussen de projecten om ervoor te zorgen dat ze in de juiste volgorde worden gebouwd.

Open de Apache.dsw werkruimte, en selecteer InstallBin (Release of Debug bouwen, zoals gewenst) als het actieve Project. InstallBin zorgt ervoor dat alle gerelateerde projecten worden gebouwd, en roept dan Makefile.win aan om de gecompileerde uitvoerbare bestanden en DLL ‘ s te verplaatsen. U kunt de INSTDIR= keuze personaliseren door InstallBin’s Instellingen, tabblad Algemeen, Build command line entry te wijzigen. INSTDIR staat standaard in de /Apache2 map. Als u alleen een test compilatie wilt (zonder te installeren) kunt u in plaats daarvan het BuildBin project bouwen.

de .dsp projectbestanden worden gedistribueerd in Visual Studio 6.0 (98) formaat. Visueel C++ 5.0 (97) zal hen herkennen. Visual Studio 2002 (. net) en latere gebruikers moeten Apache.dsw plus de .dsp bestanden converteren naar een Apache.sln plus .msproj bestanden. Zorg ervoor dat u het .msproj bestand opnieuw converteert als de bron .dsp bestand verandert! Dit is echt triviaal, open gewoon Apache.dsw in de VC++ 7.0 IDE nogmaals en reconverteer.

er is een fout in de .VCPROJ conversie van .dsp bestanden. devenv.exe zal de /D-vlag verkeerd ontleden voor RC-vlaggen die lang geciteerde /D ‘ defines bevatten die spaties bevatten. Opdracht:

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

zal de /D-vlaggen voor RC-vlaggen converteren om een alternatieve, parseable syntaxis te gebruiken; helaas wordt deze syntaxis niet ondersteund door Visual Studio 97 of zijn geëxporteerd .Mak files. Deze / D vlaggen worden gebruikt om de lange beschrijving van de mod_apachemodule.so bestanden naar de gedeelde .RC resource version-identifier build.

bouwen met OpenSSL 1.1.0 en hoger vanwege verschil in de bouwstructuur van OpenSSL die begint met Versie 1.1.0, moet u de getroffen dsp-bestanden converteren met cvtdsp.pl vanaf APR 1.6 of hoger. Opdracht:

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

Visual Studio 2002 (. net) en latere gebruikers moeten ook het dialoogvenster Build, Configuration Manager gebruiken om zowel de componenten Debug en Release Oplossingsmodules abs, mod_deflate en mod_ssl uit te vinken, als elk onderdeel dat begint met apr_db*. Deze modules worden gebouwd door nmake aan te roepen, of de IDE rechtstreeks met het BinBuild doel, dat deze modules conditioneel bouwt als de srclib mappen openssl en/of zlib bestaan, en gebaseerd op de instelling van DBD_LIST en DBM_LIST omgevingsvariabelen.

opdrachtregel exporteren .mak-bestanden

geëxporteerde .mak bestanden leveren een groter probleem op, maar ze zijn nodig voor Visual C++ 5.0-gebruikers om mod_ssl, abs (ab met SSL-ondersteuning) en/of mod_deflatete bouwen. De .mak-bestanden ondersteunen ook een breder scala aan C++ tool chain-distributies, zoals Visual Studio Express.

u moet eerst alle projecten bouwen om alle dynamische automatisch gegenereerde doelen te maken, zodat afhankelijkheden correct kunnen worden ontleed. Bouw het hele project vanuit de Visual Studio 6.0 (98) IDE, met behulp van het BuildAll doel, gebruik dan het project Menu Export voor alle makefiles (controleren op “with dependencies”.) Voer het volgende commando uit om absolute paden te corrigeren in relatieve paden zodat ze overal zullen bouwen:

perl srclib\apr\build\fixwin32mak.pl

je moet dit commando typen vanuit de top level directory van de httpd broncode boom. Elk .mak en .dep projectbestand binnen de huidige map en hieronder zal worden gecorrigeerd, en de tijdstempels worden aangepast om het .dspweer te geven.

Controleer altijd de gegenereerde .mak en .dep bestanden voor Platform SDK of andere lokale, machinespecifieke bestandspaden. De DevStudio\Common\MSDev98\bin\ (VC6) map bevat een sysincl.dat bestand, waarin alle uitzonderingen staan. Werk dit bestand bij (inclusief zowel vooruit-als backslashed paden, zoals zowel sys/time.h als sys\time.h) om dergelijke nieuwere afhankelijkheden te negeren. Het opnemen van lokale installatiepaden in een gedistribueerd .mak bestand zal ervoor zorgen dat het bouwen volledig mislukt.

Als u een patch bijdraagt die projectbestanden reviseert, moeten we projectbestanden committen in Visual Studio 6.0 formaat. Wijzigingen moeten eenvoudig zijn, met minimale compilatie-en koppelingsvlaggen die door alle Visual Studio-omgevingen kunnen worden herkend.

installatie

Zodra Apache is gecompileerd, moet het in de hoofdmap van de server worden geïnstalleerd. De standaard is de \Apache2 map, van hetzelfde station.

om alle bestanden automatisch in de gewenste map te bouwen en te installeren, gebruikt u een van de volgende nmake – opdrachten:

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

het dir argument van INSTDIR levert de installatie map; het kan worden weggelaten als Apache moet worden geïnstalleerd in \Apache22 (van de huidige schijf).

waarschuwing voor het bouwen van Apache vanuit de ontwikkelstructuur

Opmerking Alleen de .dsp bestanden worden onderhouden tussen release builds. De .mak bestanden worden niet geregenereerd, als gevolg van de enorme verspilling van de tijd van de recensent. Daarom kunt u niet vertrouwen op de NMAKE commando ‘ s hierboven om herziene .dsp project bestanden te bouwen, tenzij u vervolgens alle .mak bestanden zelf uit het project exporteert. Dit is niet nodig als u vanuit de Microsoft Developer Studio-omgeving bouwt.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.