Compilazione di Apache per Microsoft Windows

Edificio httpd con incluso il progetto di Visual Studio file

Requisiti

Compilazione di Apache richiede i seguenti ambiente per essere correttamente installato:

  • Spazio su Disco

    assicurarsi di avere almeno 200 MB di spazio libero su disco disponibile. Dopo l’installazione Apache richiede circa 80 MB di spazio su disco, più spazio per i file di log e cache, che possono crescere rapidamente. I requisiti effettivi di spazio su disco variano notevolmente in base alla configurazione scelta e a qualsiasi modulo o libreria di terze parti, specialmente quando OpenSSL è anche costruito. Poiché molti file sono di testo e molto facilmente compressi, la compressione del filesystem NTFS riduce questi requisiti a metà.

  • Patch appropriate

    Il binario httpd è costruito con l’aiuto di diverse patch per pacchetti di terze parti, che assicurano che il codice rilasciato sia costruibile e debuggabile. Queste patch sono disponibili e distribuite da http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ e sono raccomandate per essere applicate per ottenere risultati identici ai binari distribuiti ASF “ufficiali”.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) o versioni successive.

    Apache può essere creato utilizzando gli strumenti della riga di comando o dall’interno di Visual Studio IDE Workbench. La compilazione della riga di comando richiede che l’ambiente rifletta PATH, INCLUDE, LIB e altre variabili che possono essere configurate con lo script vcvars32.bat.

    È possibile utilizzare Visual Studio Processor Pack per la versione precedente di Visual Studio o una versione completa (non Express) delle versioni più recenti di Visual Studio, per il ml.assemblatore exe. Ciò ti consentirà di creare OpenSSL, se lo desideri, utilizzando l’implementazione del codice assembly più efficiente.
    Solo la catena di strumenti del compilatore Microsoft è supportata attivamente dai contributori httpd attivi. Sebbene il progetto accetti regolarmente le patch per garantire che MinGW e altre build alternative funzionino e migliorino, non vengono mantenute attivamente e spesso vengono interrotte nel corso del normale sviluppo.
  • Aggiornamento di Microsoft Windows Platform SDK, febbraio 2003 o versioni successive.

    Un SDK di Windows Platform appropriato è incluso per impostazione predefinita nelle versioni complete (non express/lite) di Visual C++ 7.1 (Visual Studio 2002) e successive, questi utenti possono ignorare questi passaggi a meno che non scelgano esplicitamente una versione più recente o diversa di Platform SDK.

    Per utilizzare Visual C++ 6.0 o 7.0 (Studio 2000.NET), l’ambiente SDK della piattaforma deve essere preparato utilizzando lo script setenv.bat (installato dall’SDK della piattaforma) prima di avviare la compilazione della riga di comando o avviare l’ambiente GUI msdev/devenv. L’installazione di Platform SDK per le versioni di Visual Studio Express (2003 e successive) dovrebbe regolare l’ambiente predefinito in modo appropriato.

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

  • Perl e awk

    Diversi passaggi consigliati qui richiedono un interprete perl durante il processo di preparazione della build, ma non è altrimenti richiesto.

    Per installare Apache all’interno del sistema di compilazione, diversi file vengono modificati utilizzando l’utilità awk.exe. awk è stato scelto in quanto è un download molto piccolo (rispetto a Perl o WSH/VB) e svolge il compito di modificare i file di configurazione al momento dell’installazione. Il sito http://www.cs.princeton.edu/~bwk/btl.mirror/ di Brian Kernighan ha un binario Win32 nativo compilato, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe che devi salvare con il nome awk.exe(anziché awk95.exe).

    Se awk.exe non è stato trovato, Makefile.il target di installazione di win non eseguirà sostituzioni nell’installato .file conf. È necessario modificare manualmente l’installato .file conf per consentire l’avvio del server. Cerca e sostituisci tutti i tag “@ token@ ” come appropriato.
    L’IDE di Visual Studio troverà soloawk.exe dal PERCORSO o percorso eseguibile specificato nell’opzione di menu Strumenti- > Opzioni- > (Progetti- >) Directory. Garantire awk.exe è nel percorso del sistema.
    Si noti inoltre che se si utilizzano gli strumenti Cygwin (http://www.cygwin.com/) l’utilità awk si chiama gawk.exe e che il file awk.exe è in realtà un collegamento simbolico al file gawk.exe. La shell dei comandi di Windows non riconosce i collegamenti simbolici e, a causa di questo edificio, InstallBin fallirà. Una soluzione alternativa consiste nell’eliminare awk.exe dall’installazione di cygwin e copiare gawk.exein awk.exe. Si noti inoltre le porte cygwin / mingw di gawk 3.0.x erano buggy, si prega di aggiornare a 3.1.x prima di tentare di utilizzare qualsiasi porta gawk.
  • libreria zlib (per mod_deflate)

    Zlib deve essere installato in una sottodirectory srclib denominata zlib. Questo deve essere costruito sul posto. Zlib può essere ottenuto da http://www.zlib.net/ — il mod_deflate è confermato per funzionare correttamente con la versione 1.2.3.

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

  • Librerie OpenSSL (per mod_ssl e ab.exe con supporto ssl)

    La libreria OpenSSL è un software crittografico. Il paese in cui risiedi attualmente potrebbe avere restrizioni sull’importazione, il possesso, l’uso e/o la riesportazione in un altro paese del software di crittografia. PRIMA di utilizzare qualsiasi software di crittografia, si prega di verificare le leggi, i regolamenti e le politiche del proprio paese riguardanti l’importazione, il possesso o l’uso e la riesportazione del software di crittografia, per verificare se ciò è consentito. Vedere http://www.wassenaar.org/ per ulteriori informazioni.

    La configurazione e la creazione di OpenSSL richiede l’installazione di perl.

    OpenSSL deve essere installato in una sottodirectory srclib denominata openssl, ottenuta da http://www.openssl.org/source/, per compilare mod_ssl o il progetto abs.exe, che è ab.c con supporto SSL abilitato. Per preparare OpenSSL da collegare ad Apache mod_ssl o abs.exe, e disabilitare le funzionalità gravate da brevetti in OpenSSL, è possibile utilizzare i seguenti comandi di compilazione:

    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

    Non è consigliabile utilizzare zlib-dynamic, in quanto trasferisce il costo di sgonfiare i flussi SSL alla prima richiesta che deve caricare la dll zlib. Nota la patch suggerita consente al flag-L di funzionare con le build di Windows, corregge il nome di zdll.lib e assicura .i file pdb vengono generati per la risoluzione dei problemi. Se l’assemblatore non è installato, dovresti aggiungere no-asm sopra e usare ms\do_ms.bat invece di ms\do_masm.bat script.
  • Librerie di database (per mod_dbd e mod_authn_dbm)

    La libreria apr-util espone le funzionalità client dbm (keyed database) e dbd (query oriented database) al server httpd e ai relativi moduli, come l’autenticazione e l’autorizzazione. I provider sdbm dbm e odbc dbd sono compilati incondizionatamente.

    Il supporto dbd include il pacchetto Oracle instantclient, MySQL, PostgreSQL e sqlite. Per costruire questi tutti, per esempio, impostare la LIB per includere la libreria percorso, include per INCLUDERE le intestazioni percorso, e il PERCORSO per includere la dll bin percorso di tutte e quattro le SDK, e impostare il DBD_LIST variabile di ambiente per informare la build che il driver client Sdk sono installati correttamente, ad es.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    allo stesso modo, il dbm supporto può essere esteso con DBM_LIST per costruire un Berkeley DB (db) e/o gdbm fornitore, allo stesso modo la configurazione LIB, INCLUDERE e in strada, in primo luogo per garantire la libreria client libs e le intestazioni sono disponibili.

    set DBM_LIST=db gdbm

    A seconda della scelta delle distribuzioni di database, potrebbe essere necessario modificare il nome di destinazione del collegamento effettivo (ad esempio gdbm.lib contro libgdb.lib) che sono elencati nel corrispondente .dsp/.file mak all’interno delle directory srclib \ apr-util \ dbd or …\ dbm.

    Vedere il README-win32.file txt per ulteriori suggerimenti su come ottenere i vari SDK del driver di database.

Costruire da sorgenti Unix

La politica del progetto Apache HTTP Server è di rilasciare solo sorgenti Unix. I pacchetti sorgente di Windows resi disponibili per il download sono stati forniti da volontari e potrebbero non essere disponibili per ogni versione. È ancora possibile costruire il server su Windows dal tarball sorgente Unix con pochi passaggi aggiuntivi.

  1. Scaricare e decomprimere il tarball sorgente Unix per l’ultima versione.
  2. Scaricare e decomprimere il tarball sorgente Unix per l’ultima versione di APR, AR-Util e APR-Iconv, inserire questi sorgenti nelle directory httpd-2.x. x \ srclib \ apr, httpd-2.x. x \ srclib \ apr-util e httpd-2.x.x \ srclib \ apr-iconv
  3. Aprire un prompt dei comandi e CD su httpd-2.x. x folder
  4. Esegui l’utilità di conversione delle terminazioni di linea al prompt;

perl srclib\apr\build\lineends.pl

Ora è possibile creare il server con l’ambiente di sviluppo di Visual Studio utilizzando l’IDE. Le build da riga di comando del server non sono possibili da fonti Unix a meno che non si esporti .file mak come spiegato di seguito.

Build da riga di comando

Makefile.win è il makefile Apache di livello superiore. Per compilare Apache su Windows, è sufficiente utilizzare uno dei seguenti comandi per creare il sapore release o debug :

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

Entrambi i comandi compileranno Apache. Quest’ultimo disabiliterà l’ottimizzazione dei file risultanti, rendendo più facile il singolo passaggio del codice per trovare bug e rintracciare i problemi.

Puoi aggiungere le tue scelte di provider dbd e dbm apr-util con le variabili aggiuntive di make (environment) DBD_LIST e DBM_LIST, vedi i commenti sulle librerie di database, sopra. Rivedere i commenti iniziali in Makefile.vinci per le opzioni aggiuntive che possono essere fornite quando si invoca la build.

Developer Studio Workspace IDE Build

Apache può anche essere compilato utilizzando l’ambiente di sviluppo Visual Studio di VC++. Per semplificare questo processo, viene fornita un’area di lavoro di Visual Studio, Apache.dsw. Questa area di lavoro espone l’intero elenco di progetti funzionanti .dsp necessari per la versione completa di Apache binary. Include le dipendenze tra i progetti per assicurare che siano costruiti nell’ordine appropriato.

Aprire l’area di lavoro Apache.dsw e selezionareInstallBin (Release o Debug crea, come desiderato) come Progetto attivo. InstallBin fa sì che tutto il progetto correlato venga creato e quindi invoca Makefile.win per spostare gli eseguibili e le dll compilati. È possibile personalizzare la scelta INSTDIR=modificando le Impostazioni di InstallBin, la scheda Generale, la voce della riga di comando Build. INSTDIR il valore predefinito è /Apache2. Se si desidera solo una compilazione di test (senza installazione), è possibile creare il progetto BuildBin.

I file di progetto .dsp sono distribuiti nel formato Visual Studio 6.0 (98). Visual C++ 5.0 (97) li riconoscerà. Gli utenti di Visual Studio 2002 (. NET) e versioni successive devono convertire Apache.dsw più i file .dsp in file Apache.sln più .msproj. Assicurati di riconvertire nuovamente il file .msproj se il file di origine .dsp cambia! Questo è davvero banale, basta aprire Apache.dsw nell’IDE VC++ 7.0 ancora una volta e riconvertire.

C’è un difetto nel .conversione vcproj di .file dsp. devenv.exe analizzerà in modo errato il flag / D per i flag RC contenenti /D’defines quotati a lungo che contengono spazi. Comando:

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

convertirà i flag / D per i flag RC per utilizzare una sintassi alternativa e analizzabile; sfortunatamente questa sintassi non è supportata da Visual Studio 97 o esportata .file mak. Questi flag /D sono usati per passare la lunga descrizione del mod_apachemodule.so file al condiviso .rc resource version-identifier build.

Costruire con OpenSSL 1.1.0 e versioni successive A causa della differenza nella struttura di compilazione di OpenSSL a partire dalla versione 1.1.0 sarà necessario convertire i file dsp interessati con cvtdsp.pl da APRILE 1.6 o superiore. Comando:

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

Gli utenti di Visual Studio 2002 (. NET) e versioni successive dovrebbero anche utilizzare il menu Build, la finestra di dialogo Configuration Manager per deselezionare entrambi i componenti Debug e Release Solution modules abs, mod_deflate e mod_ssl, nonché ogni componente che inizia con apr_db*. Questi moduli vengono creati invocando nmake, o l’IDE direttamente con la destinazione BinBuild, che costruisce quei moduli condizionatamente se esistono le directory srclib openssl e/o zlib e in base all’impostazione delle variabili di ambiente DBD_LIST e DBM_LIST.

Esportazione della riga di comando .i file mak

Esportati .mak rappresentano un problema maggiore, ma sono necessari per gli utenti di Visual C++ 5.0 per creare mod_ssl, abs (ab con supporto SSL) e/o mod_deflate. Il .i file mak supportano anche una gamma più ampia di distribuzioni di catene di strumenti C++, come Visual Studio Express.

È necessario innanzitutto creare tutti i progetti per creare tutti i target generati automaticamente dinamici, in modo che le dipendenze possano essere analizzate correttamente. Costruisci l’intero progetto dall’interno di Visual Studio 6.0 (98) IDE, utilizzando la destinazione BuildAll, quindi utilizzare il menu progetto Esporta per tutti i makefile (controllando “con dipendenze”.) Eseguire il seguente comando per correggere i percorsi assoluti in percorsi relativi in modo che costruiscano ovunque:

perl srclib\apr\build\fixwin32mak.pl

È necessario digitare questo comando dalla directory di livello superiore dell’albero dei sorgenti httpd. Ogni file di progetto .mak e .dep all’interno della directory corrente e al di sotto verrà corretto e i timestamp modificati per riflettere il .dsp.

Rivedere sempre i file generati .mak e .dep per Platform SDK o altri percorsi di file locali specifici della macchina. La directory DevStudio\Common\MSDev98\bin\ (VC6) contiene un file sysincl.dat, che elenca tutte le eccezioni. Aggiornare questo file (inclusi i percorsi forward e backslashed, ad esempio sys/time.h e sys\time.h) per ignorare tali dipendenze più recenti. Includendo i percorsi di installazione locale in un file .mak distribuito, la build fallirà completamente.

Se si contribuisce indietro una patch che rivede i file di progetto, dobbiamo impegnare i file di progetto in formato Visual Studio 6.0. Le modifiche dovrebbero essere semplici, con flag di compilazione e collegamento minimi che possono essere riconosciuti da tutti gli ambienti di Visual Studio.

Installazione

Una volta compilato Apache, deve essere installato nella directory principale del server. Il valore predefinito è la directory \Apache2, della stessa unità.

Per costruire e installare tutti i file nella cartella desiderata dir automaticamente, utilizzare uno dei seguenti comandi nmake :

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

L’argomento dir a INSTDIR fornisce la directory di installazione; può essere omesso se Apache deve essere installato in \Apache22 (dell’unità corrente).

Avviso sulla creazione di Apache dall’albero di sviluppo

Nota solo i file .dsp vengono mantenuti tra le build release. I file .mak NON vengono rigenerati, a causa dell’enorme spreco di tempo del recensore. Pertanto, non è possibile fare affidamento sui comandi NMAKE sopra per creare file di progetto .dsp revisionati a meno che non si esportino tutti i file .mak dal progetto. Ciò non è necessario se si crea dall’ambiente Microsoft Developer Studio.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.