A FreeBSD szolgálja ki a legforgalmasabb honlapok nagy
részét szerte a világban. A
mögöttük álló webszerverek
általában az Apache
webszervert alkalmazzák. Az
Apache használatához
szükséges csomagok megtalálhatóak a
FreeBSD telepítőlemezén is. Ha a FreeBSD első
telepítésekor még nem
telepítettük volna az
Apache szerverét, akkor a
www/apache13
vagy www/apache12
portból tudjuk
feltenni.
Az Apache szervert sikeres telepítését követően be kell állítanunk.
Ebben a szakaszban az Apache webszerver 1.3.X változatát mutatjuk be, mivel ezt használják a legtöbben FreeBSD alatt. Az Apache 2.X rengeteg új technológiát vezetett be, de ezekkel itt most nem foglalkozunk. Az Apache 2.X változatával kapcsolatban keressük fel a http://httpd.apache.org/ oldalt.
Az Apache webszerver
konfigurációs állománya FreeBSD alatt
/usr/local/etc/apache/httpd.conf
néven található. Ez az
állomány egy szokványos UNIX®-os
szöveges konfigurációs
állomány, ahol a megjegyzéseket egy
#
karakterrel vezetjük be. Az itt
használható összes lehetséges
beállítási lehetőség
átfogó ismertetése meghaladná az
egész kézikönyv határait, ezért
most csak a leggyakrabban módosított
direktívákat fogjuk ismertetni.
ServerRoot "/usr/local"
Ez adja meg az Apache
számára az alapértelmezett
könyvtárat. A binárisai ezen
belül a bin
és sbin
alkönyvtárakban, a konfigurációs
állományai pedig az etc/apache
könyvtárban tárolódnak.
ServerAdmin saját@címünk.az.interneten
Erre a címre küldhetik nekünk a szerverrel kapcsolatos hibákat. Ez a cím egyes szerver által generált oldalakon jelenik meg, például hibák esetében.
ServerName www.minta.com
A ServerName
segítségével meg tudjuk adni, hogy
milyen nevet küldjön vissza a szerver a
klienseknek olyankor, ha az nem egyezne meg a jelenlegivel
(vagyis a www
nevet használjuk a
gépünk valódi neve helyett).
DocumentRoot "/usr/local/www/data"
A DocumentRoot
adja meg azt a
könyvtárat, ahonnan kiszolgáljuk a
dokumentumokat. Alapértelmezés szerint az
összes kérés erre a
könyvtárra fog vonatkozni, de a szimbolikus
linkek és az álnevek akár más
helyekre is mutathatnak.
A változtatások végrehajtása előtt mindig is jó ötlet biztonsági másolatot készíteni az Apache konfigurációs állományairól. Ahogy sikerült összerakni egy számunkra megfelelő konfigurációt, készen is állunk az Apache futtatására.
A többi hálózati szervertől eltérően az Apache nem az inetd szuperszerverből fut. A kliensektől érkező HTTP kérések minél gyorsabb kiszolgálásának érdekében úgy állítottuk be, hogy önállóan fusson. Ehhez egy szkriptet is mellékeltünk, amellyel igyekeztünk a lehető legjobban leegyszerűsíteni a szerver indítását, leállítását és újraindítását. Az Apache első indításához adjuk ki a következő parancsot:
#
/usr/local/sbin/apachectl start
Így pedig a szervert bármikor leállíthatjuk:
#
/usr/local/sbin/apachectl stop
Ha valamilyen okból megváltoztattuk volna a szerver beállításait, akkor ezen a módon tudjuk újraindítani:
#
/usr/local/sbin/apachectl restart
Ha a jelenleg megnyitott kapcsolatok felbontása nélkül akarjuk újraindítani az Apache szervert, akkor ezt írjuk be:
#
/usr/local/sbin/apachectl graceful
Mindezekről az apachectl(8) man oldalon találunk bővebb leírást.
Amennyiben szükségünk lenne az
Apache
elindítására a rendszer
indításakor, akkor a következő sort
vegyünk fel az /etc/rc.conf
állományba:
Az Apache 2.2 esetében:
Amikor az Apache
httpd
nevű programjának
szeretnénk további paranccsori
paramétereket átadni a rendszer
indítása során, akkor ezeket így
tudjuk megadni az rc.conf
állományban:
Most, miután a webszerverünk működik,
a böngészőnkkel mindezt ellenőrizni is
tudjuk a http://localhost/
cím
beírásával. Ilyenkor az
alapértelmezés szerinti
/usr/local/www/data/index.html
állomány tartalmát láthatjuk.
Az Apache a virtuális nevek használatának két különböző módját ismeri. Ezek közül az első módszer a név alapú virtualizáció (Name-based Virtual Hosting). Ilyenkor a kliens HTTP/1.1 fejlécéből próbálja meg a szerver megállapítani a hivatkozási nevet. Segítségével több tartomány is osztozhat egyetlen IP-címen.
Az Apache név alapú
virtualizációjának
beállításához az alábbi
beállítást kell hozzátennünk a
httpd.conf
állományhoz:
Ha a webszerverünk neve www.tartomany.hu
, és hozzá
egy www.valamilyenmasiktartomany.hu
virtuális nevet akarunk megadni, akkor azt a
következőképpen tehetjük meg a
httpd.conf
állományon
belül:
A címek és elérési utak helyére helyettesítsük be a használni kívánt címeket és elérési utakat.
A virtuális nevek beállításának további részleteivel kapcsolatosan keressük fel az Apache hivatalos dokumentációját a http://httpd.apache.org/docs/vhosts/ címen (angolul).
Az alap szerver képességeinek kiegészítéséhez több különböző Apache modul áll rendelkezésünkre. A FreeBSD Portgyűjteménye az Apache telepítése mellett lehetőséget ad a népszerűbb bővítményeinek telepítésére is.
A mod_ssl modul az OpenSSL könyvtár használatával valósít meg erős titkosítást a biztonságos socket réteg második, illetve harmadik verziójával (Secure Sockets Layer, SSL v2/v3) és a biztonságos szállítási rétegbeli (Transport Layer Security v1) protokoll segítségével. Ez a modul mindent biztosít ahhoz, hogy a megfelelő hatóságok által aláírt tanúsítványokat tudjunk kérni, és ezáltal egy védett webszervert futtassunk FreeBSD-n.
Ha még nem telepítettünk volna fel az
Apache szervert, akkor a www/apache13-modssl
porton
keresztül a mod_ssl modullal
együtt is fel tudjuk rakni az
Apache 1.3.X
változatát. Az SSL támogatása
pedig már az Apache 2.X
www/apache22
porton
keresztül elérhető változataiban
alapértelmezés szerint
engedélyezett.
Mindegyik nagyobb szkriptnyelvhez létezik egy külön Apache-modul, amelyek segítségével komplett Apache-modulokat tudunk készíteni az adott nyelven. Gyakran a dinamikus honlapok is így próbálják a szerverbe épített belső értelmezőn keresztül a külső értelmező indításából és benne a szkriptek lefuttatásából fakadó költségeket megspórolni, ahogy erről a következő szakaszokban olvashatunk.
Az utóbbi évtizedben egyre több vállalkozás fordult az internet felé bevételeik és részesedéseinek növelésének reményében, amivel egyre jobban megnőtt az igény a dinamikus honlapokra is. Miközben bizonyos cégek, mint például a Microsoft®, a saját fejlesztésű termékeikbe építettek be ehhez támogatást, addig a nyílt forrásokkal foglalkozó közösség sem maradt tétlen és felvette a kesztyűt. A dinamikus tartalom létrehozásához többek közt Django, Ruby on Rails, a mod_perl és a mod_php modulok használhatóak.
A Django egy BSD típusú licensszel rendelkező keretrendszer, amelynek használatával nagy teljesítményű és elegáns webes alkalmazásokat tudunk gyorsan kifejleszteni. Tartalmaz egy objektum-relációs leképezőt, így az adattípusokat Python-objektumokként tudjuk leírni, és ezekhez az objektumokhoz egy sokrétű, dinamikus adatbázis hozzáférést nyújtó alkalmazásfejlesztői felületet, így a fejlesztőknek egyetlen SQL utasítást sem kell megírniuk. Találhatunk még benne továbbá egy bővíthető sablonrendszert, amelynek köszönhetően az alkalmazás belső működése elválasztható a HTML-beli megjelenésétől.
A Django működéséhez a mod_python modulra, az Apache szerverre és egy tetszőlegesen választott SQL alapú adatbázisrendszerre van szükség. A hozzá tartozó FreeBSD port mindezeket automatikusan telepíti a megadott beállítások szerint.
#
cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL
Miután a Django és a hozzá szükséges komponensek felkerültek rendszerünkre, hozzunk létre egy könyvtárat a leendő Django projektünknek és állítsuk be az Apache szervert, hogy az oldalunk belül a megadott linkekre a saját alkalmazásunkat hívja meg a beágyazott Python-értelmezőn keresztül.
A következő sort kell hozzátennünk
a httpd.conf
állományhoz,
hogy az Apache bizonyos linkeket a webes alkalmazás
felé irányítson át:
/a/django/csomagok/helye/
'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE azoldalam.beallitasai
PythonAutoReload On
PythonDebug On
</Location>A Ruby on Rails egy olyan másik nyílt forráskódú keretrendszer, amivel lényegében egy teljes fejlesztői készletet kapunk és amelyet kifejezetten arra élezték ki, hogy segítségével a webfejlesztők sokkal gyorsabban tudjanak haladni és a komolyabb alkalmazások gyorsabb elkészítése se okozzon nekik gondot. A Portrgyűjteményből pillanatok alatt telepíthető.
#
cd /usr/ports/www/rubygem-rails; make all install clean
Az Apache és Perl egyesítésén fáradozó projekt a Perl programozási nyelv és az Apache webszerver erejének összehangolásán dolgozik. A mod_perl modulon keresztül Perlben vagyunk képesek modulokat készíteni az Apache szerverhez. Ráadásul a szerverben egy belső állandó értelmező is található hozzá, ezzel igyekeznek megspórolni a külső értelmező és a Perl indításából keletkező többletköltségeket.
A mod_perl több
különböző módon
állítható munkába. A
mod_perl
használatához nem szabad elfelejtenünk,
hogy a mod_perl 1.0-ás
verziója csak az Apache 1.3
változatával működik, és a
mod_perl 2.0-ás
változata pedig csak az
Apache 2.X
változataival. A mod_perl
1.0 a www/mod_perl
portból telepíthető, valamint a statikusan
beépített változata a www/apache13-modperl
portban
található. A
mod_perl 2.0 a www/mod_perl2
portból
rakható fel.
A PHP, vagy másik nevén „PHP, a hipertext feldolgozó” egy általános célú szkriptnyelv, amelyet kifejezetten honlapok fejlesztéséhez hoztak létre. A szabványos HTML ágyazható nyelv felépítésében a C, Java™ és Perl nyelveket ötvözi annak elérése érdekében, hogy ezzel segítse a fejlesztőket a dinamikusan generált oldalak minél gyorsabb megírásában.
A PHP5 támogatását
úgy tudjuk hozzáadni az
Apache webszerverhez, ha
telepítjük a lang/php5
portot.
Ha a lang/php5
portot
most telepítjük először, akkor a vele
kapcsolatos beállításokat
tartalmazó OPTIONS
menü
automatikusan megjelenik. Ha ezzel nem
találkoznánk, mert például
valamikor korábban már felraktuk volna a
lang/php5
portot, akkor a
port könyvtárában következő
parancs kiadásával tudjuk újra
visszahozni:
#
make config
A beállítások között
jelöljük be az APACHE
opciót, amelynek eredményeképpen
létrejön az Apache
webszerverhez használható
mod_php5 betölthető
modul.
A PHP4 modult még ma is
rengeteg szerver használja több
különböző okból
(például kompatibilitási
problémák vagy a már korábban
kiadott tartalom miatt). Ha tehát a
mod_php5 helyett inkább a
mod_php4 modulra lenne
szükségünk, akkor a lang/php4
portot
használjuk. A lang/php4
portnál is
megtalálhatjuk a lang/php5
fordítási
idejű beállításainak nagy
részét.
Az iméntiek révén települnek
és beállítódnak a dinamikus
PHP alkalmazások
támogatásához szükséges
mouldok. Az
/usr/local/etc/apache/httpd.conf
állományban ellenőrizni is tudjuk, hogy az
alábbi részek megjelentek-e:
Ahogy befejeződött a művelet, a
PHP modul betöltéséhez
mindösszesen az apachectl
paranccsal
kell óvatosan újraindítanunk a
webszervert:
#
apachectl graceful
A PHP jövőbeni
frissítéseihez már nem lesz
szükségünk a make config
parancsra, mivel a korábban kiválasztott
OPTIONS
menün belüli
beállítasainkat a FreeBSD
Portgyűjteményéhez tartozó
keretrendszer automatikusan elmenti.
A PHP FreeBSD-ben
megtalálható támogatása
kifejezetten moduláris, ezért az alap
telepítése igencsak korlátozott. A
további elemek hozzáadásához a
lang/php5-extensions
portot tudjuk használni. A port egy
menüvezérelt felületet nyújt a
PHP különböző
bővítményeinek
telepítéséhez. Az egyes
bővítményeket azonban a megfelelő
portok használatával is fel tudjuk rakni.
Például PHP5 modulhoz
úgy tudunk támogatást adni a
MySQL adatbázis szerverhez,
ha telepítjük a
databases/php5-mysql
portot.
Miután telepítettünk egy bővítményt, az Apache szerverrel újra be kell töltetnünk a megváltozott beállításokat:
#
apachectl graceful
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.