Image
15.5.2016 0 Comments

Databázy II / 1.časť

Späť na úvod >> Späť na seriál

Asi ste si všimli malú zmenu názvu nášho seriálu. Začíname znovu od prvej časti, ale už vo vyššej triede. To preto, lebo už sme skúsení databázisti (a databázistky!). Vieme nainštalovať server MySQL, vieme vytvoriť databázu a v nej potrebné tabuľky. Tabuľky vieme naplniť rôznymi dátami rôznymi metódami. Vieme pracovať so záznamami všelijakými spôsobmi. Ba dokonca vieme stanoviť, kto a čo môže robiť s tou-ktorou tabuľkou. Všetko je to skutočne fajn, len... Len to všetko doposiaľ dosahujeme iba z príkazového riadka. Teda my sami, ako znalí guruovia, by sme nevymenili príkazový riadok konzoly za žiadny (teda skoro žiadny) iný administrátorský nástroj, ale prenesme sa teraz duchom do našej imaginárnej knižnice. Presvedčíme našu slečnu referentku, aby si vyhľadávala záznamy v mysql monitore a ovládala pomerne zložitú syntax príkazu SELECT, nedajbože aj s určitými podmienkami? No ak by bola taký fanatik do počítadiel ako my alebo by sme ju správne motivovali korunkami, tak možno. Ale musíme predpokladať, že do knižnice si prídu požičať knihy aj ľudia s veľmi malými znalosťami počítačov alebo dokonca počítačovo negramotní! Ako si budú vyhľadávať knihy v našom projekte? Aké teda majú byť naše projekty? Musia sa ľahko ovládať, najlepšie len jednoduchým klikaním myši alebo potvrdzovaním voľby jedným klávesom. Písať by sa malo len minimálne, a ak, tak len prihlasovacie meno, heslo!!! a vyhľadávací reťazec. Zobrazovaná informácia by mala mať určitú „štábnu kultúru“. Takýmto projektom hovoríme user-friendly, teda používateľsky priateľské. A v tom je to najväčšie programátorské čaro. Princípy a alogoritmy ovládame všetci. Ale v akej podobe ich podsunieme našim používateľom, to už je ozajstný kumšt. Práve podľa prítulnosti prostredia projektu používatelia delia projekty na dobré a zlé.

Každé umenie potrebuje dve základné veci: technologické okolie a umelecký cit. Umelecký cit si nosí každý v sebe. A technologické okolie si teraz vysvetlíme.

Troška teórie
Tak ako maliar obrazu okrem umeleckého citu potrebuje plátno, štetce a farby, aj programátor potrebuje pri tvorbe projektu určité nástroje.
Za hlavný nástroj databázového projektu môžeme považovať databázový stroj, čo je v našom prípade MySQL. No aby sme sa mohli odpútať od príkazového riadka, budeme ešte potrebovať niečo, čo bude spracúvať naše požiadavky na dáta a pripraví výsledok v žiadanej forme. Okrem toho ešte potrebujeme, aby sa už takto vytvorené stránky odoslali ku klientovi, teda nejaký http server.

Apache a PHP
Každý, kto už aspoň trochu pričuchol k internetu, sa s http serverom stretol. To je server, ktorý komunikuje s klientom pomocou hypertext transfer protokolu (http). Jeho úloha je veľmi podobná ako pri nakupovaní v obchode cez pult – predavačke povieme svoju požiadavku, ona sa trochu pozvŕta medzi regálmi, a keď žiadaný tovar nájde, poskytne nám ho.

Na obr. 1 je schematicky naznačená úloha http servera:  prijať požiadavku na stránku od klienta a následne mu vrátiť požadovanú stránku.

Httpd démon, vytvorený v stredisku NCSA, prešiel, napokon tak ako všetko vo svete softvéru, mnohými opravnými záplatami, angl. a patch (čítaj  a pač). Podľa fonetického znenia záplat dostal svoje meno aj náš Indián. Server Apache (čítaj apač) je voľne dostupný http server. Niekedy mu hovoríme aj webový server.  Slúži hlavne ako server HTML stránok vo svete internetu, ale v poslednom čase sa stáva veľmi obľúbeným aj v menších podnikových intranetoch. Preto ho aj my budeme používať. Povedali sme si, že samotný http server vie len prijať požiadavku klienta na určitú stránku. Je to taký jednoduchý sluha (servus = sluha), ktorý ju vyhľadá, a ak ju má, pošle mu ju. Nič viac! Keby sme od neho chceli, aby našiel konkrétny záznam v našej databáze, neuspeli by sme. Preto potrebujeme akýsi „medzikus“ medzi webovým serverom a MySQL, ktorý by od apača prevzal požiadavku na zložitejšiu stránku, ktorú on sám nemá, spracoval ju, vytvoril určitú stránku a tú podsunul apačovi – vraj pošli to tomu klientovi. A takýto medzikus je PHP - Professional Home Pages. Ako názov naznačuje, pôjde o preprocesor, ktorý vie na základe určitých požadovaných kritérií vytvárať naozaj profesionálne domáce stránky. A to je to, čo by sme chceli dosiahnuť. Schematické znázornenie je na obr. 2.

Ako to funguje?
Veľmi inteligentne. Ak klient pošle požiadavku na klasickú stránku vo formáte HTML, server zistí, či takú stránku má. Ak áno, pošle ju WWW klientovi, ten ju spracuje a zobrazí na obrazovke počítača, ktorý o danú stránku žiadal.
Ak však požiadame o stránku s obsahom príkazov PHP, Apache odovzdá túto požiadavku preprocesoru PHP. Ten spracuje príkazy PHP a na ich základe dynamicky vygeneruje stránku HTML, ktorú posunie http serveru. Ten, ako dobrý služobník, pošle takto vytvorenú stránku klientovi.
A čo sa deje, ak klient potrebuje konkrétne údaje z databázy? Apač zistí, že klient požaduje stránku s obsahom príkazov PHP, tak ako sme to už spomínali. Preto odovzdá požiadavku preprocesoru PHP. Ten zistí, že PHP skript obsahuje príkazy, ktoré sa odvolávajú na prácu s databázovým strojom, preto sa preprocesor spojí s SQL serverom a odovzdá mu príkazy na prácu s databázou, teda nám dobre známe príkazy SQL. Server SQL (a teraz je to jedno, o ktorý ide) spracuje tieto príkazy a výsledok svojej činnosti vráti PHP. Preprocesor PHP získané hodnoty zapracuje do stránky HTML tak, aby to malo určitú štruktúru, a túto stránku posunie webovému serveru. Nakoniec ju ten pošle žiadateľovi.  
Aby to takto fungovalo, musíme mať nainštalovaný SQL server, http server a PHP. Všetky tri zložky musia byť navzájom logicky prepojené. Toto sa dosahuje úpravou príslušných konfiguračných súborov. Tak ako sme si už zvykli, všetky tri súčasti, ale aj WWW klient môžu, ale nemusia bežať na jednom počítači.
Inštalovať a konfigurovať server MySQL už vieme. Apache a PHP sa naučíme teraz.
Ukážeme si spôsob inštalácie na platforme Window XX a na Linuxe. To, že sa môžeme pripájať z Windows na Linux a naopak, už ani hovoriť nemusím.

Inštalácia a kofigurácia Apache a PHP na platforme Windows
Keďže ide o základy každého dobrého internetového či intranetového servera, budeme pokračovať metódou postupných krokov a čiastkových úspechov. To preto, aby sme si boli istí, že tá a tá vec nám už chodí a môžeme pristúpiť k ďalšej súčasti „trojice“. Predpokladám, že server MySQL nám už beží, preto si teraz ako prvé rozbeháme http server.

Inštalácia Apache
Inštalačné súbory Apache sa nachádzajú na adrese www.apache.org. Komu sa ich nechce hľadať, môže si ich stiahnuť z mojej prepracovanej webovej stránky s adresou www.mior.host.sk. Tam nájde aj ďalšie zaujímavé súbory. Treba si stiahnuť ten súbor, ktorý je určený pre daný operačný systém, v tomto prípade to je súbor apache_1_3_11_win32.exe.

Spustením tohto súboru prebehne pomerne jednoduchá inštalácia, na akú sme pod Windows zvyknutí. Defaultne sa Apache nainštaluje do adresára Program Files\Apache Group\Apache.

Základná konfigurácia Apache
Aby sme apača vôbec po inštalácii spustili, zatiaľ v základnom režime, musíme upraviť hlavný konfiguračný súbor httpd.conf. Nachádza sa v podadresári  Conf v adresári, kde je inštalovaný Apache. V našom prípade je to Program Files\Apache Group\Apache\conf.
V prípade, že tam taký súbor neexistuje, použijeme vzorový súbor httpd.conf.default, ktorý premenujeme na httpd.conf.
Tento konfiguračný súbor je pomerne zložitý, ale podstatná časť je už predpripravená na použitie. My len zmeníme niektoré parametre v určitých sekciách.
Pri editácii httpd.conf použijeme ľubovoľný editor, ktorý nezanáša do upravovaných textov nijaké iné formátovacie znaky. Ak používame Windows Commander, vnútorný editor pod klávesom F4 úplne vyhovuje. Prípadne môžeme použiť NotePad z Windows. Editory typu Word nepoužívajte!

Teraz si opíšeme úpravu najdôležitejších parametrov:
- vyhľadáme ServerType a nastavíme na ServerType standalone
- nájdeme položku ServerRoot a napíšeme ServerRoot "C:/Program Files/Apache Group/Apache"

(Aj keď to vyzerá ako chyba, naozaj píšeme priame lomky (/) a nie opačné (\), ako sme zvyknutí z DOS-u. Tu vidíte kríženie sveta Unixu a Windows. Ak sme apača inštalovali do iného adresára, zadáme cestu tam.)

- skontrolujeme, či máme nastavený Port 80
- ak chceme, aby server posielal hlásenia o problémoch na nejakú e-mailovú adresu, zadefinujeme položku ServerAdmin na niekto@niekde.kdesi, napr. ServerAdmin mior@host.sk  (Toto môžeme aj vynechať, pokiaľ hlásenia nepotrebujeme.)
- určíme meno nášho webového servera v položke ServerName, napr. ServerName web.mior.sk (zmažeme znak #)
- zadefinujeme adresár, kde sa budú nachádzať naše stránky, napr. DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs" (Podotýkam, že tento adresár musí skutočne existovať v adresárovej štruktúre počítača.)
- do položky DirectoryIndex doplníme DirectoryIndex index.html

Zatiaľ stačí, súbor httpd.conf uložíme. V adresári Windows vytvoríme súbor hosts, napr. úpravou a premenovaním súboru hosts.sam, kde doplníme vetu:

192.168.10.152   web.mior.sk

Tým sme nastavili preklad IP adries na doménové mená a naopak. V prípade, že používame náš alebo využívame cudzí DNS server, toto vynecháme.
Ak sme všetko urobili správne, resetujeme počítač. Po nabehnutí systému z ponuky Start | Programy | Apache Web Server | Start Apache server spustíme. 

Ak dostaneme DOS okno, ako je na obr. 3, server beží správne:

Pozor! Toto okno nikdy nezatvárajte, lebo by ste server zastavili. Môžeme ho však minimalizovaním uložiť na lištu.
V prípade, že okno nenabehlo alebo sa v ňom objavili podozrivé hlásenia, pozrieme sa do súboru error.log v adresári Logs.

(Upozornenie: V starších verziách Windows 95 bol nevhodný súbor winsock.dll, ktorý spôsoboval, že server  Apache nemohol vytvoriť socket na port alebo hlásil, že nemôže nájsť súbor winsock32.dll. Preto si môžete z mojej stránky stiahnuť súbor W95-winsock2setup.exe, ktorý túto chybu odstráni.)

Znakom bezproblémového spustenia http servera je to, že do súboru error.log sa nepridalo nijaké hlásenie. Zároveň v tom istom adresári sa objaví súbor httpd.pid, v ktorom je uložené PID číslo servera.

Teraz spustíme ľubovoľného WWW klienta. Môže to byť Netscape Navigator, Opera alebo Internet Explorer. Zapíšeme lokálnu adresu nášho servera, napr. http://localhost/, alebo priamo meno, ktoré sme zadefinovali v súbore httpd.conf, teda v mojom prípade http://web.mior.sk/. Ak sme upravili položku DirectoryIndex, za poslednú lomku nemusíme zadať index.html, jednoducho si to server doplní sám. Ak stránku s týmto názvom nájde v danej adresárovej štruktúre (a to by mal, ak sme pri inštalácii neurobili žiadnu chybu), pošle ju nášmu

klientovi a my by sme mali uvidieť stránku podobnú tej na obr. 4.

Ak je to tak, práve ste spustili vlastný http server!

Inštalácia PHP
Pristúpime k druhému kroku – nainštalujeme PHP. PHP existuje v dvoch funkčných verziách: 3.0.x a 4.x.y. My to najprv skúsime s verziou 3.0.x, lebo je stabilnejšia, aspoň pod Winows..
Inštalačné súbory si môžeme stiahnuť z adresy www.php.net alebo zo zrkadiel www.php.sk, prípadne www.php.cz. Samozrejme, aj z mojej adresy, kde nájdete balík php-3.0.16-win32.zip.
Tento balík rozzipujeme do adresára, najlepšie c:\php3.
Po rozbalení nájdeme v adresári súbor php3-dist.ini. Ide o vzor konfiguračného súboru PHP. Ten premenujeme na súbor php3.ini a prekopírujeme ho do hlavného adresára Windows, teda c:\windows, prípadne c:\winnt.

Otvoríme tento súbor v príslušnom editore a vykonáme tieto zmeny:
- V sekcii Paths and Directories upravíme riadok

                doc_root = c:\Program Files\Apache group\Apache\htdocs

Určíme tak cestu k súborom s našimi stránkami.
- V tej istej sekcii ešte upravíme
extension_dir = c:\php3
čo je adresár, kde je inštalované PHP.

- V sekcii Windows Extensions odkomentujeme (zmažeme znak ;) v riadku
extension=php3_mysql.dll  
čím sme povolili spoluprácu s MySQL.

- Takisto odkomentujeme riadok
extension=php3_odbc.dll
aby sme povolili spoluprácu s ODBC. Čo je ODBC, to si povieme inokedy.

Ostatné parametre tohto konfiguračného súboru necháme tak, ako boli nastavené pri inštalácii.

Všimli sme si, že sme nastavením extension=php3_mysql.dll akoby spojili PHP s MySQL. Ale ako povieme Apačovi, že má spolupracovať s PHP?

Konfigurácia Apache na spoluprácu s PHP
Znovu zeditujeme konfiguračný súbor httpd.conf. Vyhľadáme položku ScriptAlias a na nový riadok dopíšeme
ScriptAlias /php3/ "c:/php3/" (presne vrátane úvodzoviek).

Takto povieme http serveru, kde sú adresáre na spracovanie PHP stránok.

Podobne nájdeme položku AddType application, kde dopíšeme:       

AddType application/x-httpd-php3 .phtml
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3 .php

Takto sme uviedli tri MIME typy, takže naše stránky môžu mať príponu .phtml, .php3 alebo .php

K týmto MIME typom musíme nadefinovať konkrétny obslužný program. Stačí, ak dopíšeme:
Action application/x-httpd-php3 "/php3/php.exe"

- Do položky DirectoryIndex doplníme index.php3 index.phtml index.php (oddelené medzerami).
(Ak sme inštalovali PHP do iného adresára, musíme cestu k tomuto adresáru patrične upraviť aj v týchto uvedených položkách obidvoch konfiguračných súborov.)

Takže máme spolu skombinované Apache, PHP a MySQL. Aby sme mohli otestovať vzájomnú súčinnosť, pripravíme si veľmi jednoduchý testovací súbor, napr. s menom test.php3, ktorý bude obsahovať iba tri riadky:

                                    phpinfo()
                ?>

(Význam jednotlivých položiek bol vysvetlený v PC REVUE v seriáli Programujeme v PHP.)
Takto vytvorený súbor uložíme do adresára C:\Program Files\Apache Group\Apache\htdocs.

Po uzavretí všetkých konfiguračných súborov najlepšie zresetujeme počítač. Po novom spustení postupujeme takto:
a)    najprv spustíme MySQL. V prípade neistoty, či naozaj funguje, skúsime spojenie pomocou monitora mysql
b)    spustíme http server Apache už uvedeným spôsobom. Môžeme prípadne preveriť jeho funkčnosť zavolaním hlavnej stránky http://localhost/
c)     do WWW prehliadača zadáme adresu k súboru test.php3, napr. http://localhost/test.php3 alebo úplným menom servera http://web.mior.sk/test.php3
d)    ak vidíme niečo také ako na obr. 5,

môžeme smelo zakričať: „VENCEREMOS!“ (Zvíťazíme!), lebo na testovacej stránke klienta vidíme, že PHP komunikuje aj s MySQL.

A nabudúce pomôžeme tým, čo pracujú na Linuxe.

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Ako zbaviť fotky hmly

08.12.2016 11:59

Hmla alebo dym sú často veľmi kreatívne nástroje. No všetkého veľa škodí. Fotka potom stráca kontrast a v podstate na nej nič nevidieť. Hmlu môžete neraz následnými úpravami odstrániť alebo zredukovať ...

Ako na to

Užitočné SW nástroje

08.12.2016 11:53

AllDup v4.0.3 Určenie: program na vyhľadávanie a odstraňovanie duplicitných súborov Vlastnosti: duplicitné súbory sa vyhľadávajú len na zvolených diskových jednotkách alebo len v rámci vybraných ...

Ako na to

Fotografovanie s bleskom

08.12.2016 11:47

Ak máte moderný fotoaparát so vstavaným alebo externým bleskom, zdá sa vám téma článku triviálna. Jednoducho nastavíte vhodný režim, vyberiete najlepšiu kompozíciu záberu, exponujete a o zvyšok sa už ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá