Hlavní navigace

Malý průvodce konfigurací Apache (6)

14. 6. 2001
Doba čtení: 4 minuty

Sdílet

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.

CS24_early

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ť :).

Byl pro vás článek přínosný?