Apache si drží uz stabilné prvenstvo na poli webových servrov. Značnú popularitu si získal vďaka svojej distribúcii zdarma. Ďalším veľkým plus je podpora oboch hlavných operačných systémov - Windows a Linux (V Unixe je dokonca súčasťou distribúcie - RedHatu). Inštalácia pod Windows prebieha štandardne odklepaním niekoľkých dialógových okien. Počas nej musíme určiť:

  1. Network Domain - localhost. 

  2. Server Name - localhost. 

  3. Administrator's email address. Mozeme dat svoju existujucu adresu (ale ak nemame vlastny mailovy server, tak je to aj tak jedno), alebo hocico ine, napr. webmaster@doma.sk. 
    (tieto udaje vyplňujeme ak Apache inštalujeme doma pre osobnú potrebu)

Konfigurácia Apache je už o niečo zložitejšia, pretože tá sa robí obyčajným zápisom do súboru httpd.conf.  Po vykonaní zmien v tomto súbore ho treba určite uložiť :) a vyskúšať čí nám to vobec beží, a to napísaním do adresy prehliadača http://localhost (resp. http://127.0.0.1)

Apache spočiatku používal (resp. používa) tri konfiguračné súbory:

httpd.conf - hlavný konfiguračný súbor
access.conf - súbor s konfiguráciou prístupových práv
srm.conf - súbor s nastavením prostriedkov

Apache Software Foundation sa rozhodla zlúčiť ich do jediného súboru - httpd.conf. Stalo sa tak kvôli zjednodušeniu vytvárania záloh súboru, udržiavanie histórií revízií a zjednodušeniu jeho popisu. (S tým jediným súborom to nemusí byť vždy úplne pravda)

download:   verzia 2.0.52 http://httpd.apache.org/download.cgi (neodporučam sťahovať, vraj 2.0.X sú problémové)
                    verzia 1.3.19 tu
(radšej odporučam túto)

KONFIGURÁCIA SÚBORU httpd.conf

    Po otvorení súboru môžme mať dojem že tento súbor je dosť veľký, ale vačšinu jeho obsahu tvorí len koméntar. Preto každý riadok začínajúci # je ignorovaný. Pri podrobnejšej štúdii súboru, si môžete všimnúť, že je rozdelený do 3 sekcií

  1. Všeobecné nastavenia
     - riadia činnosť procesu serveru Apache ako celku. Tu umiestňujeme direktívy, ktoré určujú, ako budú procesy serveru vybavovať požiadavky užívateľov.

  2. Hlavná konfigurácia servra
     - obsahuje direktívy, definujúce parametre hlavného servera, ktorý odpovedá na požiadavky, ktoré nie sú vybavené virtuálnymi hostiteľmi. Tieto direktívy obsahujú implicitné hodnoty pre nastavenie všetkých virtuálnych hostiteľov.

  3. Sekcia virtuálnych servrov
     - obsahuje nastavenia pre virtuálnych hostiteľov, ktorí umožňujú spracovávať webové požiadavky na rôzne IP alebo názvy hostiteľov jediným procesom serveru Apache

Pozn: Sama som pri študovaní dvoch verzií Apache (1.3.19 a 2.0.52) zistila, že súbory httpd.conf nie sú rovnaké. Dokonca vo vyššej verzii chýbali niektoré direktívy. V nasladujúcom texte nižšie sú však uvedené.

1. Všeobecné nastavenia           up

ServerType
Sú dva spôsoby spúšťania serveru Apache. Buď z inetd (vtedy zvolíme parameter direktívy inetd), alebo ako samostatného démona (standalone). Štandartné nastavenie standalone.
ServerType standalone

ServerRoot
Hlavný adresár, v ktorom bude Apache hladať konfiguračné súbory (adresár conf/) a logy (adresár logs/). Zadáva sa bez lomítka na konci cesty!
ServerRoot "C:/Apache"

PidFile
Je súbor, ktorý slúži serveru na ukladanie id procesov. Cesta k súboru sa zadáva buď relatívna (vzhľadom na ServerRoot):
PidFile logs/httpd.pid
alebo úplná:
PidFile /etc/inetd/logs/httpd.pid
V tejto a nasledujúcich direktívach odporúčam používať relatívne cesty. Sú výhodnejšie v tom prípade, keby sme v budúcnosti zmenili hlavný adresár Apache (ServerRoot) - nemusíme direktívy s cestami prepisovať, ale server si ich naapenduje (prilepí) práve k ceste zadanej v ServerRoot.

ScoreBoardFile
Ďaľší súbor súvisiaci s procesmi - tentokrát konkrétne na komunikáciu medzi procesmi. Pri tejto direktíve dávame pozor, aby dva Apache nemali ten istý score board súbor!
ScoreBoardFile logs/Apache_score_board

AccessConfig a ResourceConfig
Tieto dve direktívy potrebujeme v tom prípade, keď chceme/potrebujeme používať systém troch konfiguračných súborov (httpd.conf, access.conf a srm.conf). Vtedy ResourceConfig definuje miesto, kde sa nachádza srm.conf, a AccessConfig, ako už názov napovedá, miesto kde server nájde súbor access.conf. Aj tu platí odporúčané používanie relatívnych ciest.
AccessConfig conf/access.conf
ResourceConfig conf/srm.conf

Timeout
Definuje ako dlho bude server čakať na prijatie určitej požiadavky od klienta. Čas udávaný touto direktívou je v sekundách a obvykle býva nastavený na 300, čo je optimálna hodnota.
Timeout 300

KeepAlive
Funkcia Keep Alive umožňuje vybaviť viac požiadaviek počas jedného spojenia: otvorí sa spojenie na určitú požiadavku, načo sa táto požiadavka vybaví. Pokiaľ je nastavený KeepAlive On server počká čas definovaný direktívou KeepAliveTimeout a v prípade, že nepríde od klienta za tento čas daľšia požiadavka, spojenie sa uzatvorí. Možné hodnoty tejto direktívy sú On alebo Off :
KeepAlive On

MaxKeepAliveRequests
Maximálny počet požiadaviek, ktoré môže Apache vybaviť v rámci jedného Keep Alive spojenia. Optimálna hodnota - defaultne nastavená je 100 požiadavok.
MaxKeepAliveRequests 100

KeepAliveTimeout
Udáva čas, ktorý bude Apache čakať na prijatie ďaľšej požiadavky v rámci jedného (Keep Alive) spojenia. Po uplynutí tejto doby sa spojenie medzi serverom a klientom uzavrie. Tak ako v direktíve Timeout, aj táto hodnota sa udáva v sekundách.
KeepAliveTimeout 15

StartServers
Táto direktíva určuje, koľko voľných démonov Apache sa má spustiť ihneď pri štarte serveru. Pri určovaní hodnoty zároveň myslíme na hodnotu udanú direktívou MaxSpareServers (pozri nižšie).
StartServers 10

MinSpareServers a MaxSpareServers
Tu zabezpečujeme minimálny a maximálny počet voľných, neobsadených démonov. Neobsadené kópie Apache sú potrebné napríklad pre náhly vzrast požiadaviek na server. V "kľudovom stave" udržuje Apache počet svojich kópií medzi hodnotami MinSpareServers a MaxSpareServers. Pokiaľ sa dostane množstvo týchto kópii pod hranicu udanú MinSpareServers, Apache spustí nové, voľné kópie. A naopak, ak počet voľných kópií stúpne nad MaxSpareServers, Apache prebytočné kópie zruší.
MinSpareServers 8
MaxSpareServers 20

MaxClients
Maximálny počet démonov Apache, ktorý možu naraz bežat.
MaxClients 150

MaxRequestPerChild
Povolený počet požiadaviek na jedného bežiaceho démona Apache. Ak sa prekročí počet týchto požiadaviek, kópia démona Apache sa zruší. Obvykle sa hodnota tejto direktívy nastavuje na nulu, čo je vlaste vypnutie kontroly počtu požiadaviek, pretože nie je potrebná - používa sa zriedkavo, pri niektorých typoch operačných systémov, ako je napríklad Solaris.
MaxRequestPerChild 0

Listen
Definuje, na akom porte a/alebo na akej IP adrese bude Apache čakať na požiadavky od klientov. napr.:
Listen 12.34.56.78:80
Listen 8080
znamená, že server bude počúvať na porte 8080 na všetkých adresách a zvlášť ešte na adrese 12.34.56.78 na porte 80

BindAddress
Určuje iba IP adresu (nie konkrétny port) na ktorej bude očakávať Apache požiadavky od klienta. Adresa zadaná touto direktívou bude jedinou adresou, z ktorej budú akceptované požiadavky na server. Zadanie znaku * spôsobí to isté, ako úplné vynechanie tejto direktívy - Apache bude reagovať na požiadavky na všetkých svojich IP adresách. Táto direktíva sa v konfiguračnom súbore smie použiť iba jediný raz!
BindAddress *

2. Hlavná konfigurácia servra            up

Port
Po BindAdress a Listen je treťou direktívou definujúcou port, na ktorom bude server čakať požiadavky - requesty od userov. Pri súčasnom použití Listen a PortListen vyššiu prioritu a Apache bude počúvať na porte udanom práve touto direktívou.
Port 80

ServerAdmin
Emailová adresa správcu serveru. Túto adresu obvykle server vkladá do špeciálnych - generovaných stránok.
ServerAdmin webmaster@doma.sk

ServerName
Udáva DNS meno serveru, prípadne IP adresu serveru. IP adresu využijeme vtedy, ak nemáme zaregistrovanú vlastnú doménu - meno domény, alebo v prípade, keď potrebujeme server testovať. Pri testovaní nastavujeme obvykle ServerName na 127.0.0.1 .
ServerName localhost

DocumentRoot
Ako už názov napovedá, táto direktíva určuje koreňový adresár s dokumentami. Tu musia byť uložené všetky súbory a adresáre na prezeranie. Doména (prípadne IP adresa) zadaná v ServerName vlastne zastupuje tento adresár.
DocumentRoot "C:/Apache/htdocs"

Directory
Jednotlivé adresáre - oblasti na disku, ktoré sprístupňujeme užívateľom browsujúcim na našich stránkach nastavujeme pomocou direktívy Directory.  (Preto sa Nám obšas stáva, ze niektoré adresáre nemožeme vidieť z domu, len v škole :) Jej použitie je trošku odlišné od predošlých direktív - ohraničuje sa totiž do zátvoriek <, >. Podobne ako tagy v jazyku HTML, čiže napríklad :

<Directory "/home/httpd/html">

Za týmto zápisom nasledujú direktívy s parametrami (napríklad Options - pozri tabuľku nižšie), definujúce obmedzenia pre oblasť ohraničnú do úvodzoviek za slovom Directory, v tomto prípade /home/httpd. Celá konfigurácia oblasti sa potom uzatvára pomocou tagu:

</Directory>

Tabuľka parametrov direktívy Options

Direktíva

Parameter

Význam

Options

Indexes

Povolenie zobrazenia obsahu adresára, pokiaľ v ňom neexistuje súbor udaný direktívou DirectoryIndex

, napr. index.htm

Includes

Povolenie interpretácie SSI skriptov

IncludesNoExec

Povolenie interpretácie SSI skriptov ale bez spúšťania externých programov

ExecCGI

Povolenie spúšťania cgi skriptov

FollowSymLinks

Povolenie symbolických liniek

SymLinksIfOwnerMatch

Povolenie symbolických liniek iba v prípade, ak sa zhoduje user s vlastníkom linky

MultiViews

Povolenie predávania dokumentov podľa požiadaviek browsera (respektíve užívateľa)

All

Nahradzuje všetky parametre (okrem MultiViews)

None

Zrušenie všetkých parametrov

Location
Je ďaľšou možnosťou nastavenia určitej oblasti na disku. Rozdiel medzi Location a Directory spočíva v tom, že kým s Directory definujeme fyzickú cestu, s Location definujeme priamo URL. Ak teda máme URL napríklad : http://www.nejake-url.org/niekto a potrebujeme nastaviť obmedzenia v časti /niekto, zapíšeme to takto:

<Location /niekto>
   ...direktívy... (pozri vyššie - Directory)
</Location>

Pozn: s Directory a Location sa pracuje rovnako. Všetko doteraz povedané o Directory platí aj pre Location. Výnimkou je vynechanie parametera FollowSymLinks a SymLinksIfOwnerMatch pri direktíve Options použitej vo vnútri Location.

Obmedzovanie prístupu k dokumentom
Prístup k súborom na serveri môžeme zakázať/povoliť na základe nasleducúcich parametrov:

kompletné meno domény (napr.: user.apache.org) alebo doména, do ktorej user patrí (apache.org)
kompletná IP adresa alebo časť IP adresy (adresa siete)
IP adresa spolu s maskou siete

Order, Deny, Allow
Podľa čoho obmedzujeme, to už vieme. Teraz si povieme o tom ako obmedzujeme.
Najprv zadefinujeme priority, ktoré sa uplatnia v prípade, že užívateľ, snažiaci sa o prístup na server je uvedený aj v zozname direktívy Deny aj v zozname Allow. Definujeme pomocou direktívy Order :

Order Allow,Deny     #Deny (zamietnutie) má vyššiu prioritu

alebo

Order Deny,Allow     #vyššiu prioritu má Allow (povolenie)

Ďalej nasleduje samotný zoznam IP adries, domén a pod., ktoré budú odmietnuté respektíve prijaté, napr.:

Deny from all
Allow from apache.org

K tomuto príkladu sa ešte vrátime, teraz niečo o už spomenutých prioritách.
Pokiaľ je užívateľ uvedený v zozname direktívy Allow alebo v zozname Deny (čiže nie v oboch súčasne), podľa názvu direktívy server určí jeho budúcnosť - buď ho príjme(Allow) alebo odmietne(Deny). Pokiaľ je user súčasne v oboch zoznamoch, alebo ani v jednom postupuje sa podľa direktívy Order, a to tak, že rozhoduje direktíva, ktorá je v Order zapísaná za čiarkou a má teda vyššiu prioritu.

Niekoľko príkladov pre lepšie pochopenie:

Order Deny,Allow                                                                                    Order Allow,Deny
Deny From All                                                                                        
#To isté - odmietnutý je všetok prístup k súborom 
#Odmietnutý je všetok prístup k dokumentom

Order Deny,Allow
Deny From apache.org
#Odmietnutý je prístup k dokumentom zo serveru apache.org

Order Deny,Allow
Deny From All
Allow From apache.org

#Odmietnutý je všetok prístup k súborom, okrem požiadaviek z apache.org

V konfiguračnom súbore pravdepodobne nájdeme aj tieto riadky:

<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>

Jednu direktívu v tejto definícii poznáme (Options), o druhej (AllowOverride) sa dozvieme nižšsie. Čo je ale podstatné je to, že nanajvýš vhodné do tohoto zápisu je vložiť riadky, ktoré implicitne zakážu prístup ku všetkým dokumentom na serveri, teda:

<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order Allow,Deny
   Deny from all
</Directory>

Zabránime tým prístupu nepovolaných osôb k súborom ktoré nie sú pre nich určené (Pre osobné využitie Apache však nie je nutné!). Oblasti, ktoré naopak prístupné majú byť, nakonfigurujeme napríklad týmto spôsobom:

<Directory /home/httpd>
... direktívy ...
   Order Allow,Deny
   Allow from all
... direktívy ...
</Directory>  

 

Príkladík 1:

Skúsme si teraz zakázať vidieť obsah adresara durko (ktorý neobsahuje subor index.html).

Najprv si stiahnite tieto dva adresáre durko a janko. Rozbaľte ich a uložte ich do adresára Apache/htdocs/ 
Skontrolujte obsah oboch adresárov! Jednoduchým vložením nasledujúcich radkov do súboru, dosiahneme to čo sme chceli.

<Directory "C:/Apache/htdocs/durko">
    Options Indexes
    Order allow,deny
    Deny from all
</Directory>

Skontrolujeme: http:.//localhost/durko  a  http://localhost/janko

Pozor po každej zmene v súbore httpd.conf je nutné nielen zmeny uložiť, ale aj Apache ako službu zreštartovať! (Prave tlacidlo na tento pocitac ->Spravovat->v strome služby a aplikace vyberieme služby, najdeme Apache a ten potom zastavíme a spustíme)

AccessFileName
Touto direktívou definujeme meno súboru, v ktorom bude Apache hľadať externé nastavenia. Obvykle sa používa názov .htaccess, čo je v linuxe vlastne skrytý súbor (pretože mená súborov začínajúce bodkou sa defaultne nezobrazujú). Od verzie 1.3 serveru Apache je možné zadať za AccessFileName viac mien. Napríklad:

AccessFileName .htaccess  or  AccessFileName .htaccess .httpd_config .ext_konfig

AllowOverride
Možné parametre tejto direktívy, udávajúce čo vlastne môžeme v externej konfigurácii konkrétnej oblasti použiť, vidíme nižšie v tabuľke. Pokiaľ je ako paramete za AllowOverride uvedená iná diretíva než None, postupne sú serverom načítavané súbory .htaccess (respektíve tie, ktoré sme definovali direktívou AccessFileName) od koreňového (root) adresára až po žiadaný objekt (súbor). Príklad:

<Directory "/home/httpd/htdocs">
   AllowOverride Limit Options AuthConfig
</Directory>


Ak je požadovaný súbor napríklad /home/httpd/htdocs/fajl.htm, potom server vyhľadá a načíta všetky súbory .htaccess : /.htaccess, /home/.htaccess, /home/httpd/.htaccess, /home/httpd/htdocs/.htaccess.
Poznámka: defaultné nastavenie direktívy AllowOverride je All

Tabuľka parametrov direktívy AllowOverride

Direktíva

Parameter

Direktívy, ktoré parameter povoľuje použivať v .htaccess

AllowOverride

AuthConfig

AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require,... - autorizačné direktívy

FileInfo

AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority,... - direktívy definujúce typy súborov

Indexes

AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName,... - direktívy nastavujúce napríklad ikony rôznych typov súborov

Limit

Order, Allow, Deny

Options

Options, XBitHack

All

Nahradzuje všetky direktívy (AuthConfig, FileInfo, Indexes,... atd)

None

Nepovolí sa vôbec použitie súborov .htaccess

ErrorDocument
ErrorDocument definuje, čo sa zobrazí užívateľovi v browseri v prípade, že daný súbor, o ktorý žiadal, neexistuje, nemá naň práva a pod., čiže vtedy, keď je generovaná chyba (napr.: 403 Forbiden - zákaz prístupu). Syntax tejto direktívy je :

ErrorDocument kód_chyby súbor

Príkladík 2:

Skúsme si nadefinovať vlastný oznam o chybe.

Najprv si stiahnite zle_url.htm. Rozbaľte a uložte do adresára Apache/htdocs/ 
Teraz vložíme do http.conf riadok              ErrorDocument 403 /err/zle_url.htm  

(funguje takisto aj  ErrorDocument 403 "ZLEEEEEEE URL")

Teraz si pozrime výsledný efekt a to zadaním adresy adresára v ktorom máme ešte stále zakázané prezeranie obsahu. http://localhost/durko  


<IfDefine> a <IfModule>
Tí z Vás, ktorí programujú v jazykoch 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.
(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")

AddType
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 súbor mime.types 
AddType application/x-httpd-php .php 

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_server.org/nieco/ a pokiaľ v konfiguračnom súbore máme uvedený tento riadok:

DirectoryIndex index.htm

Zobrazí sa v browseri: http://www.moj_server.org/nieco/index.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.

Alias a ScriptAlias

Obidve direktívy sú súčasťou modulu mod_alias. Prvá z nich, teda Alias, priradí určitému adresáru (resp. adresárovej štruktúre), ktorý sa nachádza fyzicky na disku, URL cestu (teda časť URL adresy). Syntax:

Alias URL_cesta adresar

Toto využijeme s výhodou pri dokumentoch, ktoré nepatria pod DocumentRoot a teda sa k nim nemáme ako cez browser "dostať". Napríklad potrebujeme sprístupniť súbory z /usr/local/apache, ale DocumentRoot je nastavený na /home/www . Použijeme teda direktívu Alias:

Alias /docs "/usr/local/apache"

Ak potom užívateľ zadá v browseri adresu http://nas_server/docs/nejaky_subor.htm načíta sa v skutočnosti súbor /usr/local/apache/nejaky_subor.htm.

Druhá direktíva ScriptAlias, ako už názov napovedá, definuje/priradzuje k fyzickej ceste na disku obsahujúcej skripty nejakú URL cestu. Apache tým dáme najavo, že súbory, s ktorými bude pracovať, nie sú "obyčajné" dokumenty, ale že ide napríklad o CGI, ktoré treba dopredu spracovať. Príklad:

ScriptAlias /cgi-bin/ "/home/www/cgi-bin"

napr.  ScriptAlias /php/ "C:/php/"

 

Apache a PHP 

download PHP: http://www.php.net/

Niekoľko dobrých typov na prepojenie Apache a PHP (tiez sa mi samej zídu, lebo stale zabudnem ako to vlastne bolo)

Po stiahnuti distribučného súboru zip, ho rozbalime napr. do adresára C:/php: 
Po rozbalení v ňom nájdeme súbor php.ini-dist, ktorý skopírujeme do adresára Windows a premenujeme ho na php.ini
Ako som sa dočítala teraz máme viacero možností:


-  všetky DLLs z C:/php/dlls prekopírujeme do windows/system (takto som to ja robila)
do adresára windows/system nakopírujeme knižnice php4ts.dll a php4ts.lib
-  v   súbore php.ini  je potrebné je nastaviť direktívu extension_dir na C:/php 

Aby Apache správne spolupracoval s PHP je potrebné dopísat pár riadkov aj do známeho súboru httpd.conf

    ScriptAlias /php/ "C:/php/"
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php 
    Action application/x-httpd-php /php/php.exe

    Taktiež trosku pozmeníme DirectoryIndex:
    
DirectoryIndex index.php index.php3 index.phtml index.html index.htm default.html default.htm

Samozrejme po tejto úprave musíme Apache zreštartovať, aby načítal toto nové nastavenie!

Nakoniec skontrolujeme či to funguje stiahnutim tohto suboru a ulozenim (ho ako index.php) do adresara apache/htdocs index.php

Pozn: Týmto nastavením bude PHP bežať ako modul servru, to znamená, že všetky spúštané skripty najprv kontrolované samotným WWW-servrom a až potom čo server zistí, že skript môže byť spustený, predá ho interpretovi PHP.
    PHP však môže bežať aj ako CGI-script, kedy je v činnosti niekoľko mechanizmov, ktoré chránia systém pred napadnutím.

Linky

zdroj textu: http://www.root.cz/clanek/618
Apache: www.apache.org
PHP: www.php.net

za dostatočný počet dramatických chýb sa ospavedlňujem :)
Zuzi83(c)