Glavna arrow Linux/Unix arrow Konfiguracija arrow Apache web server petak 25 jul 2008 
Sadrzaj
Glavna
Forum
Linux/Unix
Windows
Mreze
Sigurnost
Hardware
Knjige
Mobilni/PDA
Preuzimanje
Whois
Web Alati
Adresar
Galerija
Pretraga
E-mail
Kontakt
Pristup





Zaboravili ste lozinku?
Nemate nalog? Napravite nalog
 
samo po 1o1.com
po celom SCG web-u
Apache web server | Štampaj |
Autor Tim 1o1   
1.Uvod

Apache web server je program kome je osnovni zadatak proslje?ivanje web sadr?aja web browseru, kada se u njemu upi?e adresa na koju se Apache odaziva.
Usprkos nastojanjima velikih svetskih kompanija poput Microsofta ili Netscapea da mu preotmu dominaciju na tr?i?tu, Apache je jo? uvek dominantan u pogledu kori?tenih web servera, a izgleda da ?e i tako ostati jo? du?e vreme.
Istra?ivanja pokazuju da izme?u 50 i 60% svih web servera na svetu koriste upravo Apache programski paket.
Osim ?to je besplatan, Apache korisnicima i administratorima donosi ?irok spektar, kako jednostavnih, tako i naprednih mogu?nosti ?to ga definitivno stavlja na prvo mesto izbora ve?ine web administratora.
U ovom poglavlju opisani su osnovni postupci vezani za instalaciju, konfiguraciju, i administraciju najpopularnijeg i naj?e??e kori?tenog web servera danas, Apache web servera verzije 1.3. i verzije 2.0 beta.
Treba tako?er napomenuti da su ovdje iznesene samo osnovne napomene vezane uz na?in kori?tenja ovog paketa, s obzirom na njegovu kompleksnost i brojne mogu?nosti koje on nudi.
Za iskori?tavanje svih mogu?nosti ovog programa korisnicima se preporu?uje detaljnije informacije o Apache serveu na njegovim web stranicama (http://www.apache.org).

2.Instalacija Apache servera 1.3

Instalacija Apache web servera u Debian i Mandrake distribucijama ista je kao i za sve ostale pakete koji u njima dolaze, putem Dselect i Software Manager programskih paketa. Navedena poglavlja dostupna su ne slijede?im URL adresama:
U ovim distribucijama Apache ?e se instalirati u direktorijum /etc/httpd umjesto uobi?ajnog direktorijuma /usr/local/apache.
Kod FreeBSD operativnog sistema preporu?uje se instalirati Apache iz tar.gz paketa koji se nalazi na CD-u sa besplatnim softverom. Nakon otpakovanja Apache servera iz tar.gz arhive, instalacija se pokre?e pomo?u skripte:
# ./install-bindist.sh

Skripta se nalazi u direktorijum koji je nastao otpakovanjem tar.gz paketa. Po defaultu server se instalira u direktorijum /usr/local/apache. Ako se paket ?eli instalirati u neki drugi direktorijum potrebno je pokrenuti instalacijsku skriptu 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 instalirati vi?e puta na istom ra?unaru.
To se posti?e tako da pokrenemo instalacijsku skriptu dva puta ali sa razli?itim datotekama u koje ?elimo instalirati server ili da skriptu pokre?emo sa opcijom -f pomo?u koje mo?emo kreirati zasebne konfiguracijske datoteke za svaki poslu?itelj. Ovakva instalacija je korisna ako ?elite imati jedan server sa ograni?enim pristupom koji ?ete na ovaj na?in odvojiti od glavnog servera.
Kori?tenje drugog Servera je korisno i ako ?elite testirati noviju verziju Apache-a pre nego sto ga prebacite da bude glavni server.

3.1 Konfiguracija upisivanjem postavki u httpd.conf datoteku

Konfiguraciska datoteka za Apache server zove se httpd.conf i nalazi se u /etc/httpd/conf direktoriju.
Sadr?aj httpd.conf konfiguraciske datoteke klju?an je element kojim se definise pona?anje instaliranog Apache web servera.
S obzirom na kompleksnost, i vrlo ?irok spektar mogu?nosti koje nudi ovaj server adekvatno tome postoji i mno?tvo konfiguraciskih parametara i opcija koje se mogu na?i u httpd.conf datoteci. Ovde su iznesene samo one najnu?nije 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 olak?ava kori?tenje ovog programa za onu skupinu korisnika koji nisu toliko upoznati sa detaljima o konfiguraciji ovog servera.
Pre nego ?to se krene sa konfiguracijom potrebno je odlu?iti koje ime ?e imati server, na koje mre?no okruzenje ?e primati zahteve, gde ?e se nalaziti konfiguracijske i log datoteke, i u kojem direktorijumu ?e biti sme?teni dokumenti web stranice.
ServerName je ime na koje ?e server reagovati kada se u programu prtrazivanja upi?e njegova URL adresa (www.ime_domene.com).
BindAddress je konfiguracijski parametar koji definise 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 vrijednost ovog parametra je
BindAddress *

?to zna?i da server slu?a sva mre?na okruzenja na ra?unaru.
Ukoliko se ?eli da server slu?a izri?ito odre?enu adresu napisati ?e se npr.:
BindAddress 192.168.1.1

Ako zelimo da server slusa samo klijente sa vlastitog ra?unara napisati ?emo
BindAddress 127.0.0.1

Problem ovog parametra je da specificira samo jednu IP adresu jer se ne mo?e zadavati vi?e puta. Ako se ?eli odabrati vi?e od jedne IP adrese koje ?e server slu?ati koristi se parametar Listen.
Port odre?uje na kojem portu server slu?a zahteve (inicijalna vriednost je 80). Umjesto kombinacije parametara Port i BindAddress po?eljno je koristiti Listen opciju.

Listen se koristi u slu?azevima kada se ?eli definisati vi?e IP adresa i port-ova za isti server. 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 port-ove 80 i 433 na adresi 192.168.1.1 i port 80 na adresi 192.168.1.2.

ServerType bira mod rada server. Apache mo?e raditi u dva moda, samostalno
ServerType standalone

ili unutar inetd deamona
ServerType inetd

U samostalnom modu rada server sam upravlja svojim mre?nim konekcijama i slu?a port-ove koji su mu definisani.
Ovo je uobi?ajen na?in rada Apache server i preporu?uje se takav na?in rada. Ako server radi unutar inetd deamona, on zanemaruje konfiguracijske parametre i ?eka da ga inetd pozove. Budu?i da inetd za svaku vezu ponovo poziva Apache, ovaj na?in rada je vrlo necitak i rijetko se koristi, pa ga zato ovdje ne?emo pobli?e opisivati.

User i Group konfiguriraju server da radi pod odre?enim korisnikom i grupom. Kada je Apache pokrenut pod root-om (npr. kod podizanja sistema) on pokre?e vi?e podprocesa (child processes) i ako su User i Group pode?eni, podprocesi gube root status i primaju identitet koji smo mi podesili.
Obi?no se postavlja vrednost nobody za korisnika i nogroup za grupu. Na taj na?in server je puno sigurniji i otporniji na napade i ako nameravate pokretati Apache kao root trebali bi podesiti ove parametre.

ServerAdmin definise 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 definise direktorijum u kojem se nalaze sve va?ne datoteke potrebne za rad server. Po defaultu to je /usr/local/apache direktorijum, a kod Debian i Mandrake distribucije to je /etc/httpd direktorijum.

ErrorLog definise ime datoteke u koju se spremaju poruke o gre?kama u radu. Apache podr?ava vi?e vrsta log-ova od kojih su najuobi?ajniji access log, referer log i error log. Preporu?uje se definisanje i kori?tenje access log i error log parametara unutar Apache konfiguracijske datoteke kako bi se na taj na?in omogu?ilo lak?e otklanjanje gre?aka u radu, i kontrolisanje poku?aja pristupa ovom serveru. Uobi?ajne 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 kojem se nalaze web stranice va?eg servera.
Uobi?ajno server tra?i direktorijum /htdocs unutar direktorijuma definisanog u ServerRoot. Ako ?elimo promeniti ovu postavku, mo?emo navesti ili relativnu stazu (ako je direktorijum unutar server root-a) ili apsolutnu stazu ako ?elimo neki direktorijum izvan glavnog Apache direktorijimua. Sasvim je uobi?ajno da se DocumentRoot stavi negde izvan ServerRoot-a zato da se web stranice odvoje od konfiguracijskih datoteka. Default postavka je /usr/local/apache/htdocs, a na Debian i Mandrake racunarima /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 komentirani i po defaultu su postavljeni na odgovaraju?e vrednosti.


3.2 Konfiguracija pomo?u programa Comanche

Naprednija i jednostavnija mogu?nost konfiguracije Apache-a u grafi?kom okruzenju izvodi se pomo?u programa Comanche koji je prilo?en na CD-u s besplatnim softverom.
Paket Comanche3.0b4-x86-linux-glibc2.tar.gz potrebno je otpakovati naredbom:
# tar -xzvf ime_paketa

Nakon toga potrebno je u?i u direktorijum comanche3-0b4, i tamo pokrenuti datoteku comanche3.0b4.
# ./comanche3.0b4 &

Nakon pokretanja datoteke otvara se mali prozor u grafi?kom okruzenju koji ima samo jedan gumb (Comanche), kojega je potrebno pritisnuti i program ?e se pokrenuti. Ako Comanche pokre?ete prvi puta morate mu pokazati put do va?eg Apache servera, budu?i da program ne mo?e znati gdje ste ga instalirali.
Naknadno Comanche-u mo?ete dodavati dodatne staze, ukoliko postoji instalirano vi?e Apache servera na istom racunaru.
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 te upisati direktorijum u kojem 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 va?eg Apache servera, otvoriti ?e se glavni prozor Comanche-a

Comanche je vrlo kompleksan alat u kome je na jednom mestu mogu?e upravljati instaliranim Apache modulima, te ?itati log i conf datoteke na vrlo lagan na?in.
Ukoliko se naknadno ?eli konfigurisati programski paket Comanche tako da putem njega mo?emo administrirati 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, nakon ?ega sledi klasi?an postupak dodavanja server kojeg ?elimo administrirati.
Da bi se izbeglo stalno pokretanje datoteke comanche3.0b4 iz terminala, mo?e se postaviti shorcut na desktop .

4.Pokretanje i zaustavljanje

Od distribucije do distribucije mogu se razlikovati direktorijumi u kojima se nalazi datoteka pomo?u koje se pokre?e Apache.Kod Debian distribucije taj put je /usr/sbin direktorijum, u kojem se nalazi apache datoteka kojom ?e se pokrenuti ovaj server, dok se kod Mandrake distribucije u istom direktorijumu nalazi httpd datoteka, koja ?e obaviti isti posao.
Ukoliko se ne koristi inicijalna konfiguracijska datoteku ili je ista naknadno preme?tena u drugi direktorijum, Apache je potrebno pokrenuti sa opcijom -f npr.:

# /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 se ?eli proveriti da li je server pokrenut to se mo?e vrlo jednostavno u?initi pomo?u naredbe:

# ps -aux | grep httpd

Ako se ne mo?e pokrenuti Apache ?e javiti gre?ku i savetovati ?e da pokrenemo apachectl configtest koji ?e nam dati vi?e detalja o problemu.
Ako je konfiguracijska datoteka dovoljno dobra da program mo?e prepoznati gdje se nalazi error log, tamo ?e se nalaziti 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 pokazivati na mogu?e probleme koji nisu dovoljno ozbiljni da bi Apache prestao raditi ali mogu predstavljati gre?ku u konfiguraciji. Kada se program normalno pokrene u error log-u bi se trebala pojaviti poruka Server configured - resuming normal operations.
Ukoliko se ?eli pregledavati error log dok se Apache pokre?e korisna je naredba tail:

# tail -f /usr/local/apache/logs/error_log &

nakon koje je potrebno pokrenuti Apache.
Server se mo?e iznova pokrenuti sa kill -HUP gde je ID procesa Apache.
Treba uzeti u obzir da Apache pokre?e podprocese (child processes) sa istim imenom da bi poslu?io klijente i da ?e se ponovno podignuti samo ako u kill naredbi navedemo originalan proces (proces roditelj). 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 generise prilikom pokretanja:

# kill -HUP 'cat /usr/local/apache/logs/httpd.pid'

Ipak najjednostavnije je koristiti apachectl program (za ina?ice >=1.3):

# /usr/local/apache/bin/apachectl restart

U error log-u tada bi trebalo pisati:
SIGHUP received . Attempting to restart
Server configured - resuming normal operation.

Na?alost ponovno podizanje server uzrokuje prekid svih konekcija koje poslu?uju klijente. Zbog toga postoji opcija graceful ponovnog podizanja:

# kill -USR1 'cat /usr/local/etc/httpd/logs/httpd.pid'

ili pomo?u apachectl-a:
# /usr/local/apache/bin/apachectl graceful

Ovakav pristup ponovnog podizanja Apache servera uzrokuje ponovno ?itanje konfiguracijske datoteke i prekidanje svih procesa koji nisu aktivni.
Aktivni procesi prekinuti ?e se tek kada se poslu?i klijent. Za to vreme port na koji Apache 'slu?a' ne?e se gasiti tako da ?e se sa?uvati rep (queue) zahteva za konekciju (osim u slu?aju kada se broj porta promijenio).
Graceful restart bi se trebao koristiti kada god je to mogu?e, pogotovo ako web server prima mnogo zahtjeva.
Server se zaustavlja sa:

# kill -TERM

ili
# /usr/local/apache/bin/apachectl stop

Error log ?e tada sadr?avati poruku:

httpd: caught SIGTERM, shutting down


5.Postavljanje web stranica

U inicijalnom direktorijumu za pohranjivanje web stranica Apache ?e prilikom instalacije generisati svoju vlastitu web stranicu i najbolji na?in da se provjeri da li sve ispravno radi je da se u web browseru upi?e http://ime_racunara.domena/, nakon ?ega bi se spomenuta stranica trebala u?itati. Umesto te stranice mogu?e je postaviti bilo koju drugu web stranicu, koja se ?eli prikazati.
Ukoliko se stranica nazove index.html sama ?e se u?itati ?im se u web browseru upi?e osnovni URL server (npr. http://ime_racunara.domena), a ako je ime druga?ije, morati ?ete joj pristupati sa http://ime_racunara.domena/ime_stranice.html .
Ukoliko se ista stranica nalazi u nekom poddirektorijumu potrebno je upisati celu stazu do direktorijuma ?to mo?e biti nezgodno ako imate vi?e stranica i slo?eniju strukturu direktorija u kojemu se nalaze va?e stranice.
U tu svrhu koriste se tzv. alias opcije, koje omogu?uju da se URL prevede u neku drugu lokaciju na disku bez da klijent to zna. Npr.:

alias /icons/ /usr/local/apache/icons

?e imati za posledicu da svaki URL koji po?inje sa /icons/ Apache automatski zamjenjuje sa /usr/local/apache/icons prije nego ?to potra?i zadanu datoteku.
Ovde bi tako?e trebalo navesti opciju koja mo?e biti vrlo korisna u slu?ajevima kada se ?eli ve?oj grupi korisnika omogu?iti objavljivanje vlastitih stranica na jednom serveru.
Naime, postavljanjem UserDir opcije u httpd.conf datoteci, svakom korisniku pridru?uje se unutar njegovog home direktorijuma njegov osobni web direktorijum public_html u kojem mo?e objavljivati svoje vlastite web stranice.

UserDir public_html

Podrazumeva se da korisnik poseduje valjano korisni?ko ime na tom ra?unaru.
Nakon toga tim stranicama mo?e se pristupiti vrlo jednostavno. Potrebno je u browser program upisati URL adresu oblika:
http://ime_racunara.domena/~korisni?ko_ime/ime_stranice

?to ?e rezultovati u?itavanjem ?eljene stranice iz direktorijuma:
/home/ime_korisnika/public_html


6.Autorizacija i kontrola pristupa

U dana?nje vreme privatnost podataka vrlo je va?na velikom broju korisnika, te je vrlo bitno da odre?ene informacije budu dostupne samo onima kojima su namenjene. Upravo zbog toga u ovom poglavlju biti ?e opisani postupci za?tite podataka pomo?u Apache web servera. Naime, Apache omogu?uje zabranu gledanja sadr?aja odre?enih direktorija svima osim posebnim korisnicima ili grupi osoba koje znaju pristupiti.
Ovde ?e biti opisan postupak postavljanja osnovne autorizacije za odre?eni direktorijum ili web stranicu.
Kao ?to samo ime govori osnovna autorizacija je najjednostavnija metoda postavljanja za?tite, te se vrlo ?esto koristi. Princip rada osnovne autorizacije vrlo je jednostavan i zasniva na otvaranju prozora u koji se upisuje korisni?ko ime i lozinka kada se u web browseru pozove za?ti?ena stranica. Ukoliko korisnik zna to?no korisni?ko ime i lozinku mo?e nastaviti sa u?itavanjem stranice, dok mu u suprotnom Apache server to ne dozvoljava.

6.1 Konfiguracija autorizacije

Postoje dva na?ina na koji se ovakva autorizacija mo?e ostvariti. Ako administrator postavlja autorizaciju, on se mo?e poslu?iti upisivanjem postavki unutar httpd.conf datoteke, dok ostali korisnici uglavnom nemaju dovoljna sistemska ovlastenja da bi to mogli u?initi. Zato za ostale korisnike postoji mogu?nost stvaranja .htaccess datoteke unutar bilo kojeg direktorijuma koji se ?eli za?tititi.
Unutar .htaccess datoteke mogu se staviti i druge stavke koje nisu vezane za autorizaciju ve? za konfiguraciju pona?anja Apache servera, no ne sve (npr. ServerName). Najve?a prednost u odnosu na pisanje stavki unutar httpd.conf je ?to se nakon pisanja stavki u .htaccess datoteku Apache ne treba restartovati da bi novoupisane postavke vredele. Treba napomenuti da se stavke upisane u .htaccess datoteku odnose na direktorijum u kojem se ona nalazi, te sve poddirektorijume. Naime Apache prilikom ulaska u direktorijum, prije nego ?to po?alje podatke web browseru, tra?i datoteku .htaccess, te u slu?aju da je na?e sledi postavke upisane u njoj, dok u suprotnom sledi postavke upisane u httpd.conf. Da bi ovakav na?in ispravno funkcionirao u httpd.conf datoteci ne smije postojati linija:

AllowOverride None

Navedenu liniju potrebno je izbrisati ili na nju postaviti komentar tako da postane neva?e?a U slu?aju da navedena linija postoji, Apache ne?e tra?i datoteku .htaccess, te sve ?to je upisano u .htaccess ne?e vrediti pa stoga ni autorizacija ne?e raditi.
Pri postavljanju autorizacije prvi korak je stvaranje datoteke u kojoj ?e biti upisani korisnici koji imaju dozvolu pristupa za?ti?enim dokumentima. Potrebno je stvoriti direktorij /usr/local/apache/passwd u kojem ?e biti pohranjena passwords datoteka.

# mkdir /usr/local/apache/passwd

Stvaranje nove datoteke izvodi se naredbom htpasswd. Pozicionirati se u direktorij /usr/local/apache/bin, i ukucati:

# ./htpasswd -c /usr/local/apache/passwd/passwords ime_korisnika

nakon ?ega ?emo biti upitani za lozinku i potvrdu lozike. Nakon pravilnog unosa lozinke stvorena je datoteka passwords u kojoj su upisani ime korisnika i lozinka u enkriptiranom obliku. Potrebno je napomenuti da opcija -c zna?i stvaranje datoteke ukoliko datoteka ne postoji. Ukoliko datoteka ve? postoji, postoje?a datoteka bici ?e prebrisana. Za dodavanje novog korisnika ponoviti opisani postupak, ali bez opcije -c. Datoteku sa pohranjenim korisnicima potrebno je za?tititi od neovla?tenog pristupa. Ukoliko je Apache web server konfiguriran da se pokre?e kao korisnik nobody i grupa nogroup po?eljno je ukucati:

# chown nobody.nogroup /usr/local/apache/passwd/passwords
# chmod 640 /usr/local/apache/passwd/passwords

?ime je dozvoljen pristup samo korisniku nobody i grupi nogroup, tj. Apache web serveru.

Slede?i korak je konfigurisanje Apache server da koristi passwords datoteku. Konfiguriranje se izvodi slede?im postavkama:

AuthType Tip autorizacije koja se koristi (u ovom slu?aju jovic)
AuthName Ime autorizacije (ispisuje se na prozoru koji se pojavljuje)
AuthUserFile Lokacija datoteke sa lozinkama korisnika
AuthGroupFile Lokacija datoteke sa lozinkama grupe, ako se koristi
Require Zahtevi koji moraju biti ispunjeni da bi se zadovoljila autorizacija

Kako je ve? ranije re?eno ove postavke mogu se smestiti u datoteku .htaccess ili u httpd.conf pod sekcijom .

Navescemo primer postavljanja osnovne autorizacije za direktorijum

/usr/local/apache/htdocs/privatno, upisivanjem u httpd.conf.

Primjer:

AuthType jovic
AuthName "Samo za pozvane"
AuthUserFile /usr/local/apache/passwd/passwords
Require user milanov


U navedenom primjeru koristi se osnovna autorizacija, ime autorizacije je "Samo za pozvane". Datoteka /usr/local/apache/passwd/passwords bice kori?tena za proveru identiteta korisnika, te samo korisnik s imenom milanov mo?e videti sadr?aj za?ti?enog direktorijum, naravno, ako zna ispravnu lozinku.
Drugi na?in ostvarivanja primera izvodi se stvaranjem datoteke .htaccess u direktorijumu koji se ?eli za?tititi upisivanjem svih reda iz primera osim reda koji sadr?e u sebi. Potrebno je postaviti odgovaraju?e ovlascenja za pristup .htaccess datoteci i web stranicama koje Apache treba prikazivati tako da Apache server mo?e pro?itati njihov sadr?aj.

Primjer:
AuthType jovic
AuthName "Samo za pozvane"
AuthUserFile /usr/local/apache/passwd/passwords
Require user milanov

Mogu?e je postaviti da pristup bude odobren svim korisnicima upisanim u datoteku passwords stavkom Require valid-user. Ako se u direktorijumu nalazi datoteka index.html tada ?e ona biti u?itana nakon odobrene autorizacije, tj. web stranica se mo?e za?tititi ako se postavi u za?ti?eni direktorijum.
U praksi je ?esto potrebno omogu?iti pristup vi?e osoba nekom direktorijumu,i u tu svrhu mo?e definisati grupa. Ovakav na?in postavljanja pristupa pogodan je jer se bez promene konfiguraciskih datoteka Apache server mo?e nekoj osobi dozvoliti ili oduzeti pristup tako da se ta osoba postavi ili izbri?e iz grupe kojoj je pristup dozvoljen. Grupa se postavlja stvaranjem datoteke /usr/local/apache/passwd/groups (mo?e biti i negde drugde), i upisivanjem u nju:
Ime_grupe: ime_korisnika1 ime_korisnika2 ime_korisnika3

Korisnici tako?e moraju biti upisani u datoteku passwords, to je potrebno jo? dodati u httpd.conf ili u .htaccess linije

AuthGroupFile /usr/local/apache/passwd/groups
Require group Ime_grupe

Ovome je zavr?en opis postavljanja osnovne autorizacije. Postoje jo? dve vrste autorizacije koje Apache podr?ava: tzv. digest autorizacija i autorizacija pomo?u baze podataka. Takve autorizacije se koriste u iznimno sigurnim sastavima, to ne radi na svim web browserima i stoga ovde ne?e biti opisani.


7.CGI i PHP aplikacije

U ovom delu ukratko su opisani osnovni konfiguracijski postupci, vezani za omogu?avanje pokretanja i izvo?enja CGI (engl. Common Gateway Interface), te PHP aplikacija na strani Apache web servera.
Naime, spomenute aplikacije u dana?nje vreme predstavljaju neizostavni element bilo kojeg web server koji se namerava koristiti za obavljanje ne?to ozbiljnijih i slo?enijih zada?a, te ?e se pre ili kasnije ukazati potreba za omogu?avanjem ovih servisa.
Ovdje su izneseni osnovni postupci koji bi trebali omogu?iti kori?tenje spomenutih aplikacija.

7.1 CGI

CGI (engl. Common Gateway Interface) je prili?no star, ali danas jo? uvek dosta ?esto kori?ten alat, koji omogu?uje razmenu informacija izme?u korisnika i web servera.
CGI skripte mogu biti pisane u raznim programskim jezicima (naj?e??e Perl ili C), i kao takve predstavljaju aplikacije koje se na zahtev pretra?iva?a, odnosno klijenta izvr?avaju na strani web server.
Tipi?ni primer komunikacije izme?u klijenta i web servere, je slanje korisni?kih podataka serveru putem web formi ugra?enih u HTML stranicu, na temelju kojih ?e CGI skripta pokrenuta na serveru obaviti za nju predvi?ene zadatke, i rezultat vratiti klijentu.
Ovde se ne?e razmatrati kako se i na koji na?in CGI skripte pi?u, niti kako se one povezuju sa HTML dokumentom, budu?i da to izlazi van tematskog podru?ja ovog dokumenta.
Biti ?e izneseni koraci koje je potrebno poduzeti, kako bi se na web serveru omogu?ilo uspe?no pokretanje i izvo?enje napisanih CGI skripti. Potrebno je spomenuti da inicijalna konfiguracija Apache web servera ne dozvoljava pokretanje CGI skripti, i da je u tu svrhu potrebno modificirati httpd.conf konfiguracijsku datoteku ukoliko se to ?eli omogu?iti.
Na samom po?etku potrebno je definisati direktorijum u kojem ?e se pohranjivati CGI skripte koje se ?ele izvoditi. Taj direktorijum mo?e se nalaziti bilo gdje unutar vaseg sustava, neovisno o DocumentRoot konfiguracijskom parametru Apache web servera.
Nakon ?to je odre?en direktorijum u kojem ?e se pohranjivati skripte, potrebno je u httpd.conf datoteci dodati deo kojim ?e se Apache server obavestiti da se u tom direktoriju nalaze CGI izvr?ni programi, koje u slu?aju zahtjeva za tom URL adresom treba tako i tretirati.

Primjer:

AllowOverride None
Options ExecCGI
SetHandler cgi-script


Ovim delom koda Apache web server ?e znati da se unutar /var/www/cgi-bin/ direktorijuma nalaze CGI skripte, koje treba tretirati kao izvr?ne programe ukoliko se javi upit za URL adresom koja upu?uje na navedeni direktorijum.
Klju?ni parametar u ovom dielu konfiguracije je Options ExecCGI parametar, kojim se dozvoljava pokretanje i izvo?enje CGI skripti pohranjenih u direktorijumu na koji se ovaj deo konfiguracije odnosi.
No, uz ovakvu konfiguraciju Apache web servera, parametru ACTION unutar HTML
Uobi?ajna je praksa da se u konfiguraciji Apache web servera definise alias ime, kojim ?e se omogu?iti intuitivnije pristupanje CGI skriptama, pogotovo ukoliko se one nalaze negde duboko unutar sistema.
U tu svrhu potrebno je dodati slede?i red:
ScriptAlias /cgi-bin/ "/usr/local/apache/www/cgi-bin/"

U ovom slu?aju ?e Apache web server svaki zahtjev za URL adresom oblika http://www.ime_domene/cgi-bin/ime_skripte interpretirati kao zahtjev za pokretanjem CGI skripte, koju ?e locirati unutar /usr/local/apache/www/cgi-bin alias direktorija.

Napomena: Svakoj CGI skripti kojoj se ?eli omogu?iti pokretanje potrebno je chmod naredbom postaviti ovlascenja izvo?enja (execute bit). Naime, budu?i da je web server iz sigurnosnih razloga naj?e??e pokrenut pod nobody korisni?kim imenom, potrebno je execute zastavice postaviti na na?in kojim ?e se web serveru omogu?iti pokretanje ?eljene CGI skripte (npr. chmod 755 ime_skripte, ?e sigurno zadovoljiti).

7.2 PHP

PHP skriptni jezik trenutno je jedan od najpopularnijih i naj?e??e kori?tenih skriptnih jezika u svetu web programiranja. Svoju popularnost stekao je svojom jednostavno??u, kvalitetom, te brojnim mogu?nostima koja omogu?uju jednostavniji, a ujedno i kvalitetniji dizajn web stranica.
Ukoliko se bolje posmatra sintaksa, odnosno struktura skripti napisanih u PHP-u, mnogi ?e zaklju?iti kako je PHP jezik neka vrsta kombinacije izme?u Perl-a, C-a, i Java programskog jezika.
Tako se u PHP-u mogu na?i elementi objektno-orijentiranog programiranja preuzeti iz Jave, odnosno C++-a, a tako?e se mo?e prona?i i niz drugih vrlo korisnih elementa nasle?enih iz Perl programskog jezika, budu?i da se on pokazao vrlo mo?nim alatom kada se govori o web programiranju.
No, posebna snaga PHP skriptnog jezika dolazi do izra?aja u situacijama kada se javlja potreba za integracijom sa bazama podataka, budu?i da PHP poseduje vrlo kvalitetno programsko okruzenje dizajnirano upravo u tu svrhu.
Kako bi se omogu?ilo pokretanje i izvo?enje PHP skripti na Apache web serveru, prvi korak koji je potrebno preduzeti je nabavljanje samog PHP programskog paketa, koji se mo?e prona?i na www.php.net. Preporu?uje se dobavljanje ?to novije verzije ovog programskog paketa, kako bi se osigurala potpuna kompatibilnost ovog programa sa drugim delovima sistema (SQL, Apache ?).
Osim samog PHP programskog paketa, na istoj stranici mogu se prona?i i brojne druge korisne informacije vezane za PHP skriptni jezik,kao takva se preporu?uje svima onima koji se na bilo koji na?in ?ele upoznati sa PHP svetom programiranja.
PHP programski paket mo?e se izme?u ostalih dobaviti i u tar.gz formatu, te je u tom slu?aju postupak instalacije sli?an kao i kod ostalih tar.gz paketa.

Otpakovanje arhive mo?e se obaviti u jednom koraku naredbom:

# tar -xzvf php.x.x.x.tar.gz

Nakon toga potrebno je u?i u novonastali php.x.x.x direktorijum, pokrenuti konfiguracijsku skriptu. Potrebno je obratiti pa?nju na parametre koje se proslje?uju toj skripti, budu?i da o njima ovisi kako ?e se PHP slagati sa ostalim komponentama sistema. Npr.:

#./configure --with-apache=./apache_X.X.X --with-mysql=/usr/local/mysql

naredba ?e pokrenuti konfiguraciju sa podr?kom za integraciju sa MySQL bazom podataka, te Apache web server. Nije isklju?ena mogu?nost da ?e PHP programski paket jednako dobro raditi pokretanjem ./configure skripte bez parametara, no gore opisani postupak smatra se regularnim i sigurnim.
Naredbom ./configure --help mogu se izlistati sve opcije koje se mogu proslediti ./configure skripti za konfiguraciju PHP programskog modula, po?eljno je analizirati kako bi se na taj na?in uvidele sve mogu?nosti konfiguracije ovog programa.
Nakon toga sledi pokretanje make programa naredbama:

# make
# make install

?to ?e ukoliko je sve uspe?no pro?lo rezultirati instaliranim PHP programskim paketom.
Ukoliko se u ovom koraku nai?e na bilo kakve pote?ko?e, preporu?uje se pregledavanje FAQ pitanja na www.php.net portalu.
Sljede?i korak je konfiguracija samog Apache web servera, kako bi se na taj na?in omogu?ilo pokretanje i izvo?enje PHP skripti. U tu svrhu potrebno je dodati slijede?e linije u Apache httpd.conf konfiguracijsku datoteku:

AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php .php
ScriptAlias /php3/ "/usr/local/bin/"
Action application/x-httpd-php3 "/php3/php/"

?ime ?e se omogu?iti izvo?enje PHP skripti instaliranih racunaru.
Ovim linijama Apache web serveru omogu?uje se prepoznavanje i izvr?avanje skripti u PHP jeziku. Definise se tip aplikacije, lokacija gdje ?e iste biti smje?tene (/usr/local/bin) te interpreter koji ?e se pozivati pri njihovom izvr?avanju.

8.Apache 2.0

U daljnjem tekstu navedene su samo razlike u odnosu na verziju 1.3, te sve ?to nije posebno navedeno, a navedeno je u opisu verzije 1.3, tako?e vredi i za verziju 2.0.

8.1 Novosti u odnosu na Apache 1.3

Ovde su navedene najva?nije novosti o radu i instalaciji nove verzije servera u odnosu na verziju 1.3.

* Novi instalaciski program zasnovan je na autoconf-u i libtool-u. Ovo ?ini instalaciju novog Apache-a vi?e nalik na instalacije ostalih programa
* Podr?an je ve?i broj protokola nego u prosloj verziji.
* Apache 2.0 je br?i, bolji i stabilniji u odnosu na Apache 1.3 na BeOS, OS/2 i Windows platformama
* Mnogo modula iz starije verzije je uklonjeno, te se vi?e poslova obavlja automatski, kori?tenjem novih vi?e-procesnih modula
* Poruke gre?aka u radu Apache web servera prevedene su na vi?e jezika. Administratoru je omogu?eno da sam odredi izgled takvih poruka
* Mnogo zbunjuju?ih stavki izba?eno je iz upotrebe u httpd.conf datoteci.
* Dodani su brojni novi moduli

8.2 Instalacija Apache servera 2.0

Ovde opisani postupci instalacije Apache web servera odnose se na instalaciju iz tar.gz datoteke, budu?i da se nova verzija za sada jo? ne isporu?uje u rpm paketima, niti u sklopu gotovih distribucija.
Prije po?etka instalacije nove verzije Apache web servera potrebno je pogledati zahteve koje name?e nova verzija:

* Potrebno je barem 50 MB slobodnog prostora na lokalnom tvrdom disku za pohranu privremenih datoteka koje se koriste prilikom instalacije. Nakon instalacije Apache zauzima oko 10 MB slobodnog prostora.
* ANSI - C kompajler - GNU C kompajler (gcc)
* Potrebno je postaviti tacno sistemsko vrijeme u sistemu jer neki elementi Apache web servera ispisuju to vrijeme prilikom prikaza web stranica
* Po?eljno je imati instaliran Perl 5, ali nije obvezno.

Nakon provere navedenih zahteva, pozicionirati se u direktorijum u kojem se nalazi httpd-2_0_NN.tar.gz, gde NN ozna?ava trenutnu verziju Apache 2.0 web servera, i upisati:

# tar -xzvf httpd-2_0_NN.tar.gz

Nakon ?to je datoteka otpakovana u?emo u novostvoreni direktorijum, i mo?emo pristupiti konfiguraciji programa. Konfiguracija programa izvodi se kucanjem:

# ./configure

Ako se ne navedu nikakvi parametri Apache ?e biti instaliran u /usr/local/apache2. Ukoliko se instalacija ?eli obaviti u neki drugi direktorij i sa vi?e modula potrebno je configure skriptu pozvati s parametrima:

# ./configure --prefix=/ime_direktorija -enable-ime_modula=shared

Nakon uspe?nog izvo?enja configure skripte (u slu?aju da nema prijavljenih gre?aka) ukucati:

# make

Ova faza instalacije mo?e potrajati neko vrijeme, zavisno o brzini ra?unara.

Nakon toga:

# make install

Time je zavr?ena instalacija.

Ukoliko nije instalirana stara verzija Apache servera ili je deinstalirana, korisno je prekopirati man stranice, budu?i da to instalacija ne obavi automatski. Ukucati:

# cp -R /usr/local/apache2/man/* /usr/local/man

Treba jo? napomenuti da se novo-instalirana verzija ne?e automatski pokretati prilikom podizanja sistema, ukoliko to posebno ne navedemo.

8.3 Konfiguracija Apache 2.0 poslu?itelja

Konfiguracija Apache 2.0 servera je vrlo sli?na konfiguraciji verzije 1.3, ovde navedene razlike vezane za konfiguraciju u odnosu na raniju verziju.
Izba?ene su stavke Port i BindAddress,umjesto njih koristi se Listen.
ServerName odre?uje ime adrese na koje se Apache odaziva i broj porta:
ServerName www.ime_domene.com:port

stavka ServerType vi?e ne postoji, ni mogu?nost rada unutar inet deamona.
stavke AgentLog, RefererLog i RefererIgnore izba?ene su, no Agent i Referer log jo? su uvek mogu?i kori?tenjem CustomLog postavke.
stavke AddModule i ClearModuleList koje su bile potrebne radi odgovaraju?eg redosleda u?itavanja modula izba?ene su iz upotrebe, budu?i da novi Apache 2.0 API omogu?uje modulima da sami odrede redosled izvo?enja, eliminiraju?i potrebu za navedenim stavkama.

8.4 Pokretanje i zaustavljanje Apache 2.0

Pre pokretanja nove verzije Apache web servera potrebno je prvo isklju?iti staru verziju ukoliko je aktivna. Ukoliko je starija verzija Apache servera bila instalirana zajedno sa distribucijom za isklju?ivanje je dovoljno ukucati:

# apachectl stop

Ako je starija verzija bila naknadno instalirana u direktorijum /usr/local/apache, ukucati:

# /usr/local/apache/bin/apachectl stop

Uobi?ajni na?in pokretanja nove verzije Apache servera izvodi se utipkavanjem naredbe:

# /usr/local/apache2/bin/apachectl start

a zaustavljanje:

# /usr/local/apache2/bin/apachectl stop

Ostale bitne napomene u vezi pokretanja i zaustavljanja tako?e su jednake kao u verziji 1.3. Jedina razlika je u pokretanju prilikom podizanja operativnog sistema. Da bi postavili automatsko pokretanje prilikom podizanja sistema potrebno je prvo isklju?iti pokretanje stare verzije Apache servera prilikom podizanja sistema (ukoliko je kori?ten), jer u isto vreme nije mogu?e pokrenuti dve verzije servera na istom ra?unaru. Po?eljno je staru verziju deinstalirati.
Korisno je prvo prekopirati skriptu pomo?u koje se pokre?e Apache server, u direktorijum /usr/local/bin, naredbom:

# cp /usr/local/apache2/bin/apachectl /usr/local/bin

Nakon toga potrebno je napraviti simboli?ki link na pokreta?ku skriptu u direktoriju /etc/rcN.d, gdje N ozna?ava broj runlevela koji se uobi?ajeno izvodi prilikom podizanja sustava. Simboli?ki link mora imati ime SXXapachectl, gdje XX ozna?ava broj koji govori koji ?e se po redu Apache pokrenuti u tom runlevelu. Umjesto XX potrebno je upisati jedan dvocifreni broj koji je slobodan (izlistati direktorij /etc/rcN.d, te potra?iti slobodan broj). Ukoliko ne znate koji runlevel odabrati, najbolje je odabrati onaj koji se trenutno izvr?ava. To se mo?e saznati naredbom runlevel.
Izrada simboli?kog linka izvodi se naredbom:

# ln -s /usr/local/bin/apachectl /etc/rcN.d/SXXapachectl

Slede?i put pri podizanju sistema Apache 2.0 web server biti ?e automatski pokrenut.

Da bi omogu?ili automatsko zaustavljanje Apache web servera prilikom restartan ili isklju?ivanja ra?unara potrebno je napraviti simboli?ke linkove u direktorijima /etc/rc0.d i /etc/rc6.d. Za izradu simboli?kih linkova potrebno je upisati:

# ln -s /usr/local/bin/apachectl /etc/rc0.d/KXXapachectl
# ln -s /usr/local/bin/apachectl /etc/rc6.d/KXXapachectl

gdje XX ozna?ava slobodan dvocifreni broj.

9.Zaklju?ak

S obzirom na ?injenicu da je Apache jedan od najkvalitetnijih i najra?irenijih web servera u svijetu, on kao takav predstavlja jedini logi?an izbor pri odabiru web servera za sve Linux distribucije. Osim njegovog kvaliteta koji je potvr?ena od velikog broja web administratora, Apache je ujedno i besplatan ?to je mo?da ?ak i najve?a prednost ovog programa, budu?i da su cene ostalih web servera dostupnih na tr?i?tu prili?no velike.

 
: Glavna :: Forum :: Linux/Unix :: Windows :: Mreze :: Sigurnost :: Hardware :: Knjige :: Mobilni/PDA :: Preuzimanje :
Powered by 1o1
PodignimoStupove!