Apache Web Server
Apache web server je program kome je osnovni zadatak da pošalje web materijal korisniku kada se u njemu upiše adresa računara na koju se Apache odaziva. Usprkos nastojanjima velikih svetskih firmi, kao što su Microsoft ili Netscape, da mu preotmu primat na tržištu, Apache je još uvek dominantan. Istraživanja pokazuju da skoro 60% svih web servera na svetu koriste baš ovaj programski paket.
Instalacija Apache servera 1.3
Instalacija Apache web servera u Debian i Mandrake Linux distribucijama ista je kao i za sve ostale pakete koji u njima dolaze, tj. putem Dselect i Software Manager programskih paketa.
U ovim distribucijama Apache će se instalirati u direktorijum /etc/httpd umesto uobičajenog direktorijuma /usr/local/apache.
Kod operativnog sistema FreeBSD preporučuje se instalacija Apache servera iz tar.gz paketa koji se nalazi na CD-u zajedno sa besplatnim softverom. Posle otpakivanja Apache servera iz tar.gz arhive instalacija se pokreće pomoću skripte:
# ./install-bindist.sh
Skripta se nalazi u direktorijumu koji je nastao otpakivanjem tar.gz paketa. Po defaultu server se instalira u direktorijum /usr/local/apache. Ako želimo da paket instaliramo u neki drugi direktorijum potrebno je instalacionu skriptu inicirati na sledeći način:
# ./install-bindist.sh /ime_direktorijuma
Nakon instalacije paket je već podešen da se pokreće prilikom podizanja sistema.
Apache je moguće više puta instalirati na istom računaru. To se postiže tako što instalacionu skriptu iniciramo dva puta ali sa različitim direktorijumima u koje želimo da instaliramo server ili što skriptu pokrećemo opcijom -f pomoću koje možemo kreirati zasebne konfiguracione datoteke za svaki server. Ovakva instalacija je korisna ako želimo da imamo jedan server sa ograničenim pristupom koji će na ovaj način biti odvojen od glavnog servera.
Korišćenje drugog servera je korisno i ako želimo da testiramo noviju verziju Apachea pre nego što ga prebacimo da bude glavni server.
Konfiguracija
Postoji više načina kako konfigurisati Apache server. Najbolji je upisivanjem naredbi u datoteku httpd.conf, dok je nešto jednostavnije to uraditi pomoću programa Comanche. Apache se vrlo jednostavno može konfigurisati i programom linuxconf koji se, ako nemate instalirano grafičko okruženje, može pokrenuti i u tekstualnom môdu. Konfiguracija Apachea u linuxconfu nalazi se pod Networking -> Server Tasks -> Apache Web Server.
Konfiguracija upisivanjem naredbi u httpd.conf datoteku
Konfiguraciona datoteka za Apache server se zove httpd.conf i nalazi se u direktorijumu /etc/httpd/conf. Ona predstavlja ključni element kojim se definiše ponašanje instaliranog Apache web servera.
Zbog kompleksnosti, kao i vrlo širokog spektra mogućnosti koje ovaj server nudi, postoji i mnoštvo konfiguracionih parametara i opcija koji se mogu naći u datoteci httpd.conf. Ovde su iznete samo one najpotrebnije, koje je potrebno podesiti kako bi se omogućila osnovna funkcionalnost ovog servera.
Treba napomenuti da su te opcije već inicijalno postavljene u httpd.conf datoteci nakon uspešno obavljenog postupka instalacije, čime se znatno olakšava korišćenje programa i onoj grupi korisnika koji ne poznaju detalje konfiguracije servera.
Pre nego što se krene sa konfiguracijom potrebno je odrediti ime servera, u kom mrežnom okruženju će primati zahteve, gde će se nalaziti konfiguracione i log datoteke, kao i u kom direktorijumu će biti smešteni dokumenti web stranice. ServerName je ime na koje će server reagovati kada se u pretraživačkom programu upiše njegova URL adresa (www.ime_domena.yu). BindAddress je konfiguracioni parametar koji definiše IP adresu na kojoj server prima HTTP zahteve. Ovo zapravo i nije obavezan deo konfiguracije servera, nego mrežne konfiguracije računara na kojem se server nalazi. Ovim parametrom osiguravamo da klijent koji pristupa serveru preko imena ispravno poveže ime sa IP adresom. Inicijalna vrednost ovog parametra je BindAddress *
što znači da server sluša sva mrežna okruženja na računaru.
Ukoliko želimo da server sluša izričito određenu adresu moramo da napišemo, na primer:
BindAddress 192.168.1.1
Ako želimo da server sluša samo klijente sa sopstvenog računara, napisaćemo:
BindAddress 127.0.0.1
Problem ovog parametra je što specificira samo jednu IP adresu, jer se ne može zadavati više puta. Ako želimo da odaberemo više od jedne IP adrese koje će server da sluša, koristi se parametar Listen. Tako će npr. linije:
Listen 192.168.1.1:80
Listen 192.168.1.1:443
Listen 192.168.1.2:80
podesiti server tako da sluša portove 80 i 433 na adresi 192.168.1.1 i port 80 na adresi 192.168.1.2.
ServerType bira môd rada servera. Apache može raditi u dva môda:
- samostalno ServerType
- standalone ili unutar inetd deamona
ServerType inetd
U samostalnom môdu rada server sam upravlja svojim mrežnim konekcijama i sluša portove koji su mu definisani. Ovo je uobičajen način rada Apache servera i takav se i preporučuje. Ako server radi unutar inetd deamona, on zanemaruje konfiguracione parametre i čeka da ga inetd pozove. Budući da inetd za svaku vezu ponovo poziva Apache, ovaj način rada je vrlo neefikasan i retko se koristi, pa ga zato ovde nećemo bliže ni opisivati.
User i Group konfigurišu server da radi pod određenim korisnikom i grupom. Kada je Apache pokrenut pod rootom (npr. kod podizanja sistema) on pokreće više potprocesa (child processes) i ako su User i Group podešeni, potprocesi gube root status i poprimaju identitet koji smo mi podesili.
Obično se postavlja vrednost nobody za korisnika i nogroup za grupu. Na taj način je server znatno sigurniji i otporniji na napade, pa ako nameravamo da iniciramo Apache kao root trebalo bi podesiti ove parametre.
ServerAdmin definiše e-mail adresu administratora. Apache koristi ovu adresu da bi prijavio greške u radu. Adresa nije ograničena na domen u kojoj server radi, što znači da je moguće navesti bilo koju e-mail adresu.
ServerRoot definiše direktorijum u kom se nalaze sve važne datoteke potrebne za rad servera. Po defaultu, to je direktorijum /usr/local/apache, a kod Debian i Mandrake distribucija to je /etc/httpd direktorijum.
ErrorLog definiše ime datoteke u koju se smeštaju poruke o greškama u radu. Apache podržava više vrsta logova od kojih su uobičajeni access log, referer log i error log. Preporučuje se definisanje i korišćenje access log i error log parametara unutar Apache konfiguracione datoteke kako bi se na taj način omogućilo lakše otklanjanje grešaka u radu, kao i kontrolisanje pokušaja pristupa ovom serveru. Uobičajene vrednosti ovih parametara su:
ErrorLog /usr/local/apache/logs/error.log
CustomLog /usr/local/apache/logs/access.log
ili jednostavnije
ErrorLog /logs/error.log
CustomLog /logs/access.log
a kod Mandrake i Debian distribucija
/etc/httpd/logs/error.log
DocumentRoot pokazuje na direktorijum u kom se nalaze web stranice vašeg servera.
Uobičajeno server traži direktorijum /htdocs unutar direktorijuma definisanog u ServerRoot. Ako želimo promeniti ovu naredbu, možemo navesti ili relativnu putanju (ako je direktorijum unutar server roota) ili apsolutnu putanju ako želimo neki direktorijum van glavnog Apache direktorijuma. Sasvim je uobičajeno da se DocumentRoot stavi negde izvan ServerRoota zato da se web stranice odvoje od konfiguracionih datoteka. Default naredba je /usr/local/apache/htdocs, a na Debian i Mandrake računarima /var/www/.
Ovo su osnovni parametri za konfiguraciju Apache servera i dovoljni su za normalan rad. Ostali parametri u httpd.conf datoteci uglavnom su dobro komentarisani i po defaultu su postavljeni na odgovarajuće vrednosti.
Konfiguracija pomoću programa Comanche
Naprednija i jednostavnija mogućnost konfiguracije Apachea u grafičkom okruženju izvodi se pomoću programa Comanche. Paket Comanche3.0b4-x86-linux-glibc2.tar.gz je potrebno otpakovati pomoću naredbe:
# tar -xzvf ime_paketa
Nakon toga potrebno je ući u direktorijum comanche3-0b4, pa tamo pokrenuti datoteku comanche3.0b4.
# ./comanche3.0b4 &
Nakon pokretanja datoteke otvara se mali prozor u grafičkom okruženju, koji ima samo jedan taster (Comanche). Pritiskom na njega program se pokreće. Ako Comanche pokrećete prvi put, mora mu se pokazati put do vašeg Apache servera, pošto program “ne zna” gde je instalisan.
Comancheu se naknadno mogu dodavati dodatne putanje, ukoliko postoji instalirano više Apache servera na istom računaru.

Ukoliko je Apache paket instaliran iz neke Linux distribucije potrebno je odabrati Use the one bundled with my system opciju i u padajućem meniju odabrati adekvatnu distribuciju.
Za Apache instaliran iz tar.gz paketa potrebno je odabrati I installed Apache under opciju i upisati direktorijum u kome je instaliran vaš server, a to je obično /usr/local/apache (ukoliko nije navedeno drugačije tokom postupka instalacije).
Kada je podešena lokacija Apache servera, otvoriće se glavni prozor Comanchea.
Comanche je vrlo kompleksan alat u kome je na jednom mestu moguće upravljati instaliranim Apache modulima, a takođe čitati log i conf datoteke na lak način.
Ukoliko naknadno želimo da konfigurišemo programski paket Comanche tako da pomoću njega možemo da administriramo neki drugi postojeći Apache server, to je moguće postići na sledeći način: odaberemo Apache Web Server -> New Apache Installation opciju, posle čega sledi klasičan postupak dodavanja servera koji želimo da administriramo.
Da bi se izbeglo stalno pokretanje datoteke comanche3.0b4 iz terminala na desktop se može postaviti shorcut.
Pokretanje i zaustavljanje
Od distribucije do distribucije mogu se razlikovati direktorijumi u kojima se nalazi datoteka pomoću koje se pokreće Apache. Na primer, kod Debian distribucije putanja je /usr/sbin direktorijum, u kom se nalazi apache datoteka kojom će se pokrenuti ovaj server, dok se kod distribucije Mandrake u istom direktorijumu nalazi httpd datoteka, koja će obaviti isti posao.
Ukoliko se ne koristi inicijalna konfiguraciona datoteka ili je ista naknadno premeštena u drugi direktorijum, Apache je potrebno pokrenuti opcijom -f Na primer:
# /usr/local/apache/bin/httpd -f /home/web/httpd-test.conf
Pokretanje Apache web servera izvodi sa naredbom:
# /usr/local/apache/bin/apachectl start
Ako želimo da proverimo da li je server pokrenut to možemo vrlo jednostavno učiniti pomoću naredbe:
# ps -aux | grep httpd
Ako se ne može pokrenuti, Apache će javiti grešku i savetovaće da pokrenemo apachectl configtest koji će nam dati više detalja o problemu.
Ako je konfiguraciona datoteka dovoljno dobra da program može da prepozna gde se nalazi error log tamo će se naći dodatne informacije o problemu zbog kojeg se server ne može pokrenuti.
Čak i ako se server pokrene korisno je pogledati error log koji će ukazivati na moguće probleme koji nisu dovoljno ozbiljni da bi Apache prestao sa radom ali mogu predstavljati grešku u konfiguraciji. Kada se program normalno pokrene u error logu trebalo bi da se pojavi poruka Server configured - resuming normal operations.
Ukoliko želimo da pregledamo error log dok se Apache pokreće korisna je naredba tail:
# tail -f /usr/local/apache/logs/error_log &
posle koje je potrebno pokrenuti Apache.
Server se može ponovo pokrenuti sa kill -HUP gde je ID procesa Apache.
Treba uzeti u obzir da Apache pokreće potprocese (child processes) sa istim imenom da bi servisirao klijente, i da će se ponovo podignuti samo ako u kill naredbi navedemo originalan proces (roditeljski proces). Njega ćemo najlakše pronaći pomoću naredbe:
# ps -aux | grep httpd
i to tako da tražimo proces koji je pokrenut pod root korisničkim imenom, a ne one pod drugim korisnicima (tipično 'nobody').
Alternativna opcija je da se pid procesa sazna iz pid datoteke koju Apache generiše prilikom pokretanja:
# kill -HUP 'cat /usr/local/apache/logs/httpd.pid'
Ipak, najjednostavnije je koristiti apachectl program (za verzije >=1.3):
# /usr/local/apache/bin/apachectl restart
U error logu tada bi trebalo pisati:
SIGHUP received . Attempting to restart
Server configured - resuming normal operation.
Nažalost, ponovno podizanje servera izaziva prekid svih konekcija koje opslužuju klijente. Zbog toga postoji opcija graceful ponovnog podizanja:
# kill -USR1 'cat /usr/local/etc/httpd/logs/httpd.pid'
ili pomoću apachectla:
# /usr/local/apache/bin/apachectl graceful
Ovakav pristup ponovnog podizanja Apache servera povlači ponovno čitanje konfiguracione datoteke i prekidanje svih procesa koji nisu aktivni.
Aktivni procesi će se prekinuti tek kada se servisira klijent. Za to vreme port na koji Apache « sluša » neće se gasiti, tako da će se sačuvati red (queue) zahteva za konekciju (osim u slučaju ako se broj porta promenio).
Graceful restart bi trebalo koristiti kad god je to moguće, pogotovo ako web server prima mnogo zahteva.
Server se zaustavlja sa:
# kill -TERM
ili
# /usr/local/apache/bin/apachectl stop
Error log će tada sadržati poruku:
httpd: caught SIGTERM, shutting down
Postavljanje Web stranica
Apache će prilikom instalacije u inicijalnom direktorijumu za smeštaj web stranica generisati svoju sopstvenu web stranicu, a najbolji način da se proveri da li sve ispravno radi je - da se u web pretraživaču upiše http://ime_uređaja.domen/, posle čega bi trebalo da se učita pomenuta stranica. Umesto te stranice moguće je postaviti bilo koju drugu web stranicu, koja se želi prikazati.
Ukoliko se stranica nazove index.html ona će se učitati sama, čim se u web pretraživaču upiše osnovni URL servera (npr. http://ime_uređaja.domen), a ako je ime drugačije, moraće joj se pristupati sa http://ime_uređaja.domen/ime_stranice.html.
Ukoliko se ista stranica nalazi u nekom poddirektorijumu potrebno je upisati celu putanju do direktorijuma što može biti nezgodno ako ima više stranica i ako je struktura direktorijuma u kome se nalaze stranice, složenija.
U tu svrhu koriste se tzv. alias opcije, koje omogućuju da se URL prevede u neku drugu lokaciju na disku, a da klijent to ni ne zna. Na primer,
alias /icons/ /usr/local/apache/icons
će imati za posledicu da svaki URL koji počinje sa /icons/ Apache automatski zamenjuje sa /usr/local/apache/icons pre nego što potraži zadatu datoteku.
Ovde bi takođe trebalo navesti opciju koja može biti vrlo korisna u slučajevima kada želimo da omogućimo većoj grupi korisnika objavljivanje sopstvenih stranica na jednom serveru. Naime, postavljanjem UserDir opcije u httpd.conf datoteci svakom korisniku pridružuje se unutar njegovog home direktorijuma njegov lični web direktorijum public_html u kome može objavljivati svoje sopstvene web stranice.
UserDir public_html
Podrazumeva se da korisnik poseduje ispravno korisničko ime na tom računaru.
Nakon toga tim stranicama može se pristupiti vrlo jednostavno. Potrebno je u pretraživački program upisati URL adresu oblika:
http://ime_uređaja.domen/~korisničko_ime/ime_stranice
što će rezultirati učitavanjem željene stranice iz direktorijuma:
/home/ime_korisnika/public_html
Korisna adresa: www.apache.org




del.icio.us
Digg
Twitter
Facebook
Pošaljite komentar