07.06.2015 Views

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

S O F T W A R E<br />

DAV – jednoduchšia správa webu pod Apache<br />

Ak jedno WWW sídlo spravuje viac ¾udí, <strong>na</strong>vyše z rôznych miest <strong>na</strong> internete,<br />

zákonite vznikajú problémy. Najmä administrátori škol<strong>sk</strong>ých sietí to iste poz<strong>na</strong>jú:<br />

pokým je webmaster v škole, môže s WWW stránkami pracova <strong>na</strong>príklad cez<br />

Sambu ve¾mi elegantne. Ako ho však vpusti k stránkam, ak ich chce editova z<br />

domu? Ak mu urobíme obyèajné prístupové konto, potom bude musie by v nejakej<br />

osobitnej <strong>sk</strong>upine, ktorá môže editova WWW stránky. Navyše po každom<br />

uploade nových stránok im bude musie zrejme zmeni prístupové práva, pritom<br />

bude stále vlastníkom všetkých dokumentov, ktoré zmenil (je lepšie, keï tieto<br />

dokumenty patria tomu UID, pod ktorým beží webový server). Z takéhoto postupu<br />

bude otrávený èo<strong>sk</strong>oro aj webmaster, aj správca servera.<br />

Ove¾a krajšie riešenie nám ponúka protokol DAV – Distributed Authoring<br />

and Versioning. DAV je rozšírením klasického protokolu HTTP o metódy,<br />

vïaka ktorým je možné editova , vytvára èi odstraòova dokumenty z<br />

WWW sídla priamo cez webový server. V zásade je DAV dodefinovanie<br />

operácií typu „vytvor súbor, zmaž súbor, vytvor adresár, zmaž adresár atï.“<br />

<strong>na</strong>d protokolom HTTP. Nám vïaka tomu odpadajú starosti s vlastníkom èi<br />

právami súborov, to si ustráži webový server sám. V súèasnosti podporuje<br />

DAV viacero webových serverov, my sa v tomto èlánku pozrieme <strong>na</strong> podporu<br />

DAV pod Apache.<br />

INŠTALÁCIA, KOMPILÁCIA, KONFIGURÁCIA. Apache 1.3.x samostatne<br />

nepodporuje protokol DAV. Na jeho podporu potrebujeme modul mod_dav,<br />

ktorý je možné nájs <strong>na</strong> http://<strong>www</strong>.webdav.org/mod_dav. V èase písania tohto<br />

èlánku bola k dispozícii verzia modulu 1.0.3, ktorá vyžadovala Apache 1.3.6<br />

alebo novší.<br />

Inštalácia je v<strong>sk</strong>utku jednoduchá: po rozbalení archívu so zdrojovými textami<br />

staèilo zada príkaz ./configure —with-apxs=, potom<br />

make a <strong>na</strong> konci make install.<br />

Pred použitím DAV je potrebné upravi dvoma direktívami konfiguráciu<br />

Apache v súbore httpd.conf. Predovšetkým do všeobecnej èasti httpd.conf je<br />

potrebné prida direktívu DAVLockDB. Touto direktívou sa <strong>na</strong>stavuje meno<br />

súboru, kde si bude mod_dav uklada informácie o uzamknutých súboroch<br />

(aby nemohlo viac ¾udí <strong>na</strong>raz editova jeden súbor; uzamykanie však musí podporova<br />

aj editor). Odporúèa sa vytvori adresár var niekde pod adresárom<br />

ServerRoot a uzamykacie súbory uklada doò. Napríklad:<br />

ServerRoot /usr/local/apache<br />

...<br />

DAVLockDB /usr/local/apache/var/davlock<br />

Meno súboru pri direktíve DAVLockDB nemá obsahova príponu. Adresár,<br />

do ktorého sa budú uklada uzamykacie súbory, musí ma <strong>na</strong>stavené prístupové<br />

práva tak, aby v òom mohol Apache vytvára a prepisova súbory.<br />

Ïalšia direktíva sa volá jednoducho DAV. Môže by <strong>na</strong>stavená <strong>na</strong> On alebo<br />

Off a pomocou nej sa zapí<strong>na</strong> alebo vypí<strong>na</strong> možnos prístupu cez DAV. Direktíva<br />

DAV môže by uvedená buï vo všeobecnej èasti súboru httpd.conf (potom sa<br />

prístup cez DAV umožní k celému WWW sídlu), alebo vnútri ktoréhoko¾vek<br />

bloku , alebo , potom je jej pôsobnos<br />

obmedzená len <strong>na</strong> tento blok.<br />

Pozornému èitate¾ovi by teraz mohla zís <strong>na</strong> um námietka: „Keï povolím prístup<br />

k môjmu webu cez DAV, potom tam predsa bude môc hocikto èoko¾vek<br />

zmeni !“ Ve¾mi správne – ak necháme konfiguráciu v tomto stave, potom sme<br />

svoj web otvorili celému svetu.<br />

Protokol DAV nemá vo svojej špecifikácii stanovené, akým spôsobom sa majú<br />

používatelia autorizova . Autorizácia je ponechaná <strong>na</strong> réžii webového servera.<br />

Inými slovami, prístup cez DAV môžeme v Apache obmedzova rov<strong>na</strong>kým spôsobom,<br />

akým sa obmedzuje prístup používate¾ov k vybraným stránkam.<br />

Najlepšie bude uvies príklad:<br />

Alias „/ma<strong>na</strong>ge“ „/var/<strong>www</strong>“<br />

<br />

DAV On<br />

AddType text/plain .php .php3<br />

AuthType Basic<br />

AuthName „Web Ma<strong>na</strong>gement Area“<br />

AuthUserFile /usr/local/apache/private/htpass<br />

require user webmaster<br />

<br />

Predpokladajme, že náš web je uložený pod adresárom /var/<strong>www</strong>. Vytvorili<br />

sme si pre tento adresár ešte jeden alias s menom /ma<strong>na</strong>ge. Vnútri tohto aliasu<br />

sme povolili prístup cez DAV, ale zároveò sme povedali, že k tomuto aliasu,<br />

a teda aj k rozhraniu DAV má prístup iba používate¾ webmaster. Používate¾ovi<br />

webmasterovi musíme teraz vytvori prístupové meno a heslo. Predpokladám,<br />

že už existuje súbor /usr/local/apache/private/htpass, kam sa ukladajú prístupové<br />

mená a heslá pre Apache. Potom príkazom<br />

htpasswd /usr/local/apache/private/htpass webmaster<br />

používate¾ovi webmasterovi vytvoríme „konto“, ktoré musí pri ma<strong>na</strong>žovaní webu<br />

použi .<br />

Dôvod použitia direktívy AddType objasním ne<strong>sk</strong>ôr.<br />

MÁME DAV... A ÈO S NÍM? Závisí to od toho, pod akým operaèným<br />

systémom chceme <strong>na</strong>še stránky spravova . Otvorene sa priznávam, že som<br />

ne<strong>na</strong>šiel ve¾a aplikácií pod Linuxom, ktoré by <strong>na</strong>tívne DAV podporovali.<br />

Existuje však priamo driver do kernelu, ktorý umožòuje primontova dokumenty<br />

spravovate¾né cez DAV z webu rov<strong>na</strong>ko, ako si primontujem CD alebo<br />

di<strong>sk</strong>etu, keï s òou plánujem pod Linuxom pracova . Potom môžem spravova<br />

dokumenty <strong>na</strong> DAV serveri z hocijakej aplikácie.<br />

Tento driver – davfs – sa dá zí<strong>sk</strong>a <strong>na</strong> http://dav.sf.net. Po rozbalení archívu<br />

zdrojových textov a <strong>sk</strong>onfigurovaní príkazom ./configure —with-kernel= a <strong>na</strong>inštalovaní príkazom make install sa vytvorí<br />

nový modul jadra, automaticky sa pridá k ostatným modulom, zároveò zí<strong>sk</strong>ame<br />

nový príkaz mount.davfs. Týmto príkazom je možné pripoji si dokumenty<br />

z DAV spravovate¾ného webového servera. Vrátim sa k predošlému príkladu s<br />

lokalitou /ma<strong>na</strong>ge: mount.davfs http://<strong>na</strong>s.server.<strong>sk</strong>/ma<strong>na</strong>ge/ /mnt.<br />

Je dôležité písa úplné URL a <strong>na</strong> konci URL musí by lomka. Po tomto príkaze<br />

sa môže (pod¾a toho, èi server požaduje autorizáciu) objavi prihlasovací dialóg, a<br />

ak zadané meno a heslo vyhovujú, máme zrazu cez adresár /mnt prístup k dokumentom<br />

<strong>na</strong> <strong>na</strong>šom serveri. Môžeme ich editova , upravova , prepisova , maza èi<br />

vytvára úplne bez problémov. V <strong>sk</strong>utoènosti komunikácia medzi <strong>na</strong>mi a Apache<br />

beží pomocou protokolu HTTP, rozšíreného o metódy DAV.<br />

Teraz treba vysvetli , preèo som v predošlom príklade lokality /ma<strong>na</strong>ge<br />

použil direktívu AddType. Vysvetlím to však z opaèného konca: keby sme ju<br />

nepoužili, nemohli by sme editova zdrojové texty PHP <strong>sk</strong>riptov. Namiesto<br />

zdrojového textu by sme vždy dostali len jeho výstup. To preto, lebo <strong>na</strong><br />

operáciu èítania sa používa obyèajné HTTP volanie „GET“, <strong>na</strong> ktoré Apache<br />

zareaguje tak, ako sa vlastne aj patrí – spustí PHP <strong>sk</strong>ript a pošle nám jeho<br />

výstup. Keïže sme však direktívou AddType Apache povedali, že súbory s príponou<br />

.php sú obyèajné textové súbory, nebude ich spúš a , ale dá nám<br />

rovno ich obsah – a to je to, èo práve chceme. Zdôrazòujem, že podobné<br />

opatrenie je potrebné spravi pre všetky dy<strong>na</strong>mické dokumenty <strong>na</strong> serveri,<br />

ktorých zdrojové texty chceme editova , a to nezávisle od toho, èi ich budeme<br />

editova pod Linuxom alebo pod iným OS.<br />

Svet Microsoftu je <strong>na</strong> tom o nieèo lepšie. Internet Explorer od verzie 5.0 podporuje<br />

tzv. Web Folders, èo nie je niè iné ako DAV spravovate¾né stránky. Ak<br />

máte <strong>na</strong>inštalovaný MSIE 5.0 a vyššie, otvorte okno Tento poèítaè a h¾adajte<br />

Prieèinky siete WWW. Po poklikaní <strong>na</strong> túto ikonu sa otvorí nové okno. V òom<br />

kliknite <strong>na</strong> Add New Folder, vyplòte potrebné okienka, a ak je všetko v poriadku,<br />

mali by ste ma možnos k vašim dokumentom pristupova cez Prie<strong>sk</strong>umníka<br />

ako k lokálnym súborom.<br />

Naschvál som <strong>na</strong>písal, „ak je všetko v poriadku“. Hoci totiž dokumentácia<br />

MS hovorí nieèo iné, ja som sa cez MSIE 5.5 nemohol <strong>na</strong> svoje zložky DAV<br />

dosta . Pod¾a informácií, ktoré som <strong>na</strong>šiel <strong>na</strong> internete, by mala MSIE 5.0 fungova<br />

, rov<strong>na</strong>ko aj Office 2000 a Office XP.<br />

ZÁVER. Verím, že mnohí z vás si spomí<strong>na</strong>jú <strong>na</strong> proprietárne riešenie Frontpage<br />

Server Extensions, ktoré dovo¾ovalo z prostredia Windows ma<strong>na</strong>žova<br />

webové sídla. DAV je a<strong>na</strong>logické, no otvorené riešenie. Ak bude podpora DAV<br />

zo strany MS lepšia (a pod¾a všetkého sa lepší), potom DAV podpora v Apache<br />

urèite ušetrí mnoho problémov a starostí tak webmasterom, ako aj správcom<br />

serverov.<br />

Peter Palúch<br />

112 PC REVUE 12/2001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!