compilarea Apache pentru Microsoft Windows

construirea httpd cu fișierele de proiect Visual Studio incluse

cerințe

compilarea Apache necesită instalarea corectă a următorului mediu:

  • spațiu pe disc

    asigurați-vă că aveți cel puțin 200 MB de spațiu liber pe disc disponibil. După instalare Apache necesită aproximativ 80 MB de spațiu pe disc, plus spațiu pentru fișierele jurnal și cache, care pot crește rapid. Cerințele reale de spațiu pe disc vor varia considerabil în funcție de configurația aleasă și de orice module sau biblioteci terțe, mai ales atunci când este construit și OpenSSL. Deoarece multe fișiere sunt text și foarte ușor comprimate, compresia sistemului de fișiere NTFS reduce aceste cerințe la jumătate.

  • patch-uri adecvate

    binarul httpd este construit cu ajutorul mai multor patch-uri către pachete terțe, care asigură că codul lansat este construibil și debuggable. Aceste patch-uri sunt disponibile și distribuite de la http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ și se recomandă să fie aplicate pentru a obține rezultate identice ca binare distribuite „oficiale” ASF.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) sau o versiune ulterioară.

    Apache poate fi construit folosind instrumentele liniei de comandă sau din cadrul bancului de lucru Visual Studio IDE. Construirea liniei de comandă necesită mediul pentru a reflecta PATH, INCLUDE, LIB și alte variabile care pot fi configurate cu scriptul vcvars32.bat.

    este posibil să doriți pachetul de procesoare Visual Studio pentru versiunea mai veche a Visual Studio sau o versiune completă (nu expresă) a edițiilor Visual Studio mai noi, pentru ml.exe assembler. Acest lucru vă va permite să construiți OpenSSL, dacă doriți, utilizând implementarea mai eficientă a codului de asamblare.
    numai lanțul de instrumente Microsoft compiler este acceptat în mod activ de contribuitorii activi httpd. Deși proiectul acceptă în mod regulat patch-uri pentru a se asigura că MinGW și alte construcții alternative funcționează și le îmbunătățesc, acestea nu sunt întreținute în mod activ și sunt adesea rupte în cursul dezvoltării normale.
  • actualizat Microsoft Windows Platform SDK, februarie 2003 sau mai târziu.

    un SDK de Platformă Windows adecvat este inclus în mod implicit în versiunile complete (nu express/lite) ale Visual C++ 7.1 (Visual Studio 2002) și ulterioare, acești utilizatori pot ignora acești pași, cu excepția cazului în care aleg în mod explicit o versiune mai nouă sau diferită a SDK-ului platformei.

    pentru a utiliza Visual C++ 6.0 sau 7.0 (Studio 2000.net), mediul SDK al platformei trebuie pregătit folosind scriptul setenv.bat (instalat de SDK-ul platformei) înainte de a începe construirea liniei de comandă sau lansarea mediului GUI msdev/devenv. Instalarea SDK-ului platformei pentru versiunile Visual Studio Express (2003 și versiuni ulterioare) ar trebui să ajusteze corespunzător mediul implicit.

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

  • Perl și awk

    câțiva pași recomandați aici necesită un interpretor perl în timpul procesului de pregătire a construcției, dar altfel nu este necesar.

    pentru a instala Apache în sistemul de construire, mai multe fișiere sunt modificate folosind utilitarul awk.exe. awk a fost ales, deoarece este o descărcare foarte mică (în comparație cu Perl sau WSH/VB) și îndeplinește sarcina de a modifica fișierele de configurare la instalare. Site-ul lui Brian Kernighan http://www.cs.princeton.edu/~bwk/btl.mirror/ are un binar nativ Win32 compilat, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe pe care trebuie să îl salvați cu numele awk.exe (mai degrabă decât awk95.exe).

    dacă awk.exe nu este găsit, Makefile.țintă de instalare win nu va efectua substituții în Instalat .fișiere conf. Trebuie să modificați manual instalat .conf fișiere pentru a permite serverului să pornească. Căutați și înlocuiți toate etichetele ” @ token@”, după caz.
    Visual Studio IDE va găsi doarawk.exe din calea sau calea executabilă specificată în opțiunea de meniu Instrumente- > Opțiuni- > (proiecte- >) directoare. Asigurați-vă awk.exe este în calea sistemului.
    de asemenea, rețineți că, dacă utilizați instrumente Cygwin (http://www.cygwin.com/) utilitarul awk este numit gawk.exe și că fișierul awk.exe este într-adevăr o legătură simbolică la fișierul gawk.exe. Shell-ul de comandă Windows nu recunoaște legăturile simbolice și, din cauza acestei clădiri, InstallBin va eșua. O soluție este să ștergeți awk.exe din instalarea cygwin și să copiați gawk.exeîn awk.exe. De asemenea, rețineți porturile Cygwin / mingw ale gawk 3.0.X au fost buggy, vă rugăm să faceți upgrade la 3.1.x înainte de a încerca să utilizați orice port gawk.
  • biblioteca zlib (pentru mod_deflate)

    Zlib trebuie instalat într-un subdirector srclib numit zlib. Acest lucru trebuie să fie construit în loc. Zlib poate fi obținut de la http://www.zlib.net/ — mod_deflate este confirmat că funcționează corect cu versiunea 1.2.3.

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

  • biblioteci OpenSSL (pentru mod_ssl și ab.exe cu suport ssl)

    biblioteca OpenSSL este software criptografic. Țara în care locuiți în prezent poate avea restricții privind importul, deținerea, utilizarea și/sau reexportul în altă țară a software-ului de criptare. Înainte de a utiliza orice software de criptare, vă rugăm să verificați legile, reglementările și politicile țării dvs. privind importul, deținerea sau utilizarea și reexportul software-ului de criptare, pentru a vedea dacă acest lucru este permis. Consultați http://www.wassenaar.org/ pentru mai multe informații.

    configurarea și construirea OpenSSL necesită instalarea perl.

    OpenSSL trebuie instalat într-un subdirector srclib numit openssl, obținut din http://www.openssl.org/source/, pentru a compila mod_ssl sau proiectul abs.exe, care este ab.c cu suport SSL activat. Pentru a pregăti OpenSSL să fie legat de Apache mod_ssl sau abs.EXE și dezactivați caracteristicile grevate de brevete în OpenSSL, puteți utiliza următoarele comenzi de compilare:

    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

    nu este recomandabil să utilizați zlib-dynamic, deoarece transferă costul dezumflării fluxurilor SSL la prima solicitare care trebuie să încarce dll-ul zlib. Notă patch-ul sugerat permite-l pavilion pentru a lucra cu Windows construiește, corectează numele de zdll.lib și asigură .fișierele pdb sunt generate pentru depanare. Dacă asamblorul nu este instalat, ar adăuga no-asm de mai sus și de a folosi ms\do_ms.bat în loc de ms\do_masm.script bat.
  • biblioteci de baze de date (pentru mod_dbd și mod_authn_dbm)

    biblioteca apr-util expune funcționalitatea clientului dBm (baza de date cu cheie) și DBD (baza de date orientată spre interogare) serverului httpd și modulelor sale, cum ar fi autentificarea și autorizarea. Furnizorii sdbm dBm și odbc DBD sunt compilate necondiționat.

    suportul dbd include pachetul Oracle instantclient, MySQL, PostgreSQL și SQLite. Pentru a construi toate acestea, de exemplu, configurați LIB pentru a include calea bibliotecii, includeți pentru a include calea anteturilor și calea pentru a include calea bin dll a tuturor celor patru SDK-uri și setați variabila de mediu DBD_LIST pentru a informa construirea care SDK-uri de driver client sunt instalate corect, de ex.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    în mod similar, suportul dbm poate fi extins cu DBM_LIST pentru a construi un Berkeley DB provider (db) și/sau gdbm provider, prin configurarea similară LIB, INCLUDE și PATH first pentru a vă asigura că biblioteca client libs și anteturile sunt disponibile.

    set DBM_LIST=db gdbm

    în funcție de alegerea distribuțiilor bazei de date, poate fi necesar să schimbați numele țintă real al legăturii (de exemplu, gdbm.lib vs. libgdb.lib), care sunt enumerate în corespunzătoare .dsp/.mak fișiere în directoarele srclib \ apr-util \ DBD sau …\dbm.

    a se vedea README-win32.fișier txt pentru mai multe indicii cu privire la obținerea diferitelor SDK-uri driver de baze de date.

construirea din surse Unix

Politica proiectului Apache HTTP Server este de a elibera numai surse Unix. Pachetele sursă Windows puse la dispoziție pentru descărcare au fost furnizate de voluntari și este posibil să nu fie disponibile pentru fiecare versiune. Puteți construi în continuare serverul pe Windows din sursa Unix tarball cu doar câțiva pași suplimentari.

  1. descărcați și despachetați sursa Unix tarball pentru cea mai recentă versiune.
  2. descărcați și despachetați sursa Unix tarball pentru cea mai recentă versiune de APR, ar-Util și Apr-Iconv, plasați aceste surse în directoarele httpd-2.x. x\srclib \ apr, httpd-2.x.x \ srclib \ apr-util și httpd-2.x.x \ srclib \ apr-iconv
  3. deschideți un Prompt de comandă și CD la httpd-2.x. x folder
  4. rulați utilitarul de conversie a terminațiilor de linie la prompt;

perl srclib\apr\build\lineends.pl

acum Puteți construi serverul cu mediul de dezvoltare Visual Studio folosind IDE. Compilările de linie de comandă ale serverului nu sunt posibile din surse Unix decât dacă exportați .fișiere mak după cum se explică mai jos.

construirea liniei de comandă

Makefile.win este cel mai înalt nivel Apache makefile. Pentru a compila Apache pe Windows, pur și simplu utilizați una dintre următoarele comenzi pentru a construi release sau debug aroma:

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

oricare comandă va compila Apache. Acesta din urmă va dezactiva optimizarea fișierelor rezultate, facilitând un singur pas al codului pentru a găsi erori și a urmări problemele.

puteți adăuga opțiunile apr-util DBD și dBm provider cu variabilele adiționale make (environment) dbd_list și DBM_LIST, consultați comentariile despre bibliotecile de baze de date de mai sus. Examinați comentariile inițiale în Makefile.câștigă pentru opțiuni suplimentare care pot fi furnizate la invocarea construirii.

Developer Studio Workspace IDE Build

Apache poate fi, de asemenea, compilat folosind mediul de dezvoltare Visual Studio al VC++. Pentru a simplifica acest proces, este furnizat un spațiu de lucru Visual Studio, Apache.dsw. Acest spațiu de lucru expune întreaga listă de lucru .dsp proiecte care sunt necesare pentru eliberarea completă binar Apache. Acesta include dependențe între proiecte pentru a se asigura că acestea sunt construite în ordinea corespunzătoare.

deschideți spațiul de lucru Apache.dsw și selectațiInstallBin (Release sau Debug build, după cum doriți) ca proiect activ. InstallBin cauze toate legate de proiect pentru a fi construit, și apoi invocă Makefile.win pentru a muta executabile compilate și DLL-uri. Puteți personaliza opțiunea INSTDIR=modificând setările InstallBin, fila General, construiți intrarea în linia de comandă. INSTDIR implicit la directorul /Apache2. Dacă doriți doar un test compila (fără a instala) s-ar putea construi BuildBin proiect în schimb.

fișierele de proiect .dsp sunt distribuite în format Visual Studio 6.0 (98). Visual C++ 5.0 (97) le va recunoaște. Visual Studio 2002 (. NET) și utilizatorii mai târziu trebuie să converti Apache.dsw plus .dsp fișiere într-un Apache.sln plus .msproj fișiere. Asigurați-vă că reconvertiți fișierul .msproj din nou dacă fișierul sursă .dsp se schimbă! Acest lucru este cu adevărat banal, Doar deschideți Apache.dsw în VC++ 7.0 IDE încă o dată și reconvertiți.

există un defect în .conversia vcproj de .fișiere dsp. devenv.exe va analiza greșit steagul / D pentru steagurile RC care conțin citate lungi / d ‘ define care conțin spații. Comanda:

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

va converti steagurile / D pentru steagurile RC Pentru a utiliza o sintaxă alternativă, analizabilă; din păcate, această sintaxă nu este acceptată de Visual Studio 97 sau exportată .fișiere mak. Aceste steaguri / D sunt folosite pentru a trece descrierea lungă a mod_apachemodule.so fișierele partajate .RC resource version-identificator build.

clădire cu OpenSSL 1.1.0 și până din cauza diferenței în structura construi OpenSSL începând cu versiunea 1.1.0 va trebui să converti fișierele DSP afectate cu cvtdsp.pl din aprilie 1.6 sau mai mare. Comanda:

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

Visual Studio 2002 (. NET) și utilizatorii ulteriori ar trebui să utilizeze, de asemenea, meniul Build, dialogul Configuration Manager pentru a debifa atât modulele de soluție Debug și Release abs, mod_deflate și mod_ssl, cât și fiecare componentă începând cu apr_db*. Aceste module sunt construite prin invocarea nmake, sau IDE direct cu BinBuild țintă, care construiește aceste module condiționat dacă srclib directoare openssl și/sau zlib există, și se bazează pe setarea DBD_LIST și DBM_LIST variabile de mediu.

exportarea liniei de comandă .fișierele mak

exportate .mak fișierele prezintă o problemă mai mare, dar sunt necesare pentru utilizatorii Visual C++ 5.0 pentru a construimod_ssl, abs (abcu suport SSL) și/sau mod_deflate. La .fișierele mak acceptă, de asemenea, o gamă mai largă de distribuții ale lanțului de instrumente C++, cum ar fi Visual Studio Express.

trebuie mai întâi să construiți toate proiectele pentru a crea toate țintele dinamice generate automat, astfel încât dependențele să poată fi analizate corect. Construiți întregul proiect din cadrul Visual Studio 6.0 (98) IDE, folosind BuildAll țintă, apoi utilizați meniul de proiect Export pentru toate makefiles (verificarea pe „cu dependențe”.) Rulați următoarea comandă pentru a corecta căile absolute în căi relative, astfel încât acestea vor construi oriunde:

perl srclib\apr\build\fixwin32mak.pl

trebuie să tastați această comandă din Directorul de nivel superior al arborelui sursă httpd. Fiecare fișier de proiect .mak și .depdin directorul curent și de mai jos va fi corectat, iar marcajele de timp ajustate pentru a reflecta .dsp.

examinați întotdeauna fișierele generate .mak și .dep pentru SDK-ul platformei sau alte căi de fișiere locale, specifice mașinii. Directorul DevStudio\Common\MSDev98\bin\ (VC6) conține un fișier sysincl.dat, care listează toate excepțiile. Actualizați acest fișier (inclusiv căile înainte și înapoi, cum ar fi sys/time.h și sys\time.h) pentru a ignora astfel de dependențe mai noi. Inclusiv căile de instalare locală într-un fișier distribuit .mak va determina construirea să eșueze complet.

dacă contribuiți înapoi la un patch care revizuiește fișierele de proiect, trebuie să comitem fișiere de proiect în format Visual Studio 6.0. Modificările ar trebui să fie simple, cu steaguri minime de compilare și legătură care pot fi recunoscute de toate mediile Visual Studio.

instalare

odată ce Apache a fost compilat, acesta trebuie să fie instalat în directorul rădăcină server. Implicit este directorul \Apache2 , al aceleiași unități.

pentru a construi și instala automat toate fișierele în folderul dorit dir, utilizați una dintre următoarele comenzi nmake :

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

argumentul dir la INSTDIR furnizează directorul de instalare; poate fi omis dacă Apache urmează să fie instalat în \Apache22 (a unității curente).

avertisment despre construirea Apache din arborele de dezvoltare

Notă numai .dsp fișierele sunt menținute între release construiește. Fișierele .mak nu sunt regenerate, din cauza pierderii enorme a timpului recenzorului. Prin urmare, nu vă puteți baza pe comenzile NMAKE de mai sus pentru a construi fișiere de proiect revizuite .dsp decât dacă exportați singur toate fișierele .mak din proiect. Acest lucru nu este necesar dacă construiți din mediul Microsoft Developer Studio.

Lasă un răspuns

Adresa ta de email nu va fi publicată.