4. Instalace

4.1. Průvodce instalací

Většinu času při vývoji aplikací strávíme jejich psaním a laděním. Není samozřejmě nutné pokaždé se připojovat na vzdálený server s nainstalovanou podporou PHP (a příp. i dalších skriptů), ale můžeme si na svém počítači vytvořit vlastní server (tzv. localhost), který se bude tvářit stejně jako při připojování na vzdálený server. Pro moji práci jsem zvolil server Apache, který vznikl na stejné bázi jako PHP a je zároveň používán na téměř 50% všech WWW-serverů. Systém psaný jazykem PHP však není vázaný jen na Apache HTTP Server, protože jazyk PHP může obecně běžet na libovolném serveru (Personal Web Serve, Internet Information Server v.3.0 nebo 4.0 atd.) a libovolné platformě (Windows, Linux atd.). Pro nakonfigurování systému tak, aby na něm správně fungovaly stránky a aplikace psané ve skriptovacím jazyku PHP, je nutné provést několik úkonů, které jsou popsány v následujících odstavcích v pořadí, v jakém by měly následovat. Postup je popsán pro operační systém Microsoft Windows 9x/NT/2000/XP [9], postup pro instalaci pod jinými operačními systémy je popsán v příslušné literatuře [7].

4.2. Instalace Apache Server

Nejjednodušší je Apache HTTP Server [10] nainstalovat pomocí instalátoru, který je součástí binární verze souboru.


Vývoj programu se stále vyvíjí, momentálně nejnovější verze je 2.0.52, která je také nedílnou součástí této diplomové práce na datovém nosiči. Instalátor nás pohodlně provede instalací. Po nastavení složek programu a požadovaných součástí se dostaneme na stránku Server Information, kde do prvních dvou polí (Network Domain, Server Name) vepíšeme místo původního textu jen localhost. Do posledního pole (Administrator's Email Address) napíšeme admin@localhost.

Po kontrole cesty k instalaci, která by měla být C:/Apache se opět proklikáme celým procesem instalace.

4.3. Instalace PHP 4

Nyní již máme nainstalován a nezkonfigurován Apache, doinstalujeme tedy PHP. I jazyk PHP samozřejmě prochází dlouhým vývojem, na datovém nosiči je uložena verze PHP 4.3.9 [11]. Celý obsah souboru .zip, který jsme si stáhli, rozbalíme do zvolené složky (např. C:/PHP). Mezi rozbalenými soubory je i soubor php4-dist.ini, který zkopírujeme do adresáře, ve kterém máme uložen operační systém Windows (např. C:\Windows). Tento soubor přejmenujeme na php4.ini a nastavíme v něm cestu k DLL-knihovnám jazyka PHP (tzn. že direktivě extension_dir nastavíme hodnotu adresáře, do kterého jsme knihovny nakopírovali (tzn. např. C:\PHP). Dále je nutné nastavit adresář, který bude brán jako kořenový adresář dokumentů webového serveru (např. C:\Skript). Nyní je PHP na našem systému nainstalováno, zbývá přidat podporu do Apache Serveru.

4.4. Nastavení podpory PHP na Apache Serveru

Konfigurace se provádí upravením souboru httpd.conf, který nalezneme v adresáři Conf nainstalovaného Apache Serveru (např. C:\Program Files\Apache Group\Apache\Conf). Do souboru je nutné upravit následující direktivity:

· ScriptAlias /php/ "c:/php/"
· AddType application/x-httpd-php .php .phtml .html .htm
· Action application/x-httpd-php "/php/php.exe"

Těmito direktivami určujeme cestu ke knihovnám jazyka PHP a podporované přípony souborů, které bude server uvažovat jako možné PHP skripty. Po uložení a zavření souboru je nutné celý Apache Server restartovat, aby došlo k načtení nových konfiguračních souborů.

Nyní pro kontrolu funkčnosti serveru si napíšeme tento jednoduchý skript (např. v libovolném textovém editoru):


Tento skript uložíme s libovolným názvem s příponou .php (např. test.php) do kořenového adresáře webového serveru (C:\Skript). Poté spustíme libovolný internetový prohlížeč a zadáme URL našeho skriptu tj. http://localhost/test.php. Pokud bylo vše v pořádku nakonfigurováno, měla by se zobrazit stránka, která obsahuje informace o používané verzi jazyka PHP.

Tímto je počítač připraven ke spouštění skriptů PHP bez nutnosti připojení k externímu serveru (např. přes internet).

4.5. Hypertext Transfer Protokol

Protokol HTTP (Hypertext Transfer Protokol) je jedním ze stavebních kamenů celé služby WWW (World-Wide Web). Používá se pro komunikaci mezi prohlížečem a serverem. Klient (v našem případě prohlížeč) se spojí se serverem a pošle mu požadavek. Server jako reakci na klientův požadavek zasílá odpověď. Aby si spolu klient a server rozuměly, musí používat jistá pravidla komunikace, kterým se říká protokol. Přesný formát požadavku a odpovědi je v tomto případě definován ve specifikaci protokolu HTTP. Celou situaci mírně komplikuje skutečnost, že dnes existují tři verze protokolu - 0.9,1.0 a 1.1. Formát požadavku a odpovědi se v jednotlivých verzích odlišuje.
Protokol HTTP je aplikačním protokolem, který pro vlastní přenos dat sítí používá protokol nižší úrovně, jež zajišťuje spolehlivé datové spojení. Tímto protokolem je nejčastěji TCP. Klient se nejčastěji připojuje k WWW-serveru na port 80, i když je možno v konfiguraci serveru vybrat libovolný jiný port.

4.6. Cookies

Vlastní aplikace napsané v PHP mají jistá nepříjemná omezení vyplývající z principu protokolu HTTP. Protokol HTTP je nestavový, tzn. že pro přenos každé stránky se otevírá nové zvláštní HTTP spojení, které se ihned po přenosu uzavře. Částečnou možností řešení tohoto problému je ukládání pomocných stavových informací do skrytých polí formuláře anebo tyto informace přidávat do cesty v URL za jméno skriptu. Tyto techniky jsou využívány poměrně často a mnoho problémů uspokojivě vyřeší. Ovšem ani tyto dva způsoby neřeší problém trvalého uložení nějakých informací. Další možností, jak tento problém vyřešit jsou tzv. cookies, což je rozšíření protokolu HTTP pocházející z dílny firmy Netscape. Dnes je toto rozšíření podporováno snad všemi prohlížeči.

4.7. Zabezpečení

Přístup k vlastnímu nastavení testu a vyhodnocení výsledků by mělo být logicky zabezpečeno před zraky neoprávněných uživatelů. Tento přístup je podmíněn v našem případě přiděleným závazným uživatelským jménem a heslem, přiděleným oprávněnému uživateli správcem systému.
V našem sytému program si pomocí jednoduché stránky s formuláři vyžádá od uživatele zadání uživatelského jména a hesla. Toto jméno a heslo je vráceno zpět skriptu, který má v proměnných $PHP_AUTH_USER, $PHP_AUTH_PW a $PHP_AUTH_TYPE dostupné uživatelské jméno, heslo a typ autentifikace (zatím je skriptovacím jazykem PHP podporována pouze autentifikace typu basic). Obsah proměnných skript dále porovnává s tabulkou uživatelů, kteří mají přidělené uživatelské jméno a heslo a tím i oprávněný přístup do systému.
Prohlížeče si během svého spuštění pamatují jméno a heslo pro danou aplikaci (určenou pomocí parametru realm). Uživateli tedy stačí zadat jméno a heslo pouze jednou, dále je již automaticky posílá prohlížeč.
Zabezpečení se samozřejmě netýká pouze první (přihlašovací) stránky, ale také je ochráněn přístup na ostatní stránky skriptu, aby tak bylo znemožněno prostým napsáním jiné stránky do příkazového řádku vstup na tyto zabezpečené stránky bez hesla.

4.8. Instalace konfiguračního modulu Testovacího Systému

4.8.1. Programové soubory

Nyní když máme plně funkční server s podporou skriptů PHP na našem počítači, můžeme přikročit k vlastní instalaci souborů konfiguračního modulu. Z CD nosiče z adresáře "/Instalace/soubory" překopírujeme do libovolného adresáře na našem webserveru překopírujeme soubory potřebné pro test tj. index.html, login.php, hlavni.php, nastaveni.php, otazky.php, fce.php, logout.php, protection.php, test.css.

4.8.2. Testy a konfigurační soubory

Soubory hotových testů a konfiguračních souborů (tzn. soubory *.xml) nakopírujeme do podadresáře .\testy příp. .\cfg.

4.8.3. Nastavení práv

Pro adresáře kde máme uloženy testy, nebo kam chcete ukládat výsledky je nutné zkontrolovat nastavení práv plného čtení a zápisu.

4.8.4. Uložení hotových testů a konfiguračních souborů

K ukládání souborů dochází do stejného adresáře jako jsou uložené původní soubory tzn. .\testy příp. .\cfg.