Hlavní navigace

Malý průvodce konfigurací Apache (6)

Tomáš Lopašovský

Po dlhšej odmlke sa k vám opäť dostáva ďalšie pokračovanie seriálu o webovom serveri Apache. Dnes sa budeme venovať konfigurácii serveru pre použitie jazyka PHP a CGI skriptov.

Pre začiatok si vysvetlíme dve direktívy, ktoré budem v nasledujúcom texte používať. Sú to

Alias a ScriptAlias

Obidve direktívy sú súčasťou modulu mod_alias. Prvá z nich, teda Alias, priradí určitému adresáru (resp. adresárovej štruktúre), ktorý sa nachádza fyzicky na disku, URL cestu (teda časť URL adresy). Syntax:

Alias URL_cesta adresar

Toto využijeme s výhodou pri dokumentoch, ktoré nepatria pod DocumentRoot a teda sa k nim nemáme ako cez browser „dostať“. Napríklad potrebujeme sprístupniť súbory z /usr/local/apache, ale DocumentRoot je nastavený na /home/www . Použijeme teda direktívu Alias:

Alias /docs „/usr/local/a­pache“

Ak potom užívateľ zadá v browseri adresu http://nas_ser­ver/docs/neja­ky_subor.htm načíta sa v skutočnosti súbor /usr/local/apache/ne­jaky_subor.htm.

Druhá direktíva ScriptAlias, ako už názov napovedá, definuje/priradzuje k fyzickej ceste na disku obsahujúcej skripty nejakú URL cestu. Apache tým dáme najavo, že súbory, s ktorými bude pracovať, nie sú „obyčajné“ dokumenty, ale že ide napríklad o CGI, ktoré treba dopredu spracovať. Príklad:

ScriptAlias /cgi-bin/ „/home/www/cgi-bin“

(Po definícií aliasu je samozrejme potrebné definovať vlastnosti oblasti na ktorú sa vzťahuje tento alias, a to pomocou direktívy <Directory></Directory>.)

CGI vs PHP
Ešte v nedávnej dobe bolo mohutné použitie rôznych CGI skriptov pre dynamické generovanie web stránok veľkou módou. Toto nadšenie ale čiastočne opadlo príchodom skriptovacieho jazyka PHP (a podobných). Ten so sebou priniesol okrem iného podporu veľkého počtu rôznych databáz (mSQL, MySQL, …), protokolov (IMAP, POP3, …), kryptovania apod. čo z neho robí profesionálny jazyk so širokým využitím. Má ale aj ďalšiu výhodu voči jazykom ako Java alebo JavaScript – nepotrebuje interpreter u klienta, pretože jeho výstupom (tak ako aj CGI skriptov) je HTML kód, ktorý sa vytvára na strane serveru.
Konfigurácia Apache pre využitie PHP a CGI nie je zložitá, preto sa do nej čo najrýchlejšie pustime…

CGI
Do konfiguračného súboru pridávame postupne tieto riadky:

AddHandler cgi-script .cgi
Uvedenou direktívou priradíme k extension (prípone) „cgi“ typ cgi-script. V praxi to znamená, že súbor s príponou „cgi“ bude Apache chápať ako CGI skript a bude ho podľa toho ďalej spracovávať.

ScriptAlias /cgi-bin /home/www/cgi-bin
Už spomínanou direktívou ScriptAlias si zadefinujeme adresár, ktorý bude určený pre CGI.

Následne potrebujeme nastaviť vlastnosti oblasti so skriptami, napr.:

<Directory „/home/www/cgi-bin“>
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
</Directory> 

A to je všetko, priatelia. Treba pripomenúť, že najdôležitejšiou direktívou v hore uvedenom zápise je Options ExecCGI, na ktorú sa častokrát zabúda v domnienke, že zápisom ScriptAlias je o všetko postarané.
Pokiaľ máme správne nastavený execute bit konkrétneho CGI programu, môžeme sa pustiť do testovania.
Poznámka: CGI bude možné použiť samozrejme iba po úspešnom nahraní a aktivovaní modulu mod_cgi ! Ćiže v konfiguračnom súbore nesmie chýbať: LoadModule cgi_module modules/mod_cgi.soAddModule mod_cgi.c (o moduloch som hovoril v predošlej časti tohoto seriálu).

PHP
Poslednou pomerne rozšírenou verziou jazyka PHP je PHP 4.0 . V stručnom príklade budeme pracovať práve s touto verziou.

<IfModule mod_php4.c>
Celá konfigurácia má zmysel iba pokiaľ je modul s PHP nainštalovaný …

   AddType application/x-httpd-php .php4 .php
   AddType application/x-httpd-php-source .phps
.. inicializujeme prípony súborov pre správne spracovanie …

</IfModule>
… a párovaný tag IfModule treba uzavrieť.

Tak isto ako v predošlom prípade – interpretovanie PHP kódu je možné iba vtedy, ak sme modul mod_php správne nahrali a aktivovali: LoadModule php4_module modules/libphp4.so a AddModule mod_php4.c .
O konfigurácii samotného jazyka PHP by sa dal napísať ďaľší celý článok, preto sa tu na uvedenú tému viac rozpisovať nebudem. V princípe: súbor php.ini sa nachádza obvykle v adresári /etc a je nastavený „univerzálne“, teda pre široké použitie a netreba ho editovať. V prípade väčšieho záujmu o tento jazyk vám určite nebude robiť problém nahliadnuť do dokumentácie, respektíve nájsť si na internete popis konfigurácie PHP.

Keďže sa dnes hovorilo v značnej miere o moduloch, odporúčam Vám prečítať si aj predošlú časť tohoto seriálu, kde je popis práce (nahrávanie, aktivovanie) s modulmi.

Takže toľko k dnešnému, možno trochu na informácie „chudobnejšiemu“ pokračovaniu seriálu o konfigurácii web serveru Apache. Obsah ďaľšieho – posledného pokračovania seriálu je ešte vo hviezdach a preto budete nútení nechať sa ním prekvapiť :).

Našli jste v článku chybu?

30. 12. 2009 0:05

K.v.N. (neregistrovaný)

Tento článek mi dost pomohl a byl bych rád, kdyby autor přidělal pár dalších dílů. I když po takové době asi nemám šanci:-)

15. 6. 2001 14:20

tomas.lopasovsky (neregistrovaný)

>Osobne si myslim ze tvrzeni je v clanku nepodlozene ni
>jednim argumentem a vychazi predevsim z toho, ze autor
>zna PHP a ne Javu.

ano. mate pravdu, s javou nepracujem a teda ju nepoznam (na rozdiel od javascriptu) a svoje tvrdenie beriem spat.
rozhodne si ale myslim, ze php ma oproti jazykom ako je napriklad java velke mnozstvo vyhod, z ktorych cast je uvedenych aj v predoslom prispevku (od p. J.Kastla).

>Osobne si myslim ze je uzitecnejsi a pouzitelnejsi
>nekdo, kdo u…







Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Brněnský radní chce zničit kartel operátorů. Uspěje?

Brněnský radní chce zničit kartel operátorů. Uspěje?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jedlé kaštany jsou trpké, je třeba je tepelně upravit

Jedlé kaštany jsou trpké, je třeba je tepelně upravit

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí