Image
15.5.2016 0 Comments

Databázy II / 2.časť

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

Ak sme predošlú časť seriálu venovali tým, čo budú pracovať s našou „trojicou“ (Apache + PHP + MySQL) na Windows, tentoraz si prídu na svoje linuxáci. Táto časť je venovaná inštalácii a sprevádzkovaniu Apača a „péhápéčka“ na tomto operačnom systéme. Už vopred musím upozorniť, že je to pre linuxového začiatočníka pomerne náročná téma, kde inštalácia vo Windows bola oproti tomu zábava! Problém je v tom, že zatiaľ čo inštalácia vo WinXX bola pomerne jednoznačná, v Linuxe je niekoľko možností. (Ale všetky vedú k rovnakému cieľu!) Ale keďže všetky tri produkty boli vyvinuté natívne pre linuxové (unixové) prostredie a až potom boli portované na platformu Windows, inštalácia v Linuxe sa nám odmení stabilnosťou a spoľahlivosťou, o ktorej vo Windows môžeme len snívať. Takže windowsáci si dajú dnes na pláži pohov. Linuxáci, ideme na to...

Typy inštalácie
Aj začiatočník v linuxovom svete, inak prezývaný newbie, vie, že (skoro) každý program v Linuxe je možné inštalovať tromi spôsobmi:

a)    z vopred pripravených inštalačných balíkov v príslušnom formáte používanej distribúcie, napr. .RPM, .DEB a podobne
b)    inštalovaním už skompilovaných súborov – tzv. binárok
c)     kompiláciou zdrojových textov

Zatiaľ čo prvé dve možnosti nám pomerne zväzujú ruky, lebo s hotovými balíkmi už nespravíme nič, vlastná kompilácia zdrojových kódov poskytuje nesmierne možnosti, ako zhotoviť program podľa našich požiadaviek, a to nielen použitím parametrov pri kompilácii, ale aj úpravou samotných zdrojových textov (pokiaľ to licenčná politika k zdrojovým textom dovoľuje – čo býva v Linuxe skoro vždy).
My si ukážeme prvú a poslednú možnosť.

Zdroje súborov
Najprv však konkrétne súbory musíme z niekadiaľ získať. Jednou z možností je stiahnuť ich z internetu priamo od autorov, teda v našom prípade www.apache.org, www.php.net a www.mysql.com.
Iná možnosť je použiť zdroje programov, ako známe „čerstvé mäso“ - http://freshmeat.net alebo  http://slashdot.org. Pre našinca je asi najlepšie využiť cédečká z ComputerPressu, pretože sa na nich nachádzajú už počeštené programy. To sú také, kde skupina programátorov upravila originálne súbory, aby spoľahlivo zobrazovali aj česko-slovenské národné znaky. Spravidla sa v názvoch takto upravených súborov nachádza skratka cs alebo cz. Ale ak sa vám nechce zbytočne hľadať, môžete sa pozrieť na moju stránku www.mior.host.sk, kde nájdete potrebné súbory.

Inštalácia balíkov RPM
Výhodou inštalácie balíkov RPM je, že sa súbory nielen nakopírujú do prednastavených adresárov, ale sa vytvoria aj potrebné linky a spúšťacie skripty. Zároveň sa automaticky program spustí bez potreby resetu počítača. (Tu je veľký rozdiel oproti WinXX – počítač s Linuxom resetujeme len v najhorších prípadoch!) Budeme potrebovať tieto súbory – apache-1.x.y.rpm, php-3.x.y.rpm, php-mysql-3.x.y.rpm. Vieme, že písmená x a y nahrádzajú čísla verzií. Pre názornosť uvediem príklad mojej inštalácie:

- apache-1.3.12-4cs.i386.rpm – obsahuje všetky potrebné súbory http servera
- apache-manual-1.3.12-4cs.i386.rpm – obsahuje dokumentáciu k serveru (v angličtine)
- php-3.0.16-2cs.i386.rpm – obsahuje súbory PHP preprocesora
- php-manual-3.0. 16-2cs.i386.rpm – obsahuje dokumentáciu k PHP (v angličtine)
- php-mysql-3.0.16-2cs.i386.rpm – obsahuje moduly potrebné na spoluprácu s MySQL

Tak ako všetko v Linuxe aj inštalácie balíkov RPM je možné urobiť rôznymi spôsobmi. Je jedno, ktorý použijeme, všetky vedú k jednému správnemu cieľu. Predpokladajme, že máme MySQL už nainštalované, lebo sme to už urobili dávno, a súbory Apache a PHP sme si skopírovali niekam na disk.

Prvá možnosť je použiť príkazový riadok (symbol # bude značiť príkazový riadok Linuxu):

# rpm -Uvh apache*.rpm
#
rpm -Uhv php*.rpm

Druhá možnosť je použiť priamo manažér súborov Midnight Commander. Ten veľmi dobre spolupracuje s balíkmi RPM. Kurzor nastavíme na požadovaný balík RPM, stlačíme Enter, čím sa dostaneme k obsahu balíka. Presunieme kurzor na súbor s názvom INSTALL a znovu stlačíme Enter. Prebehne inštalácia balíka do potrebných adresárov a spustenie programov.
Treťou možnosťou je použitie vhodného manažéra RPM v prostredí X Windows, napr. GnomeRPM v prostredí Gnome alebo kpackadge v KDE. Keďže tieto prostriedky sú veľmi intuitívne, nebudem ich tu opisovať.

Inštalácia zo zdrojových textov
Už vieme, že všetky tri programy spolu súvisia, a preto ich treba vzájomne prepojiť. Robí sa to hlavne v konfiguračných súboroch, ale pri inštalácii zo zdrojových textov je potrebné vykonať určité nastavenia kompilácie. Na to použijeme parametre v príkazovom riadku. Preto budeme preskakovať z kompilácie Apache do kompilácie PHP a naspäť, aby sme zabezpečili požadované prepojenie. Samozrejme, po kompilácii sa ešte nevyhneme nastaveniu v konfiguračných súboroch.

Zdrojové texty súborov sa spravidla nachádzajú skomprimované vo formáte .tar.gz. Predpokladajme, že vlastníme zdrojové texty v súboroch:
- apache_1.3.12.tar.gz – čo je balík súborov http servera, ktorý skopírujeme napr. do adresára /opt/apache (tento adresár si, samozrejme, môžeme ľubovoľne zvoliť, je to len pomocný adresár)
- php_3.0.16.tar.gz – čo je balík so súbormi PHP preprocesora, ktorý skopírujeme do adresára /opt/php.

Poďme spolu postupnými krokmi k cieľu:
1.     V obidvoch uvedených adresároch „starované“ balíky rozbalíme:

# gzip -d *.gz
# tar xf *.tar

2.     V adresári /opt/apache pristúpime ku konfigurácii prekladu Apache, kde parametrom prefix stanovíme, kam chceme http server nainštalova. Pre náš príklad to môže by do adresára /opt/www:

# ./configure  --prefix=/opt/www

3.     Prejdeme do adresára /opt/php a skonfigurujeme preklad PHP. Keďže chceme databázovú podporu pre MySQL a zároveň spoluprácu s Apačom, toto uvedieme v príslušných parametroch:

# ./configure --with-mysql --with-apache_1.3.12 --enable-track-vars  

[Alternatívou k príkazu ./configure je spustenie skriptu ./setup, ktorý sa spýta na niekoľko otázok a na základe odpovedí potom spustí príkaz ./configure s príslušnými parametrami.]

4.     Po úspešnej konfigurácii spustíme kompiláciu PHP v adresári /opt/php:

# make
# make install

5.     Ak prebehla kompilácia PHP v poriadku, presunieme sa opäť do adresára /opt/apache, kde dokončíme konfiguráciu kompilácie Apache pre podporu s modulom PHP:

# ./configure --prefix=/opt/www --activate-module=src/modules/php3/libphp3.a

6.     V adresári /opt/php prekopírujeme:

# cp php3.ini-dist /usr/local/lib/php3.ini

čím vytvoríme súbor php3.ini.

7.     Pristúpime ku kompilácii Apača:

# make
# make install

V adresári /opt/www sa vytvorí adresárová  štruktúru /bin, /sbin, /htdocs, /log. Nová binárna verzia démona httpd sa nachádza v adresári /sbin (inštalácia pomocou balíkov RPM môže vytvoriť inú adresárovú štruktúru). Touto novou verziou nahradíme starú verziu httpd.

Zabezpečenie spúšťania démona httpd
Aby sme zabezpečili automatické spúšťanie démona httpd vždy po štarte počítača, vykonáme nasledujúce kroky, ktoré sú platné pre Red Hat Linux:
Vytvoríme štartovací skript s názvom httpd. Jeho vzor je na výpise č. 1:

#!/bin/sh

# Source function library.

. /etc/rc.d/init.d/functions

# See how we were called.

case "$1" in

  start)

                echo -n "Starting httpd: "

                daemon httpd

                echo

                touch /var/lock/subsys/httpd

                ;;

  stop)

                echo -n "Shutting down http: "

                killproc httpd

                echo

                rm -f /var/lock/subsys/httpd

                rm -f /var/run/httpd.pid

                ;;

  status)

                status httpd

                ;;

  restart)

                $0 stop

                $0 start

                ;;

  reload)

                echo -n "Reloading httpd: "

                killproc httpd -HUP

                echo

                ;;

  *)

                echo "Usage: $0 {start|stop|restart|reload|status}"

                exit 1

esac

 

exit 0

 

 

Tento skript uložíme do adresára /etc/rc.d/init.d.

Do adresára /etc/rc3.d urobíme symbolickú linku s číslom niekde na konci číselného radu, napr. S98apache, ktorá bude ukazovať na súbor /etc/rc.d/init.d/httpd.

Ako z výpisu vidieť, činnosť httpd démona je možné ovládať príkazmi:

# /etc/rc.d/init.d/httpd start
alebo
# /etc/rc.d/init.d/httpd stop

alebo restart, reload a status.

Ak  sme všetko vykonali správne, môžeme pristúpiť ku konfigurácii Apache, ktorá je veľmi obdobná ako v prostredí Windows.

Konfigurácia Apache
Opíšeme si jednotlivé úkony. Editujeme dobre známy súbor httpd.conf:
- vyhľadáme ServerType a nastavíme na ServerType standalone;
- určíme meno nášho webového servera v položke ServerName, napr. ServerName web.doma.sk (zmažeme znak #);
- nájdeme položku ServerRoot a napíšeme ServerRoot  "/etc/httpd";
- skontrolujeme, či máme nastavený Port 80;
- ak chceme, aby server posielal hlásenia o problémoch na nejakú emailovú adresu, zadefinujeme položku ServerAdmin na niekto@niekde.kdesi, napr. ServerAdmin mior@host.sk . Toto môžeme aj vynechať, pokiaľ hlásenia nepotrebujeme;
- odpoznámkujeme (zmažeme znak #):

LoadModule php3_module /usr/lib/apache/libphp3.so
AddModule mod_php3.c
EncodeContentType application/x-httpd-php
EncodeContentType application/x-httpd-php3
EncodeContentType application/x-httpd-phps

aby server Apache natiahol potrebné moduly pre spoluprácu s PHP;
- nastavíme, aby Apache správne obsluhoval stránky PHP. 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;
- nastavíme, kde chceme mať uložené naše stránky, napr. DocumentRoot  "/home/httpd/html";
- do položky DirectoryIndex doplníme DirectoryIndex index.html index.php3 index.php.

Zatiaľ stačí, súbor httpd.conf uložíme. V adresári /etc vytvoríme súbor hosts, kde doplníme vetu:

192.168.10.152   web.doma.sk

Tým sme nastavili preklad adries IP na doménové mená a naopak. V prípade, že používame náš alebo využívame cudzí DNS server, toto vynecháme.

Konfigurácia PHP
Pri konfigurácii PHP stačí editovať súbor php3.ini, kde odpoznámkujeme položku:
extension=mysql.so

Tým sme stanovili, že v prípade potreby bude preprocesor kooperovať s MySQL serverom.

Test spojenia
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 s menom napr. test.php3, ktorý bude obsahovať iba tri riadky:

                              phpinfo()
        ?>

Takto vytvorený súbor uložíme do adresára, kam je nastavená položka DocumentRoot, teda /home/httpd/html.
Uložíme všetky otvorené súbory a vykonáme tieto kroky:

a)    najprv overíme, či máme spustené MySQL. Použijeme príkaz:

# ps ax¦grep mysql

Ak dostaneme niečo podobné ako na výpise č. 2, mysql server beží:

  577 ?        S      0:00 sh /usr/bin/safe_mysqld --user=mysql --datadir=/var/l
  609 ?        S      0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql
  622 ?        S      0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql
  623 ?        S      0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql
  851 pts/0    S      0:00 grep mysql

V prípade neistoty, či naozaj funguje, skúsime spojenie pomocou monitora mysql

Ak mysql server nebeží, spustíme ho príkazom:
# mysqld &
a znova overíme jeho beh.

b)    podobne príkazom:

# ps ax¦grep http

overíme beh http démona. Mali by sme dostať niečo ako na výpise č. 3:

  572 ?        S      0:00 httpd
  584 ?        S      0:00 httpd
  585 ?        S      0:00 httpd
  586 ?        S      0:00 httpd
  587 ?        S      0:00 httpd
  588 ?        S      0:00 httpd
  589 ?        S      0:00 httpd
  590 ?        S      0:00 httpd
  591 ?        S      0:00 httpd
  872 pts/0    S      0:00 grep httpd

 

Takisto môžeme použiť príkaz:
# /etc/rc.d/init.d/httpd status
ktorý vypíše status démona httpd – výpis č. 4:

httpd (pid 591 590 589 588 587 586 585 584 572) is running...

 

Ak server httpd nebeží, spustíme ho príkazom:
# /etc/rc.d/init.d/httpd start
a overíme jeho beh.

Môžeme prípadne preveriť jeho funkčnosť zavolaním hlavnej stránky http://localhost/, prípadne http://web.doma.sk/ alebo IP adresou http://192.168.10.153 v niektorom z obľúbených prezeračov. Dostaneme úvodnú obrazovku ako v predchádzajúcej časti, alebo ak sme inštalovali počeštenú verziu, dostaneme výsledok.

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.doma.sk/test.php3.

vieme, že funguje Apache s PHP vrátane MySQL.

A to bolo cieľom nášho úsilia. V tomto bode sa cesty priaznivcov Windows a milovníkov Linuxu opäť stretávajú. Tak si ešte poležme niekde na pláži, poobzerajme pekné baby (dámy zase chalanov) a nazbierajme sily na tvorbu prvej oknoidnej databázovej aplikácie. Ak môžete, pozrite si predbežne niečo o tvorbe HTML stránok (ale nemusíte).

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 funguje sandbox?

08.12.2016 15:36

Každá aplikácia môže pre operačný systém počítača či mobilného zariadenia predstavovať potenciálnu hrozbu, a to aj v prípade, ak neobsahuje žiadne bloky škodlivého kódu. Murphyho zákony neúprosne defi ...

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Žiadne komentáre

Vyhľadávanie

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

Najnovšie videá