Hlavní navigace

Malý průvodce konfigurací Apache (5)

Tomáš Lopašovský

Dnes sa naučíme, ako pracovať v Apache s modulmi a rozoberieme si niektoré dosiaľ neopísané direktívy.

Moduly

Moduly pre webový server Apache môžu byť dvoch typov:

  • interné – sú vkompilované do Apache
  • externé – dynamicky sa aktivujú a nahrávajú podľa potrieb užívateľov

Zoznam vkompilovaných (interných) modulov získame spustením démona httpd s parametrom „-l“ ako listing. Napr.:

$ httpd -l

Príklad výstupu:

Compiled-in modules:
    http_core.c
    mod_so.c


Dvomi – asi najdôležitejšími a najpotrebnejšími (horeuvedenými) internými modulmi napevno vkompilovanými v Apache – sú http_core.c a mod_so.c. Prvý z nich (tak ako názov niekomu možno napovedá) je samotným jadrom Apache. Druhý (mod_so.c) je potrebný na to, aby sme vôbec mohli používať (nahrávať) externé moduly. Z toho logicky vyplýva, že musí byť sám interným. Jeho aktivácia nám umožní použitie dvoch direktív LoadFile a LoadModule.
To, že je nejaký modul interným, ešte neznamená, že je po štarte Apache vždy aktívny (viz niššie uvedená direktíva ClearModuleList). Pokiaľ ho chceme aktivovať použijeme direktívu AddModule:

AddModule mod_so.c

(Pozn.: za direktívou AddModule je možné uviesť aj viac ako jeden parameter, ale prehľadnejšie je aktivovať každý modul zvlášť na jednom riadku)
Týmto spôsobom aktivujeme interné aj externé moduly, ale externé najprv musíme nahrať direktívou LoadModule, ktorej syntax je:

LoadModule meno_modulu meno_súboru_modulu

Napr.:

LoadModule cgi_module     modules/mod_cgi­.so
LoadModule alias_module  modules/mod_a­lias.so

Poslednou direktívou potrebnou pri práci s modulmi je direktíva ClearModuleList. Táto čistí/nuluje zoznam modulov, ktoré sa majú aktivovať. V prípade, že by sme pred nahrávaním a aktivovaním nevyčistili tento zoznam, aktivovali by sa interné a externé moduly, ktoré nemusíme vždy všetky využiť. Preto najprv použijeme ClearModuleList, a následne môžeme nahrávať a aktivovať – vnesieme tým určitú prehľadnosť do konfiguračného súboru, pretože budeme vedieť čo sa v skutočnosti aktivuje.


V súvislosti s vyššie uvedenou témou je vhodné vysvetliť dve direktívy, ktoré značnou mierou uľahčujú prácu (nielen) s modulmi. Sú to direktívy :

<IfDefine> a <IfModule>
Tí z Vás, ktorí programujú v jazykoch ako Pascal, C a podobne, určite poznajú podmienený preklad. Pre ostatných – zadefinuje sa určitý symbol a v závislosti od neho (teda či je definovaný alebo nie je) sa ďalej riadi preklad zdrojového kódu (buď sa preloží-skompiluje, alebo neskompiluje). Veľmi podobne to funguje aj v konfigurácii Apache, s tým rozdielom, že symbol definujeme ako parameter pri spúšťaní httpd:

$ httpd -Dmeno_symbolu

Ako z príkladu vyplýva, pred meno parametra-symbolu sa pridáva písmeno „D“ pre odlíšenie od ostatných parametrov.

Úloha :
 

Pokiaľ bol definovaný symbol POUZIT_PHP3, je potrebné nahrať modul umožňujúci použitie jazyka PHP verzie 3. To isté platí pre POUZIT_PHP4 a modul PHP4.

<IfDefine POUZIT_PHP3>
   LoadModule php3_module    modules/lib­php3.so
</IfDefine>

<IfDefine POUZIT_PHP4>
   LoadModule php4_module    modules/lib­php4.so
</IfDefine>

 

Moduly sú (alebo nie sú) nahraté, treba ich ešte aktivovať:

<IfDefine POUZIT_PHP3>
   AddModule mod_php3.c
</IfDefine>

<IfDefine POUZIT_PHP4>
   AddModule mod_php4.c
</IfDefine>

 

Pre „spojazdnenie“ PHP musíme ešte definovať MIME typy pre rôzne extensions (prípony) súborov:

<IfModule mod_php3.c>
   AddType application/x-httpd-php3 .php3
   AddType application/x-httpd-php3-source .phps
</IfModule>

<IfModule mod_php4.c>
   AddType application/x-httpd-php .php4 .php3 .phtml .php
   AddType application/x-httpd-php-source .phps
</IfModule>

Tak, hotovo. Pokiaľ budeme napríklad potrebovať podporu pre PHP verzie 3, spustíme Apache takto:

$ httpd -DPOUZIT_PHP3

Direktíva AddType priraďuje príponu súboru (rozšírenie, extension) k definovanému MIME typu. Serveru týmto povieme „čo ku čomu patrí“ – čo sa má čím spúšťať, interpretovať. Takto napríklad určujeme, že súbor s príponou „.gif“ bude patriť k MIME typu image/gif alebo „.php“ ku application/x-httpd-php. Aktuálny zoznam MIME typov sa obvykle dodáva spolu so serverom Apache (ako oddelený súbor mime.types) alebo ho môžete nájsť tu. V prípade záujmu bližšie informácie o MIME napríklad na adrese manualy.sk.

Direktíva <IfModule> vo vyššie uvedenom príklade pracuje obdobne ako <IfDefine>, netestuje však prítomnosť symbolu, ale aktívnosť modulu.
(Poznámka: ak v direktíve <IfDefine> alebo <IfModule> uvedieme pred menom symbolu resp. modulu výkričník „!“, výsledok bude negovaný. Napr.: <IfDefine !SYMBOL> … </IfDefine>. Všetko to, čo je uvedené v tomto príklade medzi tagmi, sa vykoná v prípade, že nie je definovaný symbol s názvom „SYMBOL“)

DirectoryIndex
Definuje defaultný dokument (respektíve viac alternatívnych dokumentov), ktorý sa zobrazí, ak si užívateľ nevyžiadal zo serveru konkrétny súbor. Napríklad do browseru zadáme: http://www.moj_ser­ver.org/nieco/ a pokiaľ v konfiguračnom súbore máme uvedený tento riadok:

DirectoryIndex index.htm

Zobrazí sa v browseri: http://www.moj_ser­ver.org/nieco/in­dex.htm.

IndexIgnore
Túto direktívu použijeme vtedy, keď máme povolený listing (výpis) súborov niektorého adresára a nechceme, aby užívatelia videli určitý typ súboru. Takto sa skrývajú napríklad súbory externej konfigurácie .htaccess a pod.
(Pozn.: pri definícii súboru je možné použiť aj wildcard znaky: „“ a „?“ a takisto je možné nezobrazovať súbory s konkrétnou príponou napr.: „.bak“)

V budúcej (pravdepodobne predposlednej) časti sa snáď :) dostaneme ku konfigurácii Apache pre použitie CGI skriptov a jazyka PHP.
Našli jste v článku chybu?
Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Měšec.cz: Exekuční poradna: ptejte se online

Exekuční poradna: ptejte se online

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

DigiZone.cz: SES zajistí HD pro M7 Group

SES zajistí HD pro M7 Group

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Test na HIV je zdarma i za pět set

Test na HIV je zdarma i za pět set

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?