Základy nastavení serveru

aneb suchá teorie

Obecně - Kořenový adresář - Startovní soubor - Procházení souborů - Subdomény - Přístup na heslo - Přesměrování - Logování (sledování provozu) - Patičky - Ošetření chyb - Spouštění programů - FTP přístup - FrontPage Extensions

Obecně

Server jsou dvě věci: 

Ten počítač má nastavenou nějakou IP a doménovou adresu (www.něco.cz) a je zajímavý i z jiných hledisek (například se nevypíná:-). 

Softwarový server je například:

U každého doménového jména webu se dají na serveru nastavit některé věci. Hlavní ale je, že se to v každé verzi softwarových serverů dělá jinak.

Na Apachi si správce upravuje soubor httpd.conf a uživateli někdy dovolí některá nastavení přenést do soboru .htaccess, který je vedle souborů stránek a autor si je spravuje sám.

V IIS a PWS pod Windows jsou na to grafické prográmky, tam se dají nastavit věci i pro jednotlivé složky. Většinou to musí udělat správce serveru nebo prostě někdo, kdo na to má práva, ale není to nic těžkého (když se ví jak).

Poznámka o správci serveru pro ty, kdož jimi nejsou:

Smiřte se s tím, že správce vašeho serveru je polobůh. Mluvte s ním slušně, prokazujte mu úctu a chvalte ho. Následující text vám může pouze naznačit, co po svém polobohovi můžete chtít. Pokud polobožstvo nebude nakloněno, máte smůlu.

Jiná situace by měla být, pokud si hosting platíte. Pak by měl správce vycházet vstříc. Měl by :-)

Použité příklady

Jako příklady uvádím nastavení serveru Apache. V jiném velmi rozšířeném Internet Information Serveru jsou to grafická okna, která se mi sem nechce natahovat.

Kořenový adresář

V první řadě se na serveru nastavuje kořenový adresář (root), v jehož podadresářích (neboli složkách) jsou vlastní internetové stránky. Server pak ví, na jakém místě na svém normálním disku má stránky hledat.

Na Apachi je to v konfiguračním souboru httpd.conf řádek DocumentRoot, např.

DocumentRoot "/apache/htdocs" nebo 
DocumentRoot "c:/www"

Jméno startovního souboru

Doporučuji neměnit, ale dá se to. Na některých serverech musejí mít všechny složky jméno společné. Většinou to bývá index.html či default.htm. Zpravidla je to více různých jmen -- když server nenajde první, hledá druhý atd. 

Na Apachi se to dělá několika řádky do httpd.conf instrukcí DirectoryIndex, např.: 

<IfModule mod_dir.c>
DirectoryIndex index.html default.htm index.php
</IfModule>

To IfModule se většinou vynechává, protože mod_dir.c bývá ve všech instalacích.

Jméno startovního souboru si autor může upravit v .htaccess (je-li povoleno). Příklad syntaxe:

DirectoryIndex start.html

Procházení souborů 

Pokud složka neobsahuje startovní soubor, vypíší se jména souborů a složek. Pokud není directory listing povoleno, server prohlížeči nahlásí chybu 403 jako že "Nemáte oprávnění ..." nebo prostě "Forbiden". 

Procházení souborů se ve win-terminologii jmenuje directory listing, na Apachi je to indexing. Na IIS je implicitně vypnuté, na Apachi zapnuté.

V .htaccess se dá nastavit procházení adresářů takto:

Options +Indexes

Nebo naopak procházení zakázat:

Options -Indexes

Subdomény

Pokud vlastníte třeba doménu www.něco.cz, můžete si zvolit, že nějaký adresář na serveru (klasicky nějaký podadresář) se bude zobrazovat (mapovat) jako třeba http://cokoliv.něco.cz. Jinými slovy, v rámci své domény druhé úrovně můžete zřizovat domény úrovně třetí. Taky se tomu říká subdomény. Na Apachi se to tuším dělá direktivou VirtualHost, ale fakt nevím. Za subdomény se někde platí.

Práva pro přístup na heslo

Zdaleka ne na všech serverech si můžete nastavit, že čtení nějaké složky bude na heslo. A i pak to funguje jenom na serverech, které mají dobře nadefinované skupiny uživatelů. Na Apachi se do dělá pomocí souborů .htaccess a nějakým divným generováním hesel, moc tomu nerozumím. Lepší je napsat si to v PHP nebo použít tajnou adresu (více možností).

Automatické přesměrování

Opět funguje jenom někde. Ale je to lepší, než pro totéž používat meta tagy nebo javascript, protože to dělá rovnou server. Více o různých možnostech přesměrování.

Logování (sledování provozu)

Správce serveru si může nastavit, že bude sledovat, kdy a z jaké IP adresy si vaše stránky někdo čte. Většinou se to ale nedělá, protože to plní disk serveru mnoha zbytečnými daty.

Na disku serveru se někde vytvoří soubory .log, které obsahují datum, čas, adresu stránky, IP adresu klienta a metodu přístupu, někdy i adresu, odkud klient přišel. 

Na Apachi to vypadá nejčastěji takto: 

LogFormat "%h %l %u %t \"%r\" %s %b" common
CustomLog logs/access.log common

LogFormat nastavuje, jak bude vypadat složení položek, CustomLog určuje soubor, kam se to bude zapisovat (common je jméno formátu).

Je docela těžké potom z těch .log souborů potom získat nějakou kloudnou informaci o přístupu na stránky, mimo jiné protože jsou hrozně veliké. Nejlepší způsob je použít nějak intelignetně unixové příkazy grep, sort, cut, uniq a podobné. Primitivnější způsob je nainportovat je třeba do Excelu a prohlížet pomocí kontingenčních tabulek (v nabídce Data).

Nastavíte-li pro celý web logování, může se (na IIS) hodit nějakou podsložku vypnout. Nejčastěji se vypínají složky s pomocnými soubory a obrázky. V Apachi to myslím nejde.

Patičky

Všiml jsem si u IIS, že dokáže vkládat na konec každé stránky kus html kódu z určeného souboru, ale prakticky jsem to nezkusil. Apache to umí pomocí SSI, musí se to zapnout, nevím jak.

Ošetření chyb

Nejčastější chyba je 404 - stránka nenalezena. Dá se nastavit, že v případě této chyby server načte konkrétní stránku, která se pošle klientovi. Na serveru Apache stačí přidat jeden řádek do globálního souboru httpd.conf, nebo si to každý autor udělá sám v souboru .htaccess:

ErrorDocument 404 /missing.html

Samozřejmě si můžete nechat zobrazit libovolnou jinou stránku. V tomto příkladě se ten soubor s informací o chybě se jmenuje missing.html a je v kořeni stránek (a tedy společný pro celou doménu). Vizte návod na ErrorDocument pro Apache. Na IIS nevím, jak se to nastavuje, ale jde to. Podobně lze ošetřit i jiné chyby, ne pouze 404 stránka nenalezena.

Spouštění programů

Z bezpečnostních důvodů bývá v každé složce zpravidla vypnuto. Hodí se pouze v případě, že používáte CGI skripty, SHTML, ASP nebo PHP, prostě nějaké serverové programy.  (Pro ASP má server IIS ještě speciální volbu Allow Scripts.) Bývá zvykem mít pro takové programy vyhrazený jediný adresář, ve kterém je povoleno jejich spouštění, většinou se jmenuje cgi-bin.

(Nic z toho se netýká skriptů na klientovi (JavaScript, VBScript), Flashí nebo Javy, to běží nezávisle na serveru.)

ASP, PHP, JSP, Cold Fusion

Aktivně generované stránky se musejí na server doinstalovat. Instalačky se většinou stahují z Internetu. Zpravidla je to drsná alchymie, nic pro amatéry (ovšem pokusy se dají dělat i doma). Na některých serverech jsou podpory nainstalovány implicitně (na IIS bývají ASP, na Apachi PHP, na Netscapovských serverech Cold Fusion), ale ani pak to nemusí fungovat správně.

FTP přístup

Základní způsob, kterým se stránky posílají od autora na server. Správce serveru musí každému autorovi nastavit FTP heslo a jméno (bývá shodné s uživatelským jménem). Dále se nastavuje, do které složky (adresáře) bude FTP primárně koukat. Někdo nastavuje cestu přímo do kořene autorových dokumentů, někdo nastavuje nějaký nadřazený adresář, soubory stránek jsou potom v nějaké podsložce. Nejčastěji se ta podsložka jmenuje "www" nebo stejně jako uživatelské jméno.

Na některých serverech z bezpečnostních důvodů FTP nepracuje. Soubory se pak musejí kopírovat prostřednictvím ssh (zřídka telnetu) příkazem scp (secure copy). 

FrontPage Extensions

Prográmky, které umožňují chod tzv. FronPage Component, což jsou šílenosti, které vkládá do stránek program FrontPage a FrontPage Express. Na serveru to je několik divných skrytých adresářů, které nejdou dlouhodobě smazat. Instalují se například z cédéčka FrontPage. Je to potřeba, pokud chcete využívat některých funkcí programů FrontPage. 

Pomocí Extensions se dají stránky také nahrávat na server (nemusí se pak používat FTP) a dají se dokonce vzdáleně upravovat. Každému uživateli využívajícímu extensions se musí nastavit práva a další heslo v jednom takovém prográmku. 

Hrůzná věc z minulého století. FrontPage Extensions fakt nechcete.

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Základy Prvky stránek Tvorba webu

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.