Webové servery

Web server je softvér zodpovedný za prijímanie HTTP požiadaviek od klientov, ktoré sú známe pod menom webové prehliadače, tieto požiadavky spracuje a pošle HTTP odpovede obsahujúce dáta, ktorými sú zvyčajne webové stránky v tvare HTML dokumentov spolu s pripojenými objektami (obrázky, atď.).

HTTPD - webový server Apache2

Apache je najčastejšie používaný webový server v systéme Linux. Webové servery sa používajú na spracovanie webových stránok, ktoré si vyžiadajú klientské počítače. Klienti, ktorí odosielajú typické požiadavky a zobrazujú webové stránky, sú webové prehliadače ako Firefox, Opera alebo Mozilla.

Používateľ zadá URL adresú (Uniform Resource Locator), ktorá smeruje na webový server podľa FQDN mena domény (Fully Qualified Domain Name) a cesty k žiadanému zdroju. Napríklad, ak chceme zobraziť domovskú stránku Ubuntu, stačí zadať iba názov domény FQDN. Ak by sme chceli konkrétne informácie o platenej podpore, je potrebné zadať názov domény FQDN a za ním cestu.

Najčastejšie využívaný protokol na prenos webových stránok je Hyper Text Transfer Protocol (HTTP). Podporované sú tiež protokoly ako Hyper Text Transfer Protocol cez Secure Sockets Layer (HTTPS) a File Transfer Protocol (FTP) - protokol na nahrávanie a sťahovanie súborov.

Webový server Apache sa často používa v kombinácií s databázou MySQL a skriptovacím jazykom Hypertextový preprocesor (PHP) a inými populárnymi skriptovacími jazykmi ako Python a Perl. Takáto konfigurácia sa nazýva LAMP (Linux, Apache, MySQL a Perl/Python/PHP) a je mocnou a robustnou platformou slúžiacou na vývoj a nasadenie webových aplikácií.

Inštalácia

V systéme Ubuntu Linux je dostupný Webový server Apache2. Apache2 nainštalujeme takto:

  • V príkazovom riadku zadáme nasledujúci príkaz:

    sudo apt-get install apache2

Konfigurácia

Apache2 sa konfiguruje pomocou direktív v textových konfiguračných súboroch. Konfiguračné súbory sú rozdelené do nasledujúcich súborov a priečinkov:

  • apache2.conf: hlavný konfiguračný súbor Apache2. Obsahuje globálne nastavenia pre Apache2.

  • conf.d: obsahuje konfiguračné súbory, ktoré sa aplikujú globálne pre Apache. Ostatné balíky, ktoré používajú Apache2 na spracovanie obsahu, sem môžu pridať súbory alebo symbolické odkazy na svoje priečinky.

  • envvars: súbor, v ktorom sú nastavené premenné prostredia Apache2.

  • httpd.conf: predošlý hlavný konfiguračný súbor Apache2 pomenovaný podľa démona httpd. Súbor sa dá využiť na nastavenie používateľsky závislých nastavení, ktoré majú globálny efekt na Apache2.

  • mods-available: (dostupné moduly) tento priečinok obsahuje moduly, ktoré je možné načítať a obsahuje aj ich konfiguračné súbory. Všetky moduly však nemajú svoj konfiguračný súbor.

  • mods-enabled: (povolené moduly) uchováva symbolické odkazy na súbory v priečinku /etc/apache2/mods-available. Ak pridáme do tohto priečinka symbolický odkaz na konfiguračný súbor modulu, ten sa zapne pri ďalšom štarte apache2.

  • ports.conf: obsahuje direktívy určujúce, na ktorých TCP portoch bude Apache2 načúvať.

  • sites-available: (dostupné weby) tento priečinok obsahuje konfiguračné súbory pre tz. Virtual Hosts - Virtuálne stanice. Virtuálne stanice umožňujú nakonfigurovať Apache2 tak, aby poskytoval viacero stránok s osobitnou konfiguráciou.

  • sites-enabled: (povolené weby) podobne ako pri mods-enabled, sites-enabled obsahuje symbolické odkazy do priečinka /etc/apache2/sites-available. Ak je do tohto priečinka pridaný odkaz na konfiguračný súbor v sites-available, aktivuje sa pri najbližšom štarte servera Apache.

Okrem týchto konfiguračných súborov môžeme začleniť aj ďalšie pomocou direktívy Include. Dá sa pridať i viacero súborov naraz zadaním masky súborov. Do takýchto súborov môžeme umiestniť akúkoľvek direktívu. Zmeny v hlavných konfiguračných súboroch sa prejavia iba pri štarte alebo reštarte servera Apache.

Server tiež číta súbor obsahujúci mime typy dokumentov; meno súboru sa nastavuje pomocou direktívy TypesConfig a v predvolenom stave je v /etc/mime.types.

Základné nastavenia

Táto časť hovorí o základných konfiguračných parametroch servera Apache2. Detailnejší popis sa nachádza na stránke Apache2 Documentation.

  • Apache2 sa dodáva s konfiguráciou vhodnou pre vytvorenie virtuálnych staníc. To znamená, že je nakonfigurovaný ako jedna predvolená virtuálna stanica (pomocou direktívy VirtualHost), ktorú môžeme upraviť, použiť ju ako je, ak chceme len jednu stránku alebo ju použiť ako šablónu pre vytvorenie ďalších webov. Ak konfiguráciu nezmeníme, predvolená virtuálna stanica bude slúžiť aj ako predvolená stránka - čiže stránka, ktorú používatelia uvidia, ak zadajú URL adresu, ktorá sa nezhoduje s direktívou ServerName žiadnej našej stránky. Ak chceme upraviť virtuálnu stanicu, môžeme to urobiť v súbore /etc/apache2/sites-available/default.

    [Note]

    Direktívy nastavené pre virtuálnu stanicu sa vzťahujú iba na konkrétnu virtuálnu stanicu. Ak je direktíva nastavená pre celý server a nie je definovaná v nastaveniach virtuálnej stanice, použijú sa predvolené nastavenia. Napríklad, ak definujeme emailovú adresu Webmastera a nedefinujeme individuálne emailové adresy pre každú virtuálnu stanicu.

    Ak chceme nakonfigurovať nový web alebo virtuálnu stanicu, skopírujeme nasledujúci súbor do toho istého priečinka pod iným názvom. Napríklad:

    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mojastranka

    Otvoríme nový súbor a nakonfigurujeme novú stránku pomocou nižšie opísaných direktív.

  • Direktíva ServerAdmin definuje emailovú adresu administrátora servera. Predvolená hodnota je webmaster@localhost. Túto hodnotu môžeme nahradiť našou emailovou adresou (ak sme administrátor servera). Ak sa na webe vyskytne problém, Apache2 zobrazí chybové hlásenie, ktorého súčasťou bude aj emailová adresa, na ktorú sa má problém nahlásiť. Túto direktívu nájdeme v konfiguračnom súbore stránky v priečinku /etc/apache2/sites-available.

  • Direktíva Listen určuje port a voliteľne aj IP adresy, na ktorých by mal Apache2 načúvať. Ak IP adresa nie je zadaná, bude Apache2 načúvať na všetkých IP adresách priradených počítaču. Predvolená hodnota direktívy Listen je 80. Zmenou tejto hodnoty na 127.0.0.1:80 spôsobíme, že Apache2 bude načúvať iba na rozhraní spätnej väzby a nebude dostupný z Internetu. Pri zmene (napríklad) na 81, môžeme zmeniť port, na ktorom načúva alebo toto nastavenie ponecháme nezmenené, čo zaistí normálnu prevádzku. Túto direktívu môžeme nájsť a zmeniť v jej vlastnom súbore /etc/apache2/ports.conf

  • Direktíva ServerName je voliteľná a určuje, na aké mená domén FQDN bude server reagovať. Predvolená virtuálna stanica nemá direktívu ServerName určenú, preto reaguje na všetky požiadavky, ktoré sa nezhodujú so žiadnou direktívou ServerName v ostatných virtuálnych staniciach. Ak máme prenajatú doménu ubunturocks.com a chceme ju poskytovať z nášho Ubuntu servera, hodnota direktívy ServerName v konfigurácii našej virtualnej stanici by mala byť ubunturocks.com. Túto direktívu pridám do súboru novej virtualnej stanice, ktorú sme si vytvorili (/etc/apache2/sites-available/mojastranka).

    Pravdepodobne budeme chcieť, aby stránka reagovala aj na www.ubunturocks.com, pretože veľa používateľov automaticky zapisuje adresu s predponou www. Na tento účel môžeme použiť direktívu ServerAlias. V direktíve ServerAlias je možné použiť aj masku.

    Napríklad nasledujúca konfigurácia spôsobí, že server bude reagovať na akúkoľvek doménu končiacu .ubunturocks.com.

    ServerAlias *.ubunturocks.com
  • Direktíva DocumentRoot určuje, kde má Apache hľadať súbory tvoriace webovú stránku. Predvolená hodnota je /var/www. Na tomto mieste nie je síce nahraná žiadna stránka, ale ak odkomentujeme direktívu RedirectMatch v súbore /etc/apache2/apache2.conf, požiadavky budú presmerované do priečinka /var/www/apache2-default, v ktorom sa nachádza predvolená stránka Apache2. Pri tvorbe nového webu zmeníme túto hodnotu v súbore virtuálnej stanice a ak to bude potrebné, vytvoríme aj nový priečinok, do ktorého umiestnime súbory tvoriace webovú stránku.

Priečinok /etc/apache2/sites-available (priečinok s dostupnými webmi) Apache2 nespracováva. Aby sa konfigurácia spracovala, je potrebné vytvoriť symbolický odkaz v priečinku /etc/apache2/sites-enabled (priečinok s povolenými webmi) na konfiguračný súbor v priečinku "dostupných" webov.

Novú virtuálnu stanicu - VirtualHost povolíme pomocou nástroja a2ensite a reštartujeme Apache:

sudo a2ensite mojastranka
sudo /etc/init.d/apache2 restart
[Note]

Slovné spojenie mojastranka môžete nahradiť príznačnejším menom virtuálnej stanice. Jednou z metód je pomenovať súbor rovnakým menom aké zadefinujete v direktíve ServerName.

Podobne môžeme pomocou nástroja a2dissite webovú stránku vypnúť. Toto môže byť užitočné pri riešení problémov s konfiguráciami viacerých virtuálnych staníc:

sudo a2dissite mojastranka
sudo /etc/init.d/apache2 restart

Predvolené nastavenia

Táto časť hovorí o konfigurácii predvolených nastavení servera Apache2. Napríklad, ak pridáme virtuálnu stanicu, nastavenia, ktoré pre ňu nakonfigurujeme, majú pre danú virtuálnu stanicu prednosť. Ak niektorú direktívu v nastaveniach virtuálnej stanice nedefinujeme, použije sa predvolená hodnota.

  • DirectoryIndex je predvolená stránka spracovávaná serverom, keď používateľ požiada o zoznam priečinkov tým, že adresu ukončí lomítkom (/).

    Napríklad ak používateľ požiada o stránku http://www.nieco.sk/tento_priecinok/, zobrazí sa mu stránka definovaná v DirectoryIndex, ak existuje. Ak neexistuje a je nastavená možnosť Indexes, zobrazí sa zoznam priečinkov.V prípade, že ani táto možnosť nie je nastavená, zobrazí sa stránka Permission Denied (prísup zakázaný). Server sa pokúsi nájsť jeden zo súborov definovaných direktívou DirectoryIndex a vráti prvý, ktorý nájde. Ak žiadny nenájde a je nastavené Options Indexes pre tento priečinok, server vygeneruje  a vráti zoznam podpriečinkov a súborov v HTML formáte. Predvolená hodnota v súbore /etc/apache2/mods-available/dir.conf je " index.html, index.cgi, index.pl, index.php, index.xhtml". Takže ak Apache2 vo vyžiadanom priečinku nájde súbor, ktorý súhlasí s jedným z týchto mien, zobrazí ten.

  • Direktíva ErrorDocument umožňuje určiť súbor, ktorý Apache použije v prípade, že nastane určitá chyba. Napríklad, ak používateľ požiada o zdroj, ktorý neexistuje, nastane chyba 404 a pri predvolenej konfigurácii server Apache2 zobrazí súbor /usr/share/apache2/error/HTTP_NOT_FOUND.html.var. Tento súbor sa nenachádza na mieste definovanom v DocumentRoot, ale pomocou direktívy Alias v súbore /etc/apache2/apache2.conf je priečinok /usr/share/apache2/error/ presmerovaný do priečinka /error.

    Ak chceme zobraziť predvolené direktívy ErrorDocument použijeme tento príkaz:

    grep ErrorDocument /etc/apache2/apache2.conf
  • V predvolenom stave server zaznamenáva údaje o prenose do súboru /var/log/apache2/access.log. Túto možnosť môžeme zmeniť pre každý web osobitne v konfigurácii virtuálnej stanice pomocou direktívy CustomLog alebo pri jej vynechaní použiť predvolenú cestu definovanú v súbore /etc/apache2/apache2.conf. Prostredníctvom direktívy ErrorLog môžeme určiť tiež súbor, do ktorého sa budú zaznamenávať chyby. Predvolená hodnota tejto direktívy je /var/log/apache2/error.log. Takéto nastavenie nám umožní oddeliť informácie o prenosoch od záznamov potrebných na riešenie problémov so serverom Apache2. Môžeme tiež určiť podrobnosť výpisov pomocou LogLevel (predvolená hodnota je "warn" (varovanie)) a formát záznamov pomocou LogFormat (predvolená hodnota je nastavená v súbore /etc/apache2/apache2.conf).

  • Niektoré možnosti sú miesto webov definované pre konkrétne priečinky. Jednou z takýchto direktív je Options. Nastavenia konkrétnych priečinkov sú uzatvorené do značiek Directory podobných značkám XML:

    <Directory /var/www/mojastranka>
    ...
    </Directory>

    V direktíve Options uzavretej v značkách Directory môžeme použiť jednu alebo viacero z nasledujúcich hodnôt (okrem ďalších), oddelených medzerou:

    • ExecCGI - povoľuje spúšťanie CGI skriptov. CGI skripty sa nebudú spúšťať, ak táto možnosť nie je zadaná.

      [Tip]

      Vo väčšine súborov by nemalo byť povolené spúšťanie CGI skriptov. Toto nastavenie môže byť veľmi nebezpečné. CGI skripty by sa mali nachádzať v samostatnom priečinku, mimo priečinka definovaného ako DocumentRoot a iba tento priečinok by mal mať nastavenú možnosť ExecCGI. Štandardné umiestnenie priečinka pre CGI skripty je /usr/lib/cgi-bin.

       

    • Includes - Povoľuje začleňovanie na strane servera. Začleňovanie na strane servera umožňuje do HTML súboru začleniť   iné súbory. Toto nie je bežná voľba. Viac informácii sa nachádza na stránke the Apache2 SSI HOWTO.

    • IncludesNOEXEC - Povoľuje začleňovanie na strane servera, ale vypína príkazy #exec #include v CGI skriptoch.

    • Indexes - Zobrazí formátovaný zoznam priečinkov a súborov v prípade, ak nie sú v priečinku súbory definované direktívou DirectoryIndex (ako napríklad index.html).

      [Caution]

      Z bezpečnostného hľadiska by táto možnosť nemala byť nastavená a rozhodne by nemala byť použitá v priečinku nastavenom ako DocumentRoot (hlavný priečinok webu). Túto možnosť nastavte iba v priečinkoch, v ktorých chcete používateľovi povoliť vidieť obsah priečinka.

       

    • Multiview - Podporuje súčasné zobrazenie súvisiaceho obsahu. Táto možnosť je v predvolenom stave kvôli bezpečnosti vypnutá. Viac informácií je na stránke Apache2 documentation on this option.

    • SymLinksIfOwnerMatch - Prechádza symbolické odkazy, iba ak má cieľový priečinok nastaveného rovnakého vlastníka ako odkaz.

Nastavenia httpd

Táto časť hovorí o niektorých základných nastaveniach démona httpd.

LockFile - Direktíva LockFile nastavuje cestu uzamykaciemu súboru lockfile, ktorý sa používa, ak bol server zostavený buď s voľbou USE_FCNTL_SERIALIZED_ACCEPT alebo USE_FLOCK_SERIALIZED_ACCEPT. Musí byť uložený na lokálnom disku. Tu by sme mali ponechať predvolenú hodnotu, ak cesta k priečinku so záznamami nesmeruje na zdieľaný NFS disk. Ak smeruje, mali by sme hodnotu zmeniť tak, aby umiestnenie na disku mohol čítať iba používateľ root.

PidFile - Direktíva PidFile nastavuje súbor, do ktorého server zaznamenáva čísla svojich procesov - process ID (pid). Tento súbor by mal byť čitateľný iba používateľom root. Vo väčšine prípadov by sme mali ponechať predvolenú hodnotu.

User - Direktíva User nastavuje číslo používateľa - userid, ktorý sa použije pri odpovediach na požiadavky. Toto nastavenie určuje prístup k serveru. Akékoľvek súbory, ktoré nie sú dostupné pre tohto používateľa, nebudú dostupné ani pre návštevníkov webu. Predvolená hodnota je pre direktívu User je www-data.

[Warning]

Bez toho, aby ste presne vedeli čo robíte, nenastavujte direktívu User na root. Ak použijeme používateľa root ako hodnotu pre User, vytvoríme tým veľké bezpečnostné diery vo webovom serveri.

Direktíva Group je podobná ako direktíva User. Group (skupina) nastavuje skupinu, pod ktorou server odpovedá na požiadavky. Predvolená skupina je rovnako www-data.

Moduly systému Apache

Apache je modulárny server. To znamená, že do jadra servera sú zabudované iba tie najzákladnejšie funkcionality. Ďalšie funkcie sú dostupné prostredníctvom modulov, ktoré sa do servera Apache dajú nahrať. V predvolenom stave je počas kompilovania začlenená základná sada modulov. Ak je server skompilovaný tak, aby používal dynamicky nahrávané moduly, potom moduly môžu byť skompilované samostatne a kedykoľvek pridané prostredníctvom direktívy LoadModule. V opačnom prípade je potrebné pri pridávaní a odoberaní modulov Apache znova prekompilovať.

Ubuntu používa Apache2, ktorý umožňuje dynamické nahrávanie modulov. Konfiguračné direktívy môžu byť podmienené prítomnosťou konkrétnych modulov uzavretím do bloku <IfModule>.

Môžeme nainštalovať dodatočné moduly Apache2 a použiť ich s naším webovým serverom. Napríklad, ak by sme chceli nainštalovať modul na autentifikáciu do MySQL - MySQL Authentication,  zadáme príkaz:

sudo apt-get install libapache2-mod-auth-mysql

Nainštalované moduly môžeme nájsť v priečinku /etc/apache2/mods-available.

Ak chceme modul zapnúť, použijeme nástroj a2enmod:

sudo a2enmod auth_mysql
sudo /etc/init.d/apache2 restart

Podobne ich pomocou nástroja a2dismod môžeme vypnúť:

sudo a2dismod auth_mysql
sudo /etc/init.d/apache2 restart

Konfigurácia HTTPS

Modul mod_ssl pridá do servera Apache2 dôležitú funkciu - schopnosť šifrovať komunikáciu. Vďaka tomu s ním prehliadač môže komunikovať cez SSL, použitím predpony https:// na začiatku URL adresy (Uniform Resource Locator) v navigačnej lište prehliadača.

Modul mod_ssl je dostupný v balíku apache2-common. Modul mod_ssl zapneme tak, že do príkazového riadku napíšeme:

sudo a2enmod ssl

Predvolená konfigurácia HTTPS sa nachádza v súbore /etc/apache2/sites-available/default-ssl. Aby server Apache mohol poskytovať HTTPS, je potrebné mať ešte súbory s certifikátom a kľúčom. Predvolená HTTPS konfigurácia použije certifikát a kľúč vygenerovaný balíkom ssl-cert. Ten je vhodný pre testovanie, ale automaticky vygenerovaný certifikát a kľúč by mali byť nahradené certifikátom a kľúčom pre konkrétny web alebo server. Viac informácií o generovaní kľúča a získaní certifikátu sa nachádza v časti “Certifikáty”.

Ak chceme nakonfigurovať Apache tak, aby používal HTTPS, zadáme :

sudo a2ensite default-ssl
[Note]

Za predvolené umiestnenia súborov s certifikátom a kľúčom sa považujú priečinky /etc/ssl/certs a /etc/ssl/private. Ak nainštalujete certifikát a kľúč do iných priečinkov je podľa toho potrebné zmeniť aj direktívy SSLCertificateFile a SSLCertificateKeyFile.

Apache, ktorý je teraz nakonfigurovaný pre použitie HTTPS, je potrebné reštartovať, aby sa nová konfigurácia prejavila:

sudo /etc/init.d/apache2 restart
[Note]

V závislosti od toho, ako ste získali certifikát, bude potrebné zadať vstupnú frázu pri štartovaní servera Apache.

Teraz môžeme otestovať správne nastavenie zadaním adresy https://nazov_stanice/url/ v prehliadači.

Zdroje

  • Stránka Apache2 Documentation obsahuje podrobné informácie o konfiguračných direktívach Apache2. Oficiálna dokumentácia k serveru Apache sa nachádza aj v balíku apache2-doc.

  • Viac informácií o SSL sa nachádza na stránke Mod SSL Documentation.

  • Dobrým zdrojom o konkrétnych spôsoboch nastavenia servera je aj O'Reillyho Apache Cookbook.

  • Otázky súvisiace s nastavením servera Apache2 v Ubuntu môžete položiť v IRC kanále #ubuntu-server IRC na freenode.net.

  • Dobrým zdrojom je i stránka Apache MySQL PHP Ubuntu Wiki, ktorá popisuje často používanú integráciu so systémami PHP a MySQL.

PHP5 - skriptovací jazyk

PHP je všeobecný skriptovací jazyk zameraný na vytváranie webových aplikácií. PHP skript sa dá začleniť do HTML. Táto časť vysvetľuje, ako nainštalovať a nakonfigurovať PHP5 v systéme Ubuntu so systémami Apache2 a MySQL.

Táto časť predpokladá, že už máme nainštalovaný a nakonfigurovaný webový server Apache 2 a databázový server MySQL. Návod, ako tieto systémy nainštalovať a nakonfigurovať, nájdeme v častiach Apache2 a MySQL tejto príručky.

Inštalácia

Systém PHP5 je dostupný aj v systéme Ubuntu Linux.

  • Ak chceme nainštalovať PHP5, môžeme zadať nasledujúci príkaz do príkazového riadka:

    sudo apt-get install php5 libapache2-mod-php5
    

    PHP5 skripty môžeme spustiť aj v príkazovom riedku. Aby sme mohli spúšťať PHP5 skripty v príkazovom riadku, je potrebné nainštalovať balík php5-cli. Balík php5-cli nainštalujeme pomocou nasledujúceho príkazu:

    sudo apt-get install php5-cli
    

    PHP5 skripty môžeme spúšťať aj bez nainštalovaného modulu PHP5 pre  Apache. Aby to bolo možné, je potrebné nainštalovať balík php5-cgi. Balík php5-cgi nainštalujeme nasledujúcim príkazom:

    sudo apt-get install php5-cgi
    

    Aby bolo možné prepojiť databázu MySQL s PHP5, je potrebné nainštalovať balík php5-mysql. Balík php5-mysql môžeme nainštalovať zadaním tohto príkazu:

    sudo apt-get install php5-mysql
    

    Rovnako môžeme prepojiť databázu PostgreSQL s PHP5 tak, že nainštalujeme balík php5-pgsql. Balík php5-pgsql nainštalujeme zadaním príkazu:

    sudo apt-get install php5-pgsql
    

Konfigurácia

Po nainštalovaní PHP5 môžeme spúšťať PHP5 skripty z webového prehliadača. Ak sme nainštalovali balík php5-cli, môžeme PHP5 skripty spúšťať aj v príkazovom riadku.

V predvolenom stave je webový server Apache 2 nakonfigurovaný tak, aby spúšťal PHP5 skripty. Inak povedané, modul PHP5 sa vo webovom serveri Apache2 automaticky zapne po nainštalovaní modulu. Stačí overiť, či existujú súbory /etc/apache2/mods-enabled/php5.conf a /etc/apache2/mods-enabled/php5.load. Ak neexistujú, môžeme modul zapnúť pomocou príkazu a2enmod.

Po nainštalovaní balíkov súvisiacich s PHP5 a po zapnutí modulu PHP5 pre Apache 2 by sme mali webový server reštartovať, aby bol schopný spúšťať PHP5 skripty. Webový server reštartujeme tak, že spustíme nasledujúci príkaz:

sudo /etc/init.d/apache2 restart

Testovanie

Aby sme overili funkčnosť inštalácie, môžeme spustiť PHP5 skript s funkciou phpinfo:

<?php
print_r (phpinfo());
?>

Tento text uložíme do súboru phpinfo.php a umiestnime do priečinka DocumentRoot (hlavný priečinok webu) webového servera Apache2. Ak do prehliadača zadáme adresu http://nazovstanice/phpinfo.php, mali by sa zobraziť hodnoty rôznych konfiguračných nastavení PHP5.

Zdroje

Squid - Proxy Server

Squid je funkciami nabitý webový sprostredkovateľský (proxy) server s vyrovnávacou pamäťou, ktorý poskytuje službu sprostredkovania služieb (proxy) a službu dočasného ukladania súborov do vyrovnávacej pamäte (cache) pre protokoly Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP) a iné populárne sieťové protokoly. Squid vie služby poskytovať aj prostredníctvom šifrovaného spojenia cez Secure Sockets Layer (SSL) a može dočasne ukladať aj Domain Name Server (DNS) záznamy a vykonávať tzv. transparentné ukladanie do vyrovnávacej pamäte. Squid tiež podporuje najrôznejšie protokoly pre riadenie ukladania do vyrovnávacej pamäte ako napríklad Internet Cache Protocol (ICP),  Hyper Text Caching Protocol (HTCP), Cache Array Routing Protocol (CARP) a Web Cache Coordination Protocol (WCCP).

Sprostredkovateľský server Squid s vyrovnávacou pamäťou je excelentné riešenie pri potrebe nasadenia najrôznejších typov sprostredkujúcich serverov a serverov s vyrovnávacou pamäťou, ktoré sa hodí pre menšie kancelárie ale aj komplikované siete veľkých podnikov, pretože poskytuje granulárny mechanizmus riadenia pristupu a monitorovanie kritických parametrov cez Simple Network Management Protocol (SNMP). Pri výbere počítačového systému, ktorý má slúžiť pre účely servera Squid je dôležité vybrať systém s veľkou kapacitou fyzickej pamäte (RAM), pretože Squid udrživa vyrovnávaciu pamäť vo fyzickej pamäti, aby zvýšil výkon.

Inštalácia

Ak chceme nainštalovať server Squid, v príkazovom riadku zadáme:

sudo apt-get install squid

Konfigurácia

Squid sa konfiguruje pomocou direktív, ktoré sa nachádzajú v konfiguračnom súbore /etc/squid/squid.conf. Nasledujúce príklady ilustrujú ako jednotlivé direktívy môžu ovplyvniť správanie servera Squid. Viac informácií o konfigurácii servera Squid sa nachádza na stránke Squid Website.

[Tip]

Pred úpravou akéhokoľvek konfiguračného súboru by ste si mali vytvoriť kópiu originálneho súboru a nastaviť ho iba na čítanie, aby ste mohli nastavenia porovnať s pôvodnými hodnotami a v prípade potreby ich vrátiť späť.

Vytvorte kópiu súboru /etc/squid/squid.conf a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
  • Ak chceme nastaviť Squid server tak, aby načúval na TCP porte 8888 miesto predvoleného TCP portu 3128, zmeníme direktívu http_port:

    http_port 8888
    
  • Zmenou direktívy visible_hostname priradíme serveru Squid určitý názov stanice. Tento názov sa nemusí nevyhnutne zhodovať s menom počítača. V tomto príklade sme nastavili weezie

    visible_hostname weezie
    
  • Použitím funkcie servera Squid na riadenie prístupu, môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba používateľom s určitou IP adresou. Môžeme si to ukázať na príklade používateľov z podsiete 192.168.42.0/24:

    Nasledujúci riadok pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl styridsatdvojkova_siet src 192.168.42.0/24
    

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow styridsatdvojkova_siet
    
  • Použitím výnimočných funkcií servera Squid na riadenie prístupu môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba počas pracovnej doby. Ukážeme si to na zamestnancoch, ktorí sú v práci od  7:00 do 15:00PM, v pracovných dňoch týždňa, ktorých počítače patria do podsiete 10.1.42.0/42:

    Nasledujúce riadky pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl podsiet_firmy src 10.1.42.0/24
    acl pracovny_cas time M T W T F 9:00-17:00

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow podsiet_firmy pracovny_cas
    
[Note]

Po vykonaní zmien v súbore  /etc/squid/squid.conf, uložte súbor a reštartujte serverovú aplikáciu squid, aby sa prejavili vykonané zmeny. Urobíte to zadaním nasledujúceho príkazu:

sudo /etc/init.d/squid restart

Ruby on Rails

Ruby on Rails je otvorená webová sada nástrojov na vývoj webových aplikácií s databázovým pozadím. Je optimalizovaná pre udržanie produktivity programátora, pretože programátorovi umožňuje písať kód uprednostňovaním konvencií pred prácnym konfigurovaním.

Inštalácia

Pred nainštalovaním Rails by sme mali mať už nainštalované servery Apache a MySQL. Návod na inštaláciu servera Apache sa nachádza v časti HTTPD - webový server Apache2. Pokyny na inštaláciu MySQL sa zasa nachádzajú v časti MySQL.

Po nainštalovaní servera Apache a MySQL, môžeme nainštalovať balík Ruby on Rails.

Ak chceme nainštalovať základné Ruby balíky a Ruby on Rails, môžeme to urobiť zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install rails

Konfigurácia

Otvoríme súbor /etc/apache2/sites-available/default, v ktorom upravíme nastavenie domén. 

Najprv upravíme direktívu DocumentRoot:

DocumentRoot /cesta/k/rails/aplikacii/public

Potom zmeníme direktívu <Directory "/cesta/k/rails/aplikacii/public">:

<Directory "/cesta/k/rails/aplikacii/public">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
allow from all
AddHandler cgi-script .cgi
</Directory>

Mali by sme tiež zapnúť modul mod_rewrite pre Apache. Modul mod_rewrite zapneme tak, že zadáme nasledujúci príkaz:

sudo a2enmod rewrite

Nakoniec je potrebné zmeniť vlastníctvo priečinkov /cesta/k/rails/aplikacii/public a /cesta/k/rails/aplikacii/tmp na používateľa, pod ktorým je spustená služba Apache:

sudo chown -R www-data:www-data /cesta/k/rails/aplikacii/public
sudo chown -R www-data:www-data /cesta/k/rails/aplikacii/tmp

To je všetko! Teraz je server pripravený na spúšťanie Ruby on Rails aplikácií.

Zdroje

Apache Tomcat

Apache Tomcat je webový kontajner, ktorý umožňuje spracovať webové aplikácie vo forme Java Servlets a JSP (Java Server Pages).

Balíky systému Tomcat 6.0 v Ubuntu podporujú dva rôzne spôsoby spustenia systému Tomcat. Môžeme ho nainštalovať ako bežnú samostatnú inštanciu systému, ktorá sa spustí pri štarte systému pod obmedzeným používateľom tomcat6. Ale môžeme ho zaviesť aj ako súkromnú inštanciu s vlastnými používateľskými právami, a spúšťať a zastavovať ho ručne. Tento druhý spôsob je vhodný ako server pre vývojárov, na ktorom si viacero používateľov potrebuje otestovať aplikáciu v súkromnej inštancii systému Tomcat.

Samostatná systémová inštalácia

Ak chceme nainštalovať server Tomcat, stačí zadať nasledujúci príkaz do príkazového riadka:

sudo apt-get install tomcat6

Tento príkaz nainštaluje server Tomcat s predvolenou webovou aplikáciou ROOT, ktorá iba zobrazí stránku s textom  "It works" (funguje to).

Konfigurácia

Konfiguračné súbory systému Tomcat môžeme nájsť v priečinku /etc/tomcat6. V tejto časti povieme iba o najzákladnejších voľbách konfigurácie, viac informácii sa nahádza na stránke Tomcat 6.0 documentation.

Zmena predvolených portov

V predvolenom stave Tomcat 6.0 beží s HTTP konektorom, ktorý načúva na porte 8080 a s AJP konektorom, ktorý načúva na porte 8009. Toto predvolené nastavenie portov môžeme zmeniť, aby sme predišli konfliktu s iným serverom v systéme. Urobíme to zmenou nasledujúcich riadkov v súbore /etc/tomcat6/server.xml:

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Zmena výberu virtuálneho stroja JVM

V predvolenom stave Tomcat bude pre spúšťanie Java aplikácií preferovať virtuálny stroj OpenJDK-6, potom skúsi JVM od spoločnosti Sun, a potom skúsi ostatné JVM. Ak máte nainštalovaná viaceré virtuálne stroje JVM, môžete nastaviť, ktorý z nich má byť použitý pomocou nastavenia JAVA_HOME v súbore /etc/default/tomcat6:

JAVA_HOME=/usr/lib/jvm/java-6-sun

Deklarácia používateľov a rolí

Meno používateľa, heslo a rolu (skupinu) môžete zadefinovať centrálne v kontaineri pre tzv. Servlety. V systéme Tomcat 6.0 sa to robí v súbore /etc/tomcat6/tomcat-users.xml:

<role rolename="admin"/>
<user username="tomcat" password="s3cret" roles="admin"/>

Použite štandardných webových aplikácii systému Tomcat

Tomcat sa dodáva s webovými aplikáciami, ktoré môžeme nainštalovať kvôli dokumentácii, administrácii alebo demo ukážkam.

Dokumentácia systému Tomcat

Balík tomcat6-docs obsahuje dokumentáciu Tomcat 6.0 v tvare webovej aplikácie, ku ktorej sa dostaneme zadaním adresy http://nasserver:8080/docs. Môžeme ju nainštalovať zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install tomcat6-docs

Webové aplikácie na administráciu systému Tomcat

Balík tomcat6-admin obsahuje dve webové aplikácie, ktoré môžeme použiť na administráciu servera Tomcat pomocou webového rozhrania. Môžeme ich nainštalovať tak, že zadáme nasledujúci príkaz:

sudo apt-get install tomcat6-admin

Prvou aplikáciou je manager, ku ktorému sa môžeme dostať zadaním adresy http://nasserver:8080/manager/html. Využíva sa najmä na získanie informácii o stave servera a reštartovanie webových aplikácií.

[Note]

Prístup do aplikácie manager je v predvolenom stave chránený: pred tým, ako sa ho pokúsite otvoriť, je potrebné zadefinovať používateľa s rolou "manager" v súbore /etc/tomcat6/tomcat-users.xml.

Druhou aplikáciou je host-manager, ktorý otvoríme zadaním adresy http://nasserver:8080/host-manager/html. Používa sa na dynamické vytváranie virtuálnych staníc.

[Note]

Prístup k aplikácii host-manager je tiež chránený: pred tým ako sa ho pokúsite otvoriť, je potrebné definovať používateľa s rolou  "admin" v súbore /etc/tomcat6/tomcat-users.xml.

Kvôli bezpečnosti používateľ tomcat6 v predvolenom stave nemôže zapisovať do priečinka /etc/tomcat6. Niektoré funkcie týchto administrátorských aplikácií (application deployment, virtual host creation) potrebujú zapisovať do tohto priečinka. Ak potrebujeme tieto funkcie spustiť, pridáme skupine tomcat6 potrebné práva:

sudo chgrp -R tomcat6 /etc/tomcat6
sudo chmod -R g+w /etc/tomcat6

Ukážkové webové aplikácie pre Tomcat

Balík tomcat6-examples obsahuje dve webové aplikácie, ktoré sa dajú použiť na otestovanie a demonštrovanie funkcií Servletov a JSP, ktoré môžeme otvoriť zadaním adresy http://nasserver:8080/examples. Môžeme ich nainštalovať zadaním tohto príkazu:

sudo apt-get install tomcat6-examples

Používanie súkromných inštancií

Tomcat sa často používa na vývoj a testovanie aplikácií, kde bežná inštalácia nepostačuje pre potreby viacerých používateľov. Balíky Tomcat 6.0 v Ubuntu obsahujú nástroj, ktorý každému používateľovi umožňuje spustiť svoju vlastnú inštanciu (bez oprávnenia používateľa root), pričom bude používať knižnice nainštalované v systéme.

[Note]

Je možné naraz spúšťať inštancie v bežnom režime aj v súkromnom režime, ak nepoužívajú rovnaké TCP porty.

Inštalácia podpory súkromných inštancií

Všetko potrebné na spusťanie súkromných inštancií nainštalujeme pomocou nasledujúceho príkazu:

sudo apt-get install tomcat6-user

Vytvorenie súkromnej inštancie

Priečinok pre súkromnú inštanciu môžeme vytvoriť zadaním nasledujúceho príkazu do príkazového riadka:

tomcat6-instance-create moja-instancia

Príkaz vytvorí nový priečinok s názvom moja-instancia so všetkými potrebnými podpriečinkami  a skriptami. Teraz môžeme napríklad nainštalovať potrebné knižnice do podpriečinka lib/ a webové aplikácie umiestniť do podpriečinka webapps/. V predvolenom stave tam žiadna aplikácia nie je.

Konfigurácia súkromnej inštancie

Privátna inštancia má bežné konfiguračné súbory pre Tomcat umiestnené v podpriečinku conf/. Napríklad môžeme otvoriť súbor conf/server.xml a zmeniť predvolené porty, ktoré bude súkromná inštancia systému Tomcat používať, aby sme sa vyhli konfliktu s ostatnými bežiacimi inštanciami.

Spustenie a zastavenie súkromnej inštancie

Súkromnú inštanciu môžeme spustiť zadaním nasledujúceho príkazu do príkazového riadka (za predpokladu, že je umiestnená v priečinku moja-instancia):

moja-instancia/bin/startup.sh
[Note]

Chybové hlásenia sa nachádzajú v podpriečinku logs/. Ak vidíte chybu java.net.BindException: Address already in use<null>:8080, znamená to, že port, ktorý používate. už je použitý inou aplikáciou a je potrebné ho zmeniť.

Inštanciu môžeme zastaviť zadaním nasledujúceho príkazu do príkazového riadka (za predpokladu, že je umiestnená v priečinku moja-instancia):

moja-instancia/bin/shutdown.sh

Zdroje