You are on page 1of 15

Uputstvo za kuni Web server

1. Uvod

Prvo je potrebno definirati ta je to web server. Web server je raunarski program odgovoran za prihvatanje HTTP (Hypertext Transfer Protocol) zahtjeva od web klijenata, znanih kao web browser-i, i opsluivanje HTTP odgovora sa opcionalnim sadrajem kao to su HTML dokumenti, vezani objekti, slike, itd... Web serverom se naziva i raunar na kojem se vrti program opisan gore, ali emo u daljnjim razmatranjima pod web serverom podrazumijevati raunarski program ili skup programa i usluga [1]. I ako se web serveri razlikuju u detaljima, od programa do programa, svi oni dijele skup zajednikih osobina: HTTP: svaki web server program prihvata HTTP zahtjeve od klijenta i daje HTTP odgovore. HTTP odgovori se sastoje obino od HTML dokumenata, ali to moe biti i bilo koji dokument, slika, itd... Ako se desi greka prilikom opsluivanja zahtjeva web server mora poslati broj i opis greke krajnjem korisniku; LOGIRANJE (eng. Logging): obino web serveri imaju mogunost prikupljanja detaljnih informacija o zahtjevima klijenata i odgovorima servera u tzv. log dokumente koji koriste web urednicima za statistike analize. U praksi mnogi web serveri implementiraju i sljedee funkcije: Autorizacija: zahtjev za korisnikim imenom i lozinkom prije nego se dozvoli pristup dijelu ili cijelom resursu; Rukovanje sa statikim ili dinamikim sadrajima podravajui jedno ili vie suelja: SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP.NET, ServerAPI kao to je NSAPI ili ISAPI, itd... HTTPS podrka (SSL ili TLS) za sigurnu ifriranu konekciju na port 443 umjesto uobiajenog porta 80; Komprimiranje sadraja (npr. gzip kodiranje) da se smanji veliina odgovora; Virtualni hosting za opsluivanje mnogo web stranica koritenjem jedne IP adrese; Podrka velikim fajlovima ija je veliina vea od 2GB na 32-bitnim operativnim sistemima; BANDWIDTH THROTTLING limitiranje brzine odgovora u cilju da se ne zagui mrea i da se opslui vie klijenata.
3

U ovom radu koristie se Apache Web Server, u daljnjem tekstu server, open source projekt ali i snano komercijalno podran, koji predstavlja set internet baziranih usluga za web servere koji koriste sve vodee operativne sisteme.

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server Apache server zauzima trenutno pola svjetskog trita i najee je smjeten na nekoj Linux platformi zajedno sa MySQL-om, PHP/Perl/Python popularno nazvano LAMP.[1]

2. Instalacija web servera

Ideja ovog rada je da se kunom PC-u dodjeli dodatna funkcija web servera na kojem bi bilo smjeteno nekoliko web stranica. Za direktnu vezu sa internetom koristie se ADSL linija bez statike adrese. U ovom poglavlju bie opisani postupci instalacije osnovnog programskog paketa Apache-ja na Windows NT platformu, podeavanje ADSL router-a, firewall-a, otvaranje porta 80, koritenje usluge dinamikog DNS-a, te osnovna konfiguracija servera za virtual hosting i testiranje konekcije.

2.1. Instalacija Apache-ja na Windows NT platformu


Pod Windows NT platformom podrazumijevamo grupu operativnih sistema Microsoft Windows zasnovanih na NT jezgri. U ovom sluaju koristi se Windows XP operativni sistem koji je ve instaliran na raunaru. Prvo je potrebno skinuti sa Apache-jeve web stranice http://httpd.apache.org/download.cgi zadnju stabilnu instalaciju za Windows NT OS sa ekstenzijom msi, npr: apache_2.2.10-win32-x86no_ssl.msi i instalaciju zapoinjemo duplim klikom na fajl. Postupak instalacije ide dalje odabirom naina rada kao Windows service i default-nih vrijednosti koje emo poslije mijenjati pri konfiguraciji servera. Ako je instaliran Windowsov web server IIS - Internet Information Services (nije instaliran po default-u) potrebno ga je onemoguiti jer ne moe raditi zajedno sa Apache-jem. IIS moe raditi sa Apache-jem samo ako ne koriste isti port [3].

2.2. Podeavanje ADSL router-a


ADSL router koji podeavam proizveden je od strane Paradigm Technologies Inc (distribuiran uz ADSL paket usluga od strane domaeg ISP-a) i njemu emo pristupiti pomou nekog web browser-a koristei default-nu adresu: http://192.168.1.1 nakon ega je potrebno unijeti user name: admin i password: admin. Password je poeljno poslije promijeniti.
4

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server Potrebno je zatim otii na Advance Firewall Port Forwarding i unijeti nove vrijednosti tako da nakon snimanja vrijednosti i restartovanja routera unos izgleda kao na slici 1:

Slika 1. Otvaranje porta 80 na routeru U ovom sluaju IP adresa servera je 192.168.1.64 i koristi se defaultni port 80 koji nije blokiran od strane naeg ISP-a. U sluaju da je port blokiran morao bi se otvoriti neki drugi port i omoguiti usluga dinamikog DNS-a sa preusmjeravanjem porta ili birati port direktno sintaksom URL:port iz browser-a. Ovaj drugi nain rada, biranje nekog nestandardnog porta, je daleko sigurniji i pogodan za sve web servere koji ne slue za smjeaj web stranica ili usluga koje se javno koriste.

2.3. Podeavanje firewall-a


U svim programima tipa firewall koje koristimo na raunaru, najee je to samo Windows Firewall, treba provjeriti da li je otvoren defaultni port 80 za HTTP protokol. Preko Control Panela idemo u Windows Firewall gdje Exceptions moraju biti omogueni, a unutar Exceptions i Advanced, Web Server (HTTP) mora biti omoguen na portu 80 sa ukucanom IP adresom servera. Ako tih unosa nema potrebno ih je dodati. Nakon otvaranja bilo kojeg porta za bilo koju uslugu poeljno je testirati da li je navedeni port stvarno otvoren na router-u i u firewall-u. To emo najlake uraditi pomou neke web stranice koja prua tu uslugu besplatno. Npr. http://www.yougetsignal.com/tools/open-ports je samo jedna od mnogih web stranica koja nam omoguuje testiranje ovorenosti portova to je prikazano na slici 2.
5

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server

Slika 2. Testiranje otvorenosti porta Na kraju, potrebno je naglasiti da svaki otvoren port prema internetu predstavlja sigurnosnu prijetnju, posebno ako je to neki od standardnih portova, 21, 80, 3389 i sl. tako da treba voditi rauna o sigurnosti raunarskog sistema kojem smo praktino otvorili stranja vrata za sve mogue zlonamjerne skripte i programe. Stranice potencijalno tetnog sadraja obavezno treba posjeivati preko proxy-ja da se zadri anonimnost tj. sakrije IP adresa servera.

2.4. Koritenje usluge dinamikog DNS-a


S obzirom da pokreemo mali kuni web server bez statike IP adrese potrebno je omoguiti povezivanje domene sa IP adresom koja se mjenja svaki put kad se konektujemo na internet, pa ak i u toku rada. Postoje mnoge web stranice koje pruaju usluge takvog tipa od kojih je osnovni skup besplatan. Za ovaj rad koristim usluge http://www.no-ip.com gdje u registrirati tri razliite domene i vezati ih sa svojom dinamikom IP adresom pomou klijenta, programa koji je isto besplatan. No-IP DUC (Dynamic Update Client) program se pokree pri startovanju raunara i radi kao servis koji svakih par minuta aurira registrirane domene sa vanjskom IP adresom raunara. Praktino, surfer ne osjea razliku. Dostupna je i verzija klijenta za Linux. Dodatne usluge ovakvih dotcom firmi ukljuuju prenos vlastite domene na dinamiki DNS i menadment raznih serverskih usluga, POP3 mail i slino.

2.5. Konfiguracija Apache servera


U ovom poglavlju bie opisani postupci konfiguracije servera za smjetaj nekoliko web stranica koritenjem jedne IP adrese, popularno nazvano virtual hosting baziran na imenu. Prvo je potrebno konfigurisati server da slua port 80 i adresu naeg servera, koja je izabrana 192.168.1.64 (unutranja IP mora biti statika) i to emo uraditi sa direktivom Listen na sljedei nain: Listen 192.168.1.64:80 to je potrebno dodati u httpd fajl u direktoriju servera. Zatim je potrebno dodati administrativnu email adresu koju koristimo i ime servera koje moe biti statika vanjska IP adresa ili registrirana domena koja upuuje na IP adresu, to je ovdje sluaj:
6

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server ServerAdmin ilija.mrenica@gmail.com ServerName www.mrenica.no-ip.biz:80 (administrativna adresa) (default-na domena)

Za dodavanje virtualnih hostova na postojei web server, moramo kreirati <VirtualHost> blok i za postojeeg default-nog hosta, kao i za ostale domene koje e biti smjetene na serveru. ServerName i DocumentRoot ukljueni u dodani virtualni host trebaju biti isti kao globalni ServerName i DocumentRoot. Ovaj virtualni host se dodaje prvi u konfiguracijski fajl tako da bude default-ni[3]. Za nae tri domene dio koji moramo dodati u httpd konfiguracijski fajl izgleda ovako: NameVirtualHost 192.168.1.64:80 <VirtualHost 192.168.1.64:80> ServerName www.mrenica.no-ip.biz:80 ServerAlias mrenica.no-ip.biz *.mrenica.no-ip.biz DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" </VirtualHost> <VirtualHost 192.168.1.64:80> ServerName www.dxn.hopto.org:80 ServerAlias dxn.hopto.org *.dxn.hopto.org DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/Sites/dxn.hopto.org" </VirtualHost> <VirtualHost 192.168.1.64:80> ServerName www.e.3utilities.com:80 ServerAlias e.3utilities.com *.e.3utilities.com DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/Sites/e.3utilities.com" </VirtualHost> gdje su domene koje koristimo sljedee: http://mrenica.no-ip.biz http://dxn.hopto.org http://e.3utilities.com Da bi sve radilo ispravno web stranice trebaju biti smjetene u gore navedene direktorije i moraju imati poetnu index.html stranicu. Provjeru uneene sintakse uradiemo sa httpd S iz Apache-jevog bin direktorija i ako nema greaka poeemo provjeravati jednu po jednu domenu browser-om. Provjeravanje domena moemo izvriti sa unutranje strane router-a na sljedei nain npr: http://192.168.1.64/sites/dxn.hopto.org ili sa vanjske strane router-a koristei samo ime domene npr: http://dxn.hopto.org ali preko nekog proxy servera npr. http://www.internetproxy.net jer emo samo u tom sluaju, sa vanjske strane router-a dobiti na web server i domenu koju traimo, dok sa unutranje strane routera dobijamo uvijek router.
7

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server Index.html fajlovi se trebaju napraviti razliiti i pomou dva gore navedena naina testiranja moemo lako ispitati rad servera i utvrditi gdje je greka ako je ima. Moe se uraditi i reverzna provjera za server na gore navedenoj stranici http://www.yougetsignal.com/tools/web-sites-on-web-server koja e za ime neke od domena dati sve domene koje su smjetene na istom web serveru. Rezultat ove usluge ne mora biti taan, ali u ovom sluaju jeste i prikazan je na slici 3.

Slika 3. Reverzna provjera domene

3. Konfigurisanje ostalih WAMP komponenata


Web server na Linux platformi se naziva popularno LAMP server, analogno tome WAMP server je takav isti ali na Windows platformi. Ostale komponente koje je potrebno instalirati i konfigurisati pored Apache-ja su PHP/Perl/Python i MySQL. Odabraemo PHP i MySQL za ovu verziju WAMP servera. PHP i MySQL se smatraju najpopularnijim Apache modulima, oba su besplatni ali i komercijalno podrani i danas se oekuje od svakog servera da podrava te module.

3.1. Konfiguracija servera za PHP


PHP je skriptni programski jezik dizajniran za stvaranje dinamikih web stranica na serveru, meutim evoluirao je do suelja u komandnoj liniji i moe biti koriten u samostalnim grafikim aplikacijama[1]. PHP je naroito pogodan za izradu web stranica jer njegov kod moe biti ugraen u HTML. Sam postupak instalacije na postojei Apache server i Windows platformu moe biti brzo odraen ako se koristi msi (Microsoft Installer) verzija. Meutim, PHP grupa ne preporuuje koritenje te verzije za rad na javnim serverima zbog sigurnosti servera kao ni gotove WAMP instalacije[5]. Preporuuje se skidanje zip fajla te manualna instalacija i konfiguracija. Ovdje koristim zadnju radnu verziju PHP-5.2.6 skinutu sa stranica PHP Grupe http://www.php.net/downloads.php. Zip fajl potrebno je raspakovati u novo kreirani direktorij c:/php. Zatim idemo u Control Panel System Advanced dodati dvije nove Environment varijable: User varijabla: PHPRC sa vrijednou c:\php System varijabla dodana u PATH: ;c:\php Nakon ovoga se mora restartovati raunar da bi promjene bile vaee.
8

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server U c:\php se nalaze dva php.ini fajla, dist i recommended, recommended kao to mu samo ime govori je onaj koji autori preporuuju za standardne instalacije, pa emo njega otvoriti i snimiti pod imenom php.ini i to e biti glavni konfiguracijski fajl za PHP. Unutar php.ini datoteke, u sekciji Paths and Directories, treba je nai dio gdje pie doc_root = i dodati tu DocumentRoot web servera pa e taj redak u naem sluaju izgledati ovako: doc_root = C:/Program Files/Apache Software Foundation/Apache2.2/htdocs Sad je PHP instaliran na maini i potrebno ga je povezati sa Apache serverom, to emo uraditi na sljedei nain. U httpd konfiguracijskom fajlu Apache servera potrebno je dodati sljedea tri retka koji slue za uitavanje PHP modula, ekstenzije i upuuju na direktorijj gdje je php.ini: LoadModule php5_module "C:/php/php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php" Nakon ovog potrebno je restartovati raunar. Potrebno je napraviti jednu hello world php stranicu za potrebe testiranja pa emo slijedei kod snimiti kao hello.php u DocumentRoot servera: <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html> Provjeru ispravnosti konfiguracije moemo izvriti browser-om lokalno sa: http://192.168.1.64/hello.php i preko proxy-ja sa: http://mrenica.no-ip.biz/hello.php. Za dobro konfigurisan server browser e ispisati Hello World na praznoj stranici, a sve ostalo znai greku u konfiguraciji. Detaljnije parametre konfiguracije moemo dobiti ako testiramo php stranicu koja e sadravati sljedei kod, tj. poziv ugraene funkcije phpinfo(): <?php phpinfo( ); ?> Ako se koristi PHP verzija 5 ili vie poeljno je u php.ini nai dio koji odreuje vremensku zonu servera i ukucati tekst koji odgovara naoj vremenskoj zoni: date.timezone = Europe/Paris
9

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server

3.2. Konfiguracija servera za MySQL


MySQL je menadment software za relacione baze podataka firme MySQL AB dio Sun Microsystem korporacije koji podrava viekorisniki pristup bazama podataka smjetenih na serveru[6]. Koristiemo zadnju verziju MySQL 5.0 skinutu sa stranica firme http://www.mysql.com koja se jednostavno instalira kao svaki Windows program. Prilikom instalacije biramo default-ne vrijednosti i opciju da program radi kao Windows servis. Omoguujemo otvaranje jednog od 4 ponuena porta npr. port 3306 i dozvoljavamo izuzetak za taj port u Windows Firewall-u. Odabiremo i opciju da stavimo password na root jer e server biti otvoren prema intenetu. Provjeru konfiguracije vrimo sa sljedeim DOS komandama iz MySQL bin direktorija: mysql u root p mysql status \s Dalje je potrebno vezati PHP i MySQL i tako php-mysql.dll mora biti omoguen u php.ini datoteci, pa emo nai unutar php.ini unos za ekstenzije koji nakon dodavanje lokacije direktorija za ekstenzije treba izgledati ovako: extension_dir = C:/php/ext Sad emo nai u php.ini sekciju Dynamic Extensions i skinuti komentar sa svih redova koji poinju sa extension ime omoguujemo da ekstenzije budu uitane automatski, pa emo nakon restartovanja servera i poziva test.php iz browser-a dobiti dodatne stavke. Dalje moemo instalirati pomone ali vrlo korisne alate za MySQL: MySQL GUI tools (Administrator i Query Browser) i MySQL Workbench ili phpMyAdmin koji e nam znatno olakati posao oko kreiranja i ureivanja baza podataka smjetenih na naem serveru. Svi navedeni alati su besplatni. S obzirom da je od navedenih alata phpMyAdmin najpopularniji, kao server-side alat, i koristi se na veini web servera opisau postupak njegove instalacije i konfiguracije.

3.3. Konfiguracija servera za phpMyAdmin


Posljednju stabilnu verziju potrebno je skinuti sa web stranica autora ovog programa http://www.phpmyadmin.net i raspakovati je u novokreirani folder phpMyAdmin unutar direktorija htdocs Apache servera. Zatim treba napraviti datoteku config.inc.php kopiranjem datoteke config.sample.inc.php. U novokreiranoj datoteci sadrane su defult postavke i treba unijeti nekoliko promjena: u dijelu $cfg['blowfish_secret'] = ' '; unutar navodnika unijeti sluajnu kombinaciju slova i brojeva (ne mora se pamtiti, slui za cookie identifikaciju) Autor: Ilija Mrenica, ing.el.

10

Uputstvo za kuni Web server

i u dijelu Authentication type promijeniti gdje treba vrijednosti da odgovaraju parametrima servera i omoguiti koritenje mysqli ekstenzije: $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = '192.168.1.64'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; /* Select mysqli if your server has it */ $cfg['Servers'][$i]['extension'] = 'mysqli';

Datoteku config.php.inc je potrebno kopirati u prazni config direktorij koji smo prethodno napravili i restartovati web server. Uvijek se preporuuje zaustavljanje i ponovno pokretanje servera radije nego restartovanje. Testiranje konfiguracije izvriemo pomou browser-a kucajui sljedeu adresu: http://192.168.1.64/phpMyAdmin/index.php i trebamo nakon logiranja dobiti prikaz kao na slici 4.

Slika 4. phpMyAdmin - ispravna konfiguracija Isti prikaz trebamo dobiti i sa vanjske strane routera preko proxy-ja kucajui u browser npr. http://mrenica.no-ip.biz/phpMyAdmin/index.php to znai da imamo na raspolaganju administrativni alat za kreiranje i ureivanje baza podataka na samom serveru. U svrhu testiranja koristei phpMyAdmin kreirau gostujueg korisnika i bazu podataka 'kolege' sa jednom tabelom 'adresar' i sljedeim poljima: id, ime, prezime, telefon i email koje u napuniti sa tri zapisa. Koristei sljedei PHP kod snimljen kao adresar.php u Apache htdocs direktorij povezau se sa bazom podataka i izlistati podatke u njoj koristei browser. Autor: Ilija Mrenica, ing.el.

11

Uputstvo za kuni Web server

<html><head><title>Adresar uposlenika</title></head><body> <?php $db_host = '192.168.1.64:3306'; $db_user = 'guest'; $db_pwd = ' '; $database = 'kolege'; $table = 'adresar'; if (!mysql_connect($db_host, $db_user, $db_pwd)) die("Ne mogu se povezati na bazu podataka..."); if (!mysql_select_db($database)) die("Ne mogu selektirati bazu podataka..."); // slanje upita $result = mysql_query("SELECT * FROM {$table}"); if (!$result) { die("Upit nad tabelom nije mogue prikazati..."); } $fields_num = mysql_num_fields($result); echo "<h1>Table: {$table}</h1>"; echo "<table border='1'><tr>"; // ispisivanje header-a tabele for($i=0; $i<$fields_num; $i++) { $field = mysql_fetch_field($result); echo "<td>{$field->name}</td>"; } echo "</tr>\n"; // izlistavanje redova tabele while($row = mysql_fetch_row($result)) { echo "<tr>"; // $row je niz... foreach( .. ) ispisuje svaki element // reda $row u $cell variajablu foreach($row as $cell) echo "<td>$cell</td>"; echo "</tr>\n"; } mysql_free_result($result); ?> </body></html>

12

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server Rezultat je prikazan na slici 5.

Slika 5. Povezivanje na bazu podataka PHP-om

3.4. Konfiguracija servera za FTP


FTP ili File Transfer Protokol slui za prenos dokumenata sa jednog raunara na drugi i neizostavan je dio svakog servera s obzirom na ogromnu potrebu za takvim servisom. Apache ima beta testnu verziju modula mod.ftp.so za iju sam konfiguraciju procijenio da bi trebalo mnogo vremena uz neizvjestan rezultat. Isti modul su neke firme (Covalent) razvile i ugradile u svoja gotova komercijalno dostupna serverska rjeenja. U potrazi za open-source FTP serverom koji radi na Windows platformi naiao sam na besplatni, ali vrlo pouzdan FileZilla FTP server koji se instalira kao exe fajl. U toku instalacije izabire se unutranja ponuena IP adresa servera: 127.0.0.1 i unutranji port 14147. Nakon toga pokreemo aplikaciju i dalje podeavamo postavke programa, router-a i Windows Firewalla na sljedei nain: Port 21 za FTP mora biti selektiran u postavkama programa i isto tako otvoren na router-u i u Windows Firewall-u. Za Passive Mode Settings portovi 5000 i 5001 moraju biti ukljueni, a na router-u i u Firewall-u moraju biti otvoreni. U dokumentaciji se preporuuje i program nudi raspon portova 5000-5100, meutim, Windows Firewall nema opciju unosa raspona portova, nego se svaki mora unositi posebno. Zato emo otvoriti samo prva dva porta, 5000 i 5001.
13

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server U Passive Mode Settings, s obzirom da koristimo dinamiki DNS, biramo opciju Retrieve external address from gdje kucamo naziv glavne dinamike domene iz htdocs, u ovom sluaju to je http://mrenica.no-ip.biz. Ne koristimo eksternu IP za lokalne konekcije i biramo Custom port range: 5000-5001. Omoguujemo Mode Z protokol za kompresovani transfer dokumenata, ali ne unutar lokalne mree da ne optereujemo CPU.

Sve postavke imaju objanjenje sa desne strane tako da je ostale postavke lako namjestiti po potrebi, glavne su postavke objanjene. Nakon namjetanja postavki potrebno je napraviti jedan korisniki raun i odrediti neki direktorij za download, te odrediti privilegije tog korisnika tj. ta mu je dozvoljeno raditi u tom direktoriju. Npr. ja sam postavio user-a guest bez passworda na direktorij e:/muzika gdje se nalaze mp3 datoteke i tu dozvolio samo download. U svrhu testiranja pozvao sam kolege da skinu malo besplatne muzike. Pristup ide FTP klijentom preko DDNS-a: ftp://mrenica.no-ip.biz. Brzina download-a sa servera je ograniena brzinom upload-a ADSL-a to kod nas iznosi 10 puta asimetrinih 25,6kB/s. Program FileZilla ima i podrku za SSL-TLS ijim koritenjem moemo uspostaviti enkripciju nad fajlovima koji se razmjenjuju uz pomo certifikata to moe biti vrlo korisno. Sigurnosni problem kod FTP servera je download u ASCII formatu pa na to treba obratiti panju ako FTP postane zauzet, kao i na raspon portova za pasivni transfer.

3.5. Konfiguracija servera za WebDAV


WebDAV ili DAV (Document Authoring and Versioning) je protokol ili ektenzija HTTP protokola sa novim metodama koji omoguavaju DAV klijentu da kreira, mjenja i aurira dokumente smjetene na serveru. Klijent ima pristup meta podacima, kao to su autor, datum kreiranja dokumenta te moe zakljuati dokument za editovanje[2]. Integracija DAV-a sa HTTP-om omoguava koritenje postojeih svojstava HTTP-a kao to su SSL za enkripciju i autentikaciju certifikatima, proxy i ostalo, a integracija sa Apache serverom dozvoljava mnoge druge mogunosti kao to su kontrolni mehanizmi za djeljenje pristupa i interakcija sa skriptnim jezicima, npr. PHP i Perl. Neki vide DAV protokol kao fajl sistem pogodan za internet, drugi kao protokol koji prua esencijalnu podrku virtualnim softverskim poduzeima, a trei kao standardni pristupni sloj za sve repozitorije pohrane koji e potpuno istisnuti iz upotrebe FTP protokol. Pored toga to DAV proiruje postojee HTTP metode GET i PUT, DAV protokol definira sljedee nove HTTP metode: COPY (kopira dokumente)
14

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server MOVE (premjeta dokumente) MKCOL (kreira novu kolekciju) PROPFIND (radi upit nad meta podacima) LOCK-UNLOCK (zakljuava-otkljuava resurs)

Konfiguracija DAV-a za Apache je iznimno jednostavna s obzirom da je Apache-jev modul mod_dav spreman za uitavanje pa potrebno je samo uiniti par izmjena u httpd.conf fajlu Apache servera. Potrebno je skinuti komentar sa sljedeih linija u httpd.conf i time omoguiti uitavanje modula: LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so Zatim je potrebno dodati liniju koda s kojom emo postaviti dav_lock bazu podataka unutar logs direktorija servera i tu e biti smjetene informacije o akviziciji i otputanjima resursa: DavLockDB logs/dav_lock_db Nakon toga manualno kreiramo direktorij davdocs u direktoriju htdocs Apache servera, a unutar httpd, conf postavimo putanju na njega to bi vailo i za <VirtualHost> kontejnere ako omoguujemo DAV u vie razliitih domena: <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/davdocs"> Dav On </Directory> Postaviemo za izabrani direktorij read-only pravo pristupa na sljedei nain: <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/davdocs"> Dav On <LimitExcept GET POST OPTIONS PROPFIND> Order allow,deny Deny from all </LimitExcept> </Directory> Na kraju emo runo ubaciti par fajlova u direktorij i testirati unutar lokalne i sa vanjske mree koristei Network Places Add New Network Place kao to je to prikazano na slici 6.

15

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server

Slika 6. DAV folder unutar lokalne mree Uz upotrebu gore spomenutih pogodnosti enkripcije i identifikacije, sigurno je da WebDAV predstavlja vrlo zanimljivo korporativno rjeenje.

4. Zakljuak
Ovaj rad predstavlja uputstvo za brzo postavljanje osnovnih servisa WAMP i FTP servera koritenjem dinamikog DNS-a. Iako ovakav servis moe posluiti kao okruenje za testiranje PHP-a i MySQL-a i openito za razvoj web aplikacija preporuujem puno jednostavniju i bru instalaciju XAMPP servera. Nadogradnju ovog rada vidim dalje u sljedeim aktivnostima uglavnom vezanim za proirenje mogunosti i podizanje ukupnog nivoa sigurnosti instaliranog Apache servera: postavljanje osnovnih ogranienja pristupa korisnika i grupa (mod_auth modul) menadment korisnikog prostora (Mod_bandwidth modul) uspostavljenje enkripcijskih protokola (SSH i SSL) postavljanje proxy servera (mod_proxy modul)

Sve gore navedene aktivnosti bi u stvari trebale posluiti samo kao uvod, tj. sticanje osnovnih znanja, za administraciju nekog profesionalnog servera baziranog na Linux platformi.

16

Autor: Ilija Mrenica, ing.el.

Uputstvo za kuni Web server

5. Literatura

[1] Wiki online enciklopedia http://en.wikipedia.org/wiki/Wiki [2] Learn Apache in 24 hours Arthur Knowles [3] Apache Cookbook Ken Coar i Rich Bowen [4] Apache HTTP Server Online Documentation http://httpd.apache.org/docs/2.2 [5] The PHP Group http://php.net [6] Sun Microsystems MySQL http://dev.mysql.com

17

Autor: Ilija Mrenica, ing.el.

You might also like