Prevádzkujeme webserver na domácom počítači – LAMP

28. Máj, 2010, Autor článku: Foltin Martin, Informačné technológie
Ročník 3, číslo 5 This page as PDF Pridať príspevok

Internet postupne presiakol do každodenného života v spoločnosti. Niet divu, že každý počítačový nadšenec sa zaujíma o nové technológie ktoré svetová sieť prináša. Nájdu sa aj takí, ktorí by ale radi aktívne zasiahli do rozvoja a vytvorili si vlastnú webovú prezentáciu. Pustia sa to štúdia základov a isto narazia na jazyk HTML.

Po čase si však uvedomia, že takýto spôsob tvorby stránok nie je interaktívny a neumožňuje im komunikovať obojsmerne s používateľom. Dokážu vytvoriť len statickú stránku. Naviac si uvedomia, že ich výtvory by radi zverejnili pred celým svetom. Vzniká tu teda niekoľko požiadaviek, ktoré klasické HTML a domáci počítač nedokážu uspokojiť. Ako teda riešiť tento problém ?

Pre prevádzku interaktívneho webu, je potrebné zabezpečiť niekoľko úloh. V prvom rade je to vybavenie hostingu. Jedná sa o zabezpčenie vlastnej domény a poskytnutie istého dátového priestoru. Ponuka je v tomto smere široká a nájdeme na trhu dokonca poskytovateľov, ktorí dávajú základný balík služieb zadarmo. Ak sme si teda dojednali hosting, tak môžeme zverejňovať naše výsledky práce celému svetu. Ak však budeme využívať iba jazyk HTML, tak sa bude jednať o weby statické. Súčasné moderné weby sa však opierajú o niektoré jazyky, ktoré umožňujú istú interaktivitu. K tomu sa neraz naväzujú databázy, ktoré slúžia ako úložisko potrebných informácií.

Obľúbenou kombináciou použitie skriptovacieho jazyka PHP a databázového servera MySQL. Obe technológie sú obvykle k dispozícií aj na strane poskytovateľa hostingu. Narážame tu však na problém vývoja vlastnej web stránky. Napísať program, ktorý nahráme na web a následne ho začneme testovať je značne komplikované a neefektívne. Preto vzniká potreba inštalácie vlastného servera s podporou popísaných technológií (PHP a MySQL) na domáci počítač. Ladenie a vývoj webu sa teda presúva na lokálny počítač a až hotový produkt sa nahráva na server poskytovateľa. Práca je tak výrazne efektívnejšia a naviac dovoľuje pracovať na vývoji aj bez pripojenia do internetu.

Ako by sme ale mali postupovať, ak si chceme doma „rozbehať“ vlastný webový server ? Môžeme sa poohliadnuť po komerčných produktoch. Väčšina vývojárov sa však spoľahne na open source komunitu a zvolí kombináciu kvalitného a veľmi rozšíreného servera Apache. Interpret jazyka PHP pre Apache je tiež z dielne vývojárov, ktorí ctia princípy slobodného softvéru a to isté platí aj o databázovom serveri MySQL. Jednotlivé časti je možné nainštalovať a následne nakonfigurovať tak, aby spolu komunikovali. Je to však skôr úloha pre skúsených používateľov, ktorí vedia presne čo od prevádzky webového servera požadujú. Článok je však smerovaný skôr pre ľudí bez hlbších skúseností, alebo pre ľudí čo nemajú potrebu všetko ladiť a preferujú rýchle a funkčné riešenie. Pre nich sú k dispozícií hotové balíky, ktoré obsahujú potrebné technológie. Postačuje si ich stiahnuť a nainštalovať. Samozrejme je potrebná aj elementárna konfigurácia. S tou sa práve oboznámime v tomto texte. V prvom rade si musíme zodpovedať otázku na akom operačnom systéme budeme webový server prevádzkovať. Na výber máme totiž trojicu produktov pre pravdepodobne najrozšírenejšie desktopové operačné systémy. Každý z nich však udržiava iná skupina ľudí a tak sa aj ich správanie líši. Jedná sa o tieto balíky.

  • LAMP pre Linux
  • MAMP pre Mac OS X
  • WAMP pre Windows

Je zrejmé, že prvé písmeno v skratke symbolizuje operačný systém. Ostatné znaky znamenajú Apache, MySQL a PHP (v Linuxe môže P symbolizovať aj jazyky Perl alebo Python). Nakoľko inštalácia a konfigurácia je najkomplikovanejšia na platforme Linux, bude jej venovaný ostatok tohto článku. V budúcej časti si priblížime inštaláciu balíka pre operačné systémy Windows a Mac OS X.

Inštalujeme LAMP
Ako reprezentanta z rodiny operačných systémov Linux sme zvolili populárne Ubuntu v aktuálnej verzii 10.4 Lucid Linx. Spôsob inštalácie v inej distribúcii sa môže mierne líšiť. Ako teda postupovať, ak si chceme „rozbehať“ LAMP na Ubuntu ? Musíme zabezpečiť beh týchto funkcií

  • Apache – beh webservera
  • PHP interpret – umožňuje spúšťanie PHP skriptov
  • MySQL – databázový server
  • phpMyAdmin – interaktívne rozhranie pre správu databázy MySQL

Podľa názvu by mal všetky uvedené úlohy bez zbytku spĺňať LAMP. Bohužiaľ nie je to celkom pravda. Poďme ale postupne. Pomocou správcu balíčkov – Synaptics nainštalujeme meta-balíček LAMP. Túto úlohu splníme spustením Synaptics z menu System/Administration/Synaptics Package Manager. Jeho spustenie bude pravdepodobne vyžadovať administratorské heslo. V Synaptics vyberieme v hornej lište Edit a Mark Packages by Task… . Tu sa vyberajú metabalíčky. Zo zoznamu ponúkaných skupín zvolíme LAMP server. Týmto meta-balíčkom si žiadame inštaláciu všetkých balíčkov pre LAMP.


Obr. 1. Metabalíček LAMP

Voľbu potvrdíme stlačením tlačidla OK. Synaptics nám vyhľadá balíčky potrebné pre inštaláciu LAMPu. Stlačením Mark označíme v potrebné balíčky.


Obr. 2. Časti metabalíčka LAMP

Následne ich necháme nainštalovať. Ak bola inštalácia úspešná máme k dispozícii funkčný webový server Apache a databázu MySQL. Áno, čítate správne. Ani interpret jazyka PHP ani phpMyAdmin sa ešte nenainštalovali. Prečo tvorcovia meta-balíčka LAMP vkladajú znak P do názvu teda nie je celkom zrejmé. Je to o to zarážajúcejšie, že sa nainštalujú moduly do už funkčného PHP systému pre komunikáciu s MySQL databázou. Tie by podľa nás mali závisieť na PHP moduloch. Ak by to tak bolo, tak by sa PHP interpret nainštaloval. Pravdou je, že P môže znamenať Perl, alebo Python. Bolo by ale vhodné na skutočnosť, že LAMP neobsahuje potrebný interpret a, že si ho používateľ musí doinštalovať sám dodatočne, upozorniť. Ako ho nainštalovať sa dozvieme neskôr. Teraz sa poďme presvedčiť o funkčnosti servera Apache. Spustíme internetový prehliadač a ako adresu zadáme localhost. Výsledkom by mala byť nasledujúca webová stránka.


Obr. 3. Preverenie funkčnosti webservera Apache

Zobrazuje sa vlastne vopred naprogramovaná stránka s menom index.html. Táto stránka je uložená v adresári /var/www. Ak sa pokúsime k adresáru prepracovať pomocou terminálu, tak zistíme, že nemáme dostatočné práva na zápis nových súborov v tomto adresári.


Obr. 4. Adresár /var/www a práva zamedzujúce zápis do adresára

Pomôžeme si teda príkazom chmod, ktorý nám potrebné práva pridelí. Zadáme teda príkaz, ktorým získame plnú kontrolu nad adresárom www.

sudo chmod 777 www


Obr. 5. Zmena práv pomocou chmod

V tomto okamihu teda môžeme využívať služby servera Apache a do adresára www môžeme ukladať naše .html dokumenty.

Ďalším krokom bude inštalácia PHP interpretera. Ten, ako sme spomínali vyššie, nie je súčasťou balíka LAMP server a je nutné ho doinštalovať zvlášť. Použijeme opäť správcu balíčkov Synaptics. Doinštalujeme tieto balíčky : php5, php5-cgi, php5-cli, php5-sqlite. Pre rýchlejšie vyhľadávanie môžeme využiť editačné okno Quick search v záhlaví Synaptics Package Manager-a.


Obr. 6. Balíčky potrebné pre beh interpreta PHP

Po inštalácii uvedených programov by už mal byť zabezpečený beh interpreta jazyka PHP. Preveriť to môžeme napísaním jednoduchého skriptu v tomto jazyku. Na písanie kódu môžeme využiť ľubovoľný textový editor pripadne textový procesor (v našom prípade editor gedit). Výsledný súbor index.php uložíme do adresára /var/www/. Funkčnosť preveríme internetovým prehliadačom. Ako adresu zadáme localhost/index.php. Ak je všetko v poriadku, tak sa zobrazí text „Hello World“.


Obr. 7. Správne fungovanie PHP interpreta

Dalo by sa povedať, že v tomto okamihu sme v cieli. Webový server Apache sa spolu s MySQL nainštalovali v rámci balíka LAMP server, PHP interper sme doinštalovali samostatne. Máme teda základ hotový. O funkčnosti MySQL sa presvedčíme pomocou terminálu príkazom mysql -u root -p (root je v tomto prípade prihlasovacie meno správcu databázy).


Obr. 8. Pripojenie do databázy MySQL z terminálu

Vidíme, že sme sa dostali do databázového systému, kde už môžeme tvoriť komplikované štruktúry pomocou príkazov jazyka SQL. Ak by sme ale chceli zjednodušiť túto činnosť, môžeme ešte doinštalovať GUI pre MySQL – phpMyAdmin. Opäť využijeme služby Synaptics-u. Pomocou Quick search vyhľadáme príslušný balíček phpmyadmin.


Obr. 9. Balíček phpmyadmin

Inštalácia si vyžiada ešte inštaláciu ďalších balíčkov. Všetko sa však deje automaticky a my musíme len odklepávať OK.


Obr. 10. Balíčky potrebné pre správny beh phpMyAdmin

Počas inštalácie nastavíme väzbu na webserver Apache.


Obr. 11. Konfigurácia phpMyAdmin

O správnej inštalácii sa presvedčíme zadaním adresy localhost/phpmyadmin do internetového prehliadača.


Obr. 12. Prihlásenie sa do databázy cez GUI phpMyAdmin

Zadáme prihlasovacie meno (obvykle to nebýva root, ale u nás je) a heslo, ktoré sme nastavili počas inštalácie. Dostaneme sa do GUI pre správu databáz MySQL.


Obr. 13. Prostredie phpMyAdmin

O prepojení medzi PHP a MySQL sa presvedčíme jednoduchým PHP skriptom, ktorý sme dopísali do existujúceho index.php. Ak je spojenie v poriadku, prehliadač vypíše správu o pripojení k databáze.


Obr. 14. Spolupráca PHP a MySQL

V článku sme si priblížili možnosti prevádzkovať na domácom počítači vlastný webový server s databázovým serverom a s intepretom jazyka PHP. Práve táto kombinácie je v komunite webových vývojárov veľmi obľúbená. Všetky produkty sú z rodiny open source distribuované pod GPL. Vývojár sa teda nemusí obávať porušenia licenčnej zmluvy pri inštalovaní na svoj počítač. Ukázali sme si postup, ako takýto komplexný produkt nainštalovať na jednu z najrozšírenejších distribúcii GNU/Linuxu – Ubuntu 10.4. Inštalácia a konfigurácia má isté komplikácie, ale veríme, že ju zvládne aj začínajúci používateľ tohto operačného systému. V budúcom článku si priblížime inštaláciu obdobných balíkov pre operačné systémy Mac OS X a Windows.


Spoluautormi článoku sú Ing. Michal Blaho a Ing. Peter Fodrek, PhD.

2 príspevky(ov) k článku “Prevádzkujeme webserver na domácom počítači – LAMP”

  1. Vasar napísal:

    Balicky php5, php5-cgi, php5-cli, php5-sqlite nejsou pro beh php skriptu pod apachem vubec potreba. K tomu staci balik libapache2-mod-php5, ktery se nainstaluje se zvolenim metabaliku LAMP. Tudiz pismeno P je tam zcela spravne. Pokud nepotrebujeme interpret php z prikazove radky, tyto dalsi baliky neni potreba instalovat.
    Take nevim, jestli davat vsem uzivatelum pravo zapisu na adresar www je nejlepsi napad. Vzit si vlastnictvi se mi zda lepsi.

  2. Peter Fodrek napísal:

    Otazkou je, ake boli zvolene repozitare ? Bol som svedkom toho, ze metabalik nestacil. nie som si isty, ze libapache2-mod sa instaluje default. mozno po novom uz ano. otaykou je ci sa ten modul apache nastavil pri instalcii v metabaliku spravne. Je moyne,ye islo len o chzbu v post install skriptoch.

Napísať príspevok