Acest document evidențiază problemele legate de compilarea și instalarea serverului Apache numai în sistemele UNIX și UNIX. Dacă doriți să instalați serverul în Windows, trebuie să citiți documentul "Utilizarea Apache sub Microsoft Windows". Informațiile privind platformele rămase sunt conținute în documentul platformei.
Configurația serverului și mediul de instalare sunt complet diferite de cele din Apache 1.3. Apache 1.3 a folosit un set comun de scripturi pentru a simplifica procesul de instalare. Apache 2.0 utilizează acum sistemele libtool și autoconf. ceea ce face ca serverul să fie similar cu alte produse software open source (proiecte Open Source).
$ PREFIX / bin / apachectl începe
NN trebuie să fie înlocuit cu numărul curent minor versiune, și în loc de PREFIX necesitatea de a specifica calea pe care trebuie să fie instalat pe server. Dacă nu este specificat PREFIX, instalarea implicită este în directorul / usr / local / apache2.
În detaliu, toate etapele de compilare și instalare a serverului sunt discutate mai jos, iar următoarea secțiune începe cu o descriere a cerințelor de sistem necesare pentru ca instalarea să reușească.
Cerințele necesare pentru crearea cu succes a serverului:
Spațiu pe disc Asigurați-vă că discul are cel puțin 50 MB de spațiu liber pentru fișierele temporare. După instalare, Apache durează aproximativ 10 MB. Dimensiunea exactă a spațiului ocupat va depinde în principal de configurația selectată și modulele opționale care nu sunt incluse în distribuția Apache. Compilatorul ANSI-C și mediul necesar de construire Asigurați-vă că aveți un compilator ANSI-C instalat pe sistemul dvs. Se recomandă să utilizați compilatorul GNU C (CCG), de la Free Software Foundation (FSF) (versiunea 2.7.2 este destul de mult). Dacă aveți un alt compilator, aflați dacă acesta acceptă standardul ANSI. De asemenea, verificați dacă variabila de mediu PATH conține directorul care conține principalele utilități necesare pentru construire (make și altele). Sincronizarea timpului Unele antete de protocol HTTP specifică timpul. Prin urmare, trebuie să aflați cum puteți seta instrumentul de sincronizare de timp în sistemul dvs. De obicei, programele ntpdate sau xntpd sunt utilizate în acest scop. bazat pe Protocolul de rețea în rețea (NTP). Pentru mai multe informații despre serverele și timpul de sincronizare NTP, se referă la un grup de știri Usenet comp.protocols.time.ntp. precum și vizita NTP pagina de pornire Perl 5 [opțional] Pentru unele script-uri de sprijin, cum ar fi apxs sau dbmmanage (care sunt scrise în Perl), necesită interpret la Perl (versiunea 5.003 sau mai mare este suficient). În cazul în care script-ul de configurare `configure„nu-l va găsi pe sistemul dumneavoastră, veți avea în continuare posibilitatea de a construi și a instala Apache 2.0 - în acest caz, va rula nu numai script-uri helper enumerate mai sus. În cazul în care sistemul are mai mult de un interpret cu limbajul Perl (de exemplu, Perl 4 și Perl 5), pentru a alege scriptul ./configure corespunzător, rulați-l cu opțiunea---with perl (a se vedea mai jos pentru descriere).
Apache poate fi descărcat de pe pagina de descărcare a Software Foundation HTTP Apache. care include, de asemenea, unele servere de mirror. Aici veți găsi cea mai recentă versiune stabilă a serverului.
După încărcare, mai ales în cazul în care a avut loc la serverul oglindă, trebuie să vă asigurați că mâinile complet, versiunea nemodificată a serverului HTTP Apache. Aceasta se face prin testarea tarball-ului pentru conformarea cu semnătura PGP, care la rândul său este o procedură în două etape. Mai întâi, trebuie să descărcați fișierul KEYS din pagina de descărcare a Software Foundation Foundation. (Pentru a fi siguri că cheile în sine fișierul nu a fost modificat, este mai bine să ia din distribuția anterioară Apache sau de a lua un server de chei publice.) Apoi, cheile pot fi importate în baza de date personale cheie, folosind următoarele comenzi (în funcție de versiune PGP):
$ gpg --import KEYS
Următorul pas este verificarea directă a tarball-ului folosind semnătura PGP, pe care întotdeauna trebuie să o luați pe serverul web principal Apache. Un fișier cu semnătura PGP are același nume ca și arhiva de distribuție plus terminarea .asc. Puteți verifica distribuția introducând următoarele comenzi (din nou, aceasta depinde de versiunea pgp instalată pe sistemul dvs.):
$ pgp httpd-2_0_NN .tar.gz.asc
$ gpg - verificați httpd-2_0_NN .tar.gz.asc
Ar trebui să vedeți ceva de genul:
Semnătura bună de la utilizatori "Martin Kraemer
În funcție de relațiile de încredere conținute în baza de date cheie, puteți primi și un mesaj care să ateste că relația dintre cheia și persoana care a subscris la ea nu poate fi stabilită. Acest lucru nu ar trebui să vă deranjeze dacă sunteți sigur de autenticitatea fișierului KEYS.
Despachetarea arhivei codului sursă pentru serverul HTTP Apache constă în despachetarea și dezarhivarea acestuia:
$ gzip -d httpd-2_0_NN .tar.gz
$ tar xvf httpd-2_0_NN .tar
După executarea acestor comenzi, va fi creat un nou director cu codul sursă al distribuției. Trebuie să mergeți la acest director înainte de a începe să compilați serverul.
Următorul pas este să configurați arborele sursă în funcție de sistemul pe care instalați serverul și de propriile dvs. nevoi. Acest lucru se face folosind scriptul de configurare. localizat în directorul rădăcină al distribuției. Dezvoltatorii care descarcă arborele sursă prin CVS ar trebui să instaleze utilitarele autoconf și libtool în sistemul lor și să execute programul buildconf. Înainte de a putea continua instalarea. În versiunile oficiale ale serverului, acest lucru nu este necesar.
Pentru a configura arborele sursă, utilizând valorile tuturor opțiunilor implicite, pur și simplu executați scriptul ./configure fără parametri. Pentru a modifica valoarea opțiunilor, scriptul configure oferă o gamă largă de variabile și opțiuni de linie de comandă. În acest caz, variabilele de mediu sunt plasate înaintea comenzii ./configure. în timp ce opțiunile rămase sunt după. Cea mai importantă opțiune aici este prefixul directorului de instalare, adică calea prin care Apache va fi instalat ulterior. În afară de aceasta, există încă o mare selecție de opțiuni necesare pentru reglarea fină a serverului.
Pentru a obține o idee despre flexibilitatea procesului de configurare Apache, luați în considerare următorul exemplu tipic de rulare a scriptului ./configure. Această configurație vă permite să compilați serverul în directorul / sw / pkg / apache. utilizând compilatorul specificat cu mai multe opțiuni de linie de comandă pentru acesta și instalați două module suplimentare mod_rewrite și mod_speling. care pot fi apoi utilizate prin mecanismul DSO.
$ CC = "pgcc" CFLAGS = "- O2" \
./ configure --prefix = / sw / pkg / apache \
--enable-rewrite = partajat \
--enable-speling = partajat
Când se execută, scriptul de configurare verifică dacă totul este instalat în sistem și apoi creează Makefiles, care apoi va fi folosit pentru a compila serverul.
Cea mai ușoară modalitate de a afla despre toate opțiunile de configurare disponibile este rularea comenzii ./configure --help. Ecranul va afișa o scurtă descriere a aproape tuturor opțiunilor disponibile și a variabilelor de mediu.
Programul autoconf utilizează o serie de variabile de mediu pentru a configura mediul de construcție. În general, prin aceste variabile, puteți modifica numai metoda de construire a unui server - este imposibil să controlați includerea și dezactivarea opțiunilor de server suplimentare. Aceste variabile pot fi incluse în mediul înconjurător înainte ca scriptul de configurare să fie apelat. dar cel mai simplu mod de a face acest lucru este așa cum se arată în exemplul de mai sus.
CC =. Comanda pentru a apela compilatorul din limba C CPPFLAGS =. Opțiuni suplimentare pentru preprocesor și compilatorul C. CFLAGS =. Opțiuni pentru depanarea și optimizarea compilatorului din C. LDFLAGS =. Opțiuni suplimentare pentru linker. LIBS =. Informații despre locația bibliotecii (opțiunea „-L“ și „-l“), transmis la linkerul. INCLUDE =. Modurile în care sunt căutate anteturile. ( "-Idir"). TARGET =. [Implicit: apache] Numele fișierului executabil după asamblarea serverului NOTEST_CPPFLAGS =. NOTEST_CFLAGS =. NOTEST_LDFLAGS =. NOTEST_LIBS =. Aceste variabile de mediu îndeplinesc același rol ca aceleași variabile, dar fără prefixul NOTEST. Diferența este că ele sunt adăugate în mediu după ce autoconf a testat capabilitățile mediului de operare. Acest lucru vă permite să utilizați aceste opțiuni, ceea ce ar cauza o eroare atunci când o astfel de testare, dar includerea care este obligatorie pentru asamblarea finală a serverului. SHLIB_PATH =. Opțiunile de compilator și linker care definesc calea către bibliotecile partajate.
--help Afișează instrucțiuni pentru utilizarea programului, inclusiv toate opțiunile posibile, apoi se închide imediat. -quiet Previne ieșirea mesajelor începând cu "checking." --verbose Oferă informații complete în timpul procesului de configurare, inclusiv numele fișierelor care urmează să fie scanate.
În prezent, există două moduri de a specifica căile prin care Apache va instala fișierele sale. Prima modalitate este să specificați în mod explicit directorul Apache pe care va fi instalat.
--prefix = PREFIX [Implicit: / usr / local / apache2] Specifică calea în care va fi instalat Apache.
În plus, este posibil să instalați fișiere dependente de arhitectură într-un alt director special specificat.
--exec-prefix = EPREFIX [Implicit: PREFIX] Specifică calea unde vor fi instalate fișierele dependente de arhitectură.
A doua metodă este mai flexibilă. Aceasta constă în utilizarea fișierelor config.layout. Utilizând această metodă, puteți specifica directorul de instalare pentru orice tip de fișier Apache. Fișierul config.layout conține mai multe exemple de configurare. Folosind aceste exemple, vă puteți crea propriile configurații de instalare. Planurile diferite ale plantelor sunt grupate în secțiuni separate
--enable-layout = LAYOUT Utilizează aspectul descris în fișierul config.layout. în care sunt prevăzute toate căile de instalare.
Apache este un server modular. Doar cele mai importante funcții sunt incluse în nucleul serverului. Funcții suplimentare sunt disponibile prin intermediul modulelor. În timpul procesului de configurare, trebuie să selectați modulele care vor fi compilate cu serverul. Puteți citi toate modulele disponibile în lista corespunzătoare a modulelor. Modulele a căror stare este marcată ca "Basic" sunt compilate cu serverul în mod implicit; dacă nu aveți nevoie de câteva module de bază, specificați-l în mod special când configurați (modulul de bază, de exemplu, este mod_userdir). Module cu un alt statut nu este compilat, împreună cu serverul implicit, și (dacă este cazul) trebuie să fie scrise separat în configurație (un exemplu al unei astfel de modul poate servi mod_expires).
Există două moduri de a le spune Apache să utilizeze un modul. Modulele pot fi compilate ca statice. în timp ce codul lor este inclus direct în codul executabil al serverului Apache. Sau, în cazul în care sistemul de operare suportă obiecte dinamice partajate (obiecte dinamice partajate) și autoconf și poate determina că acesta este cazul, atunci module pot fi compilate ca dinamică. Modulele DSO sunt stocate separat de serverul de bază, iar serverul poate fi utilizat, în funcție de runtime directive de configurare (care este responsabil pentru activitatea de server deja asamblate) furnizate de modulul mod_so. Modulul mod_so este inclus automat în nucleul serverului dacă cel puțin un modul este compilat ca fiind dinamic. Dacă nu compila orice module dinamice, dar doriți ca serverul a fost încă în măsură să lucreze cu modulele DSO, apoi specificați atunci când configurați următoarea opțiune: --enable-asa.
--enable-MODULE [= shared] Compilați și includeți modulul MODUL în nucleul serverului. MODUL este identificatorul modulului. care pot fi obținute prin aruncarea șirului "_string" în numele modulului specificat în documentație. Pentru a compila modulul ca DSO, adăugați opțiunea = shared. - MODULE disparabile Eliminați MODUL din lista de module compilate (dacă este în această listă). --enable-modules = MODULE-LIST Compilați și inserați în nucleul serverului module ale căror identificatori sunt listate în lista MODULE-LIST. Elementele listei sunt separate între ele prin spații. --enable-mods shared = MODULE-LIST Compilați modulele ale căror identificatori sunt listate în lista MODULE-LIST. ca dinamică.
De exemplu, pentru a include modulele mod_dav și mod_info în server. puteți utiliza oricare dintre ele
/ configure -enable-dav -enable-info
sau echivalentă cu comanda anterioară
/ configure --enable-modules = "informații despre dav"
În plus, există cuvinte cheie speciale toate sau cele mai multe. care poate fi folosit pentru a compila toate sau majoritatea modulelor simultan. Puteți exclude modulele nedorite din această listă utilizând opțiunile corespunzătoare - MODULE dezactivat. De exemplu, pentru a include toate modulele în server ca DSO, cu excepția mod_info. puteți scrie următoarele
/ configure --able-mods-shared = toate -disable-info
În plus față de setul standard de module, Apache 2.0 este compilat împreună cu unele module multi-proces (MPM). Un singur modul MP poate fi compilat cu serverul. Lista de module MP care sunt compilate în mod implicit pentru fiecare platformă poate fi găsită în secțiunea corespunzătoare a documentației; Modulul MP în mod implicit poate fi modificat de următoarea opțiune din configurarea liniei de comandă configure
--cu-mpm = NAME Compilarea cu serverul va fi un modul MP numit NAME.
Unele module Apache, cum ar fi mod_auth_dbm și mod_rewrite (directiva RewriteMap), folosesc bazele de date simple organizate de principiul cheie / valoare în activitatea lor, ceea ce mărește viteza de acces la informații. Sprijinul pentru bazele de date SDBM este inclus în nucleul serverului, astfel că utilizarea bazelor de date de acest tip este întotdeauna posibilă. Dacă aveți nevoie de baze de date de diferite tipuri, puteți utiliza următoarele opțiuni:
--cu-gdbm [= calea] --with-ndbm [= calea] --with-berkeley-db [= calea] Dacă calea nu este specificată. Apache va căuta fișiere de antet și biblioteci în directoare standard. O instrucțiune explicită pe cale determină Apache să caute fișierele corespunzătoare din directoarele path / lib și path / include. De asemenea, puteți specifica căi specifice pentru fișiere și biblioteci de antet, scriându-le printr-o virgulă punct și virgulă.
Cu Apache, puteți găsi programul auxiliar suexec. care vă permite să stabiliți un control mai strict asupra execuției programelor personalizate CGI. Cu toate acestea, dacă suexec este configurat incorect, pot exista găuri de securitate semnificative în server. Prin urmare, ar trebui să citiți cu atenție documentația suexec. dacă decideți să utilizați acest program.
Acum puteți compila și construi serverul Apache executând următoarea comandă:
Aveți răbdare - compilarea unui server cu o configurație de bază (configurația implicită) durează aproximativ trei minute pe un sistem precum Pentium III / Linux 2.2. Timpul actual de construcție va depinde de hardware-ul dvs. și de numărul de module pe care vă decideți să le compilați cu serverul.
Acum este timpul să instalați serverul în directorul PREFIX. care a fost specificată în timpul configurației Apache (vezi mai sus - opțiunea prefix), efectuând:
Dacă instalați Apache peste versiunea anterioară a serverului, vechile fișiere de configurare și documente rămân neschimbate.
Apoi, puteți configura serverul HTTP Apache editând fișierele de configurare din directorul PREFIX / conf /.
$ vi PREFIX /conf/httpd.conf
Acum puteți să porniți serverul HTTP Apache rulând următoarea comandă:
$ PREFIX / bin / apachectl începe
$ PREFIX / bin / apachectl stop