Mezi základní pracovní nástroj asi každého webového kodéra je takzvaný localhost, tedy softwarový server běžící přímo na osobním počítači. Pojďme se podívat, kde jej vzít a šikovně nastavit...
Osobně mám výbornou zkušenost s Uniform Serverem, kterému se zde budu také věnovat. Obsahuje PHP, Apache i MySQL. Jeho instalace i používání jsou velice snadné a je přenosný (nepotřebuje instalaci, takže ho lze mít klidně i na flešce).
Otevřete adresu http://www.uniformserver.com/, zvolte Download a v tabulce vyberte nejnovější verzi (Newest Files) serveru ve formátu, který je Vám bližší (exe je samorozbalovaci archiv). Server se neistaluje, stačí jen rozbalit do nějaké složky (doporučuji kořenový adresář disku).
UniServer/start.exe - spustí se SysTray aplikace (o čemž budete informování okénkem), což v praxi znamená ikonku v pravé části hlavního panelu windows. Kliknutím levým tlačítkem myši na tuto ikonu vyvoláte nabídku, ze které zvolíte Start UniServer, podobným způsobem pro vypnutí Stop. V nabídce jsou dále další nastavení. V případě, že se Váš Firewall bude dotazovat, doporučuji zvolit Blokovat. Na funkci to nemá vliv a myslím, že je to lepší.
Pokud server běží, můžete otevří svůj internetový prohlížeč a zadat do něj adresu "localhost" - měla by vyskočit stránka s konfigurací serveru. Jak tak koukám, UniServer jde s dobou, dříve trochu zaostával ale v nové verzi jsou nejnovější verze modulů PHP, MySQL a Apache.
Vaše stránky nyní můžete ukládat do UniServer/www a budou přístupny jednoduše na adrese http://localhost/.
Nastavení se provádí v souboru httpd.conf (standardně v UniServer\usr\local\apache2\conf\).
Mód rewrite slouží například k vytváření User-Friendly odkazů, tj. odkazů, z nichž můžete usuzovat na obsah stránky (např. www.domena.cz/clanky/localhost-ladeni-webu-offline. Je to rozhodně hezčí, než třeba www.domena.cz/index.php?sekce=3&id=13, což může vracet úplně stejnou stránku o localhostu). O této problematice si povíme někdy jindy, zatím Vás odkážu na související odkazy níže.
Pokud si s mod_rewrite (tak se správně píše) hrajete, doporučuji pro ladění přidat do httpd.conf tento kód:
RewriteLogLevel 9 #9=nejvyssi uroven RewriteLog logs/rewrite.log #cesta k logovacimu souboru
Pozor! Když jsem před "logs" dal ještě lomítko, nefungovalo to.
Pro jednotlivé složky lze provést různá praktická nastavení pomocí souboru ".htaccess" (ano, s tečkou na začátku a bez přípony; a pozor, opravdu jsou tam dvě "c" a dvě "s", často se chybně píše .htacces), který se vloží do složky, kterou má ovlivnit (ovlivní i všechny podsložky). Více o síle .htaccess čtěte třeba v článku Soubor .htaccess.
Logovací soubory serveru hledejte defaultně ve složce UniServer\\usr\\local\\apache2\\logs\\.
Osobně dělám na více webech a kvůli ladění se mi hodí virtuální servery. Na webech mám třeba rewrite_mod nastaven tak, že správně pracuje jen, pokud se web nahází v rootu. Pomocí virtuálního host můžete také jednoduše přistupovat ke komplikované struktuře více webů.
ServerName je jméno webu (adresa, kterou zadáte do prohlížeče), DocumentRoot je umístění složky, kterou chcete pro daný web zobrazovat jako kořenovou.
NameVirtualHost * #normalni localhost, zobrazuje celou slozku www <virtualhost> ServerName localhost:80 DocumentRoot /www </virtualhost> #virtual host1 <virtualhost> ServerName local.mujweb DocumentRoot /www/mujweb ErrorLog logs/error_mujweb.log </virtualhost> #virtual host <virtualhost> ServerName local.zahrabany DocumentRoot /www/projekt/prace/leto ErrorLog logs/error_zahrabany.log </virtualhost>
Před "logs" nesmí být lomítko! Jinak dle mých zkušeností vrací chybu 500, internal server error.
Aby Vaše weby byly přístupné jednoduše zadáním jména ServerName do prohlížeče, je nutné přidat jejich názvy ještě do systému Windows, konkrétně do souboru C:\windows\system32\drivers\etc\hosts:
127.0.0.1 localhost local.mujweb local.zahrabany
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Čas je materiál, ze kterého se vyrábí život."