Apache logo

Instalace a konfigurace WWW serveru Apache

Obsah
  1. Obecně o WWW serveru Apache
  2. Instalace serveru
  3. Základní konfigurační soubor httpd.conf
  4. Konfigurační soubor srm.conf: cesty a zpracování adresářů , CGI skripty, typy souboruů
  5. Omezení přístupu pomocí access.conf
  6. Přehled o činnosti WWW serveru
  7. Čeština na WWW stránkách

  1. Obecně o WWW serveru Apache

    Apache je v současné době jednoznačně nejoblíbenějším a nejrozšířenějším web serverem. Dokládá to i pravidelný průzkum firmy Netcraft. Tento web server byl vyvinut jako pokračovatel staršího NCSA serveru z National Centre for Supercomputer Aplications. Se svým přeedchůdcem je kompatibilní, takže přechod na Apache je poměrně bezbolestný a také tomu vděčí za svůj úspěch.

    Název Apache pochází z toho, že server byl postaven an existujícím kódu plus několik patchů = "A patchy server".

    Apache je vyvíjen jako public domain. A jeho zdrojové texty, binární distribuci a dokumentaci je možné získat z www.apache.org nebo z mirroru na Sunsite

    Architektura Apache je modulární, což znamená, že je možné nainstalovat přídavné moduly, které zajistí funkce proxy serveru, autentifikaci a podobně. Skladba modulů se určuje již v době překladu, takže v případě změny je potřeba server překompilovat. Vlastním modulem je také možné řešit překódování češtiny transparentně pro uživatele(Podrobněji viz Čeština na WWW stránkách).

  2. Instalace serveru

    Server je možné instalovat dvěma způsoby:

  3. Další fáze instalace je modifikace konfiguračních souborů httpd.conf, srm.conf a access.conf.

  4. Základní konfigurační soubor httpd.conf

    Tento soubor určuje vlastnosti serveru jako celku - způsob startu programu, cesty ke konfiguračním souborům, logům ...

    PoložkahodnotyPopis
    ServerType standalone,
    tcpd
    Nastavuje způsob jakým bude server startován. Může být spuštěn trvale(standalone) nebo se startovat vždy až při příchodu požadavku(tcpd). Implicitní a doporučované nastavení je standalone, protože častý start serveru zatěžuje počítač a prodlužuje dobu odezvy.
    MaxSpareServers,
    MinSpareServers,
    MaxClients
    číslo Pokud je server spuštěn trvale, automaticky vytváří několik svých synů, kteří obsluhují jednotlivé požadavky, tak, aby jich bylo vždy několik volných připraveno obsloužit další požadavek. Tyto volby říkají kolik miniálně, maximálně má být volných synů a kolik může být synů celkem.
    Port číslo Říká, na kterém portu má server poslouchat.

    BindAddress adresa Definuje adresu, na které bude počítač poslouchat, implicitně poslouchá na všech svých rozhraních.
    Listen adresa:port Pokročilejší varianta Portu a BindAddress, umožňuje říct, na kterých rozhraních a portech má naslouchat.
    User, Group jméno Dále je možné specifikovat uživatele(User) a skupinu(Group), pod kterou server poběží.
    ServerRoot cesta Určuje adresář v němž je Apache nainstalován.
    DocumentRoot cesta Určuje adresář v němž je kořen stromu dokumentů,které chceme serverem zpřístupnit..
    ResourceConfig
    TypesConfig
    AccessConfig
    srm.conf
    mime.types
    access.conf
    Jména dalších konfiguračních souborů
    AccessFileName .htaccess Jméno souboru, který určuje přístupová práva do adresáře, v němž se nachází.
    ErrorLog
    TransferLog
    AgentLog
    RefererLog
    jména souborů Jména souborů do nichž se mají ukládat informace o přístupech na server.
    ServerName
    ServerAdmin
    jméno serveru
    e-mail
    Vlastní jméno serveru a adresa správce.
    ErrorDocument kód cesta Umožňuje navrhnout vlastní dokumenty, které budou odeslány například při přístupu na neexistující stránku.(ErrorDocument 404 /error/bad.html)
    A další ...

  5. Konfigurační soubor srm.conf: cesty a zpracování adresářů , CGI skripty, typy souborů

    Tento soubor určuje logické chování serveru, překlad cest, typy souborů...

    PoložkahodnotyPopis
    Alias cesta1 cesta2 Pokud klient požaduje cestu1 dostane cestu2.
    ScriptAlias cesta1 cesta2 Kromě překladu cesty říká, že se soubory se má zacházet jako se skripty.
    UserDir cesta Určuje kde jsou uloženy adresáře s domovskými stránkami uživatelů.
    Jednoduché jméno znamená podadresář v domovském adresáři uživatele a pokud je uvedena absolutní cesta bude ~ v URL dotazu nahrazena touto cestou a lomítkem.
    Redirect cesta url Při dotazu na cestu 'cesta' bude klient přesměrován na 'url'.
    DirectoryIndex jméno souboru Určuje jméno(a) souborů, který se pošle jako odpověď pokud klient nespecifikuje v url soubor, ale jen adresář. Bývá to index.html, index.htm ...
    IndexOptions FancyIndexing
    IconsAreLinks
    ScanHTMLTitles
    ...
    Určuje jakým způsobem se bude vytvářet soubor, který se pošle klientovi, pokud není v adresáři žádný soubor specifikovaný pomocí DirectoryIndex.
    AddDescription soubor popis Určuje jaký 'popis' se zobrazí u 'souboru'..
    AddIcon
    AddIconByType
    AddIconByEncoding
    DefaultIcon
    ikona soubor
    ikona typ
    ikona kódování
    ikona
    Říká jaká ikona bude u, kterého souboru, typu souboru, typu kódování souboru a jaká bude implicitní.
    IndexIgnore jména Specifikuje soubory, které nemají být do indexu zahrnovány. Standardně nejsou zahrnuty soubory začínající tečkou..
    HeaderName
    ReadmeName
    jméno souboru
    jméno souboru
    Určují jména souborů, které se připojí na začátek(HeaderName) a na konec(ReadmeName) indexu..
    AddType
    AddLanguage
    AddEncoding
    typ přípona
    jazyk přípona
    kódování přípona
    Soubor s 'příponou' je tohoto 'typu'
    Soubory v tomto 'jazyce' mají tuto 'příponu'
    Soubor s 'příponou' má toto 'kódování'.
    DefaultType MIME typ Pokud neví tak pošle tento typ.
    ForceType MIME typ Říká, že všechny soubory jsou typu 'MIME typ'. Musí být uzavřen uvnitř nějakého omezovače, například <Directory>

  6. Omezení přístupu pomocí access.conf

    Tento soubor se specializuje na omezování a povolování přístupu - kde kdo a co smí dělat.

    PoložkahodnotyPopis
    <Directory> adresář Omezuje platnost v něm uzavřených příkazů na 'adresář'.
    <Location> URL Podobné jako <Directory> akorát se vztahuje na url a ne na cestu na disku..
    Options All
    None
    ExecCGI
    FollowSymLinks
    Indexes
    ...
    Povoleno vše
    Zakázáno vše
    Povoleno spouštět CGI skripty
    Povoleno procházet přes symlinky
    Povoleno vytváření indexů
    ...
    AllowOverride All
    None
    AuthConfig
    Indexes
    Options
    ...
    Uvádí co všechno může být upraveno pomocí souborů .htaccess. Hrozí zde, že útočník nahraje do adresáře svůj vlastní .htaccess(musí k tomu mít právo) a zruší tak globální omezení daná v konfiguračních souborech.
    <Limit> HTTP metody V tomhle uzavřená omezení se vztahují na uvedené metody(GET, PUT..).
    Allow
    Deny
    from adresa
    from all
    Vymezuje, které počítače mají právo získat stránky.
    Order deny, allow
    allow, deny
    Pořadí ve kterém budou omezující a povolovací příkazy vyhodnoceny.
    require podmínka Určuje, kteří uživatelé či skupiny jsou oprávněni k přístupu.
    AuthType Basic
    Digest
    Způsob jakým bude uživatel ověřen. Basic je jen jednoduché zašifrování a Digest používá MD5.
    AuthName jméno To je jméno autorizační oblasti(realm). Pro dokumenty ze stejné oblasti použije prohlížeč stejné heslo, které zjistí při vstupu do této oblasti od uživatele.
    AuthUserFile
    AuthGroupFile
    jméno souboru Soubor se jmény a hesly uživatelů, kteří mohou přistupovat ke stránkám chráněným heslem. Měl by být z bezpečnostního hlediska mimo strom dokumentů, aby si ho nikdo nemohl přečíst.

  7. Přehled o činnosti WWW serveru

    Apache nám umožňuje udělat si obrázek o tom jak je náš server využíván. Zanechává nám totiž záznam své činnosti a požadavků, které vyřídil. Jak jsme viděli, tak v konfiguračním souboru httpd.conf můžeme určit kam se mají tyto údaje zapisovat.

  8. Čeština na WWW stránkách

    Pro poskytování stránek v různých kódováních češtiny vzniklo několik různých řešení.
    Podrobnější rozbor a konkrétní implementace jednotlivých řešení najdete na adrese: www.cestina.cz

Bližší informace o semináři i o Linuxu obecně lze získat na adrese:
http://sunsite.mff.cuni.cz/linux/seminar
Tuto stránku stvořil Václav Petříček (petricek@mail.kolej.mff.cuni.cz).
poslední modifikace Sat Jun 14