28.4 Modulok telepítése, aktiválása és beállítása

Az Apache szoftver modulárisan lett kialakítva: néhány alapfeladat kivételével mindent modulok végeznek. Ez egészen odáig megy, hogy még a HTTP-t is egy modul (http_core) dolgozza fel.

Az Apache-modulok befordíthatók a bináris Apache-fájlba összeszerkesztéskor, de betölthetok dinamikusan, futás közben is. A modulok dinamikus betöltésérol a Szakasz 28.4.2, Aktiválás és deaktiválás rész szól.

Az Apache-modulok négyféle kategóriába tartozhatnak:

Alapmodulok

Az alapmodulok alapértelmezés szerint be vannak fordítva az Apache-ba. A SUSE Linux Apache kiszolgálójába csak a (többi modul betöltéséhez szükséges) mod_so és a http_core van befordítva. Minden más megosztott objektumként érheto el: ahelyett, hogy a bináris kiszolgálófájlban lennének benne, futás közben tölthetok be.

Bovítomodulok

Általában a bovítésként megjelölt modulok benne találhatók az Apache-szoftvercsomagban, de nincsenek statikusan belefordítva a kiszolgálóba. openSUSE rendszereken ezek megosztott, az Apache-ba futás közben betöltheto objektumokként érhetok el.

Külso modulok

A külsonek jelölt modulok nem részei a hivatalos Apache-disztribúciónak. A openSUSE számos ilyen modult tartalmaz, azonnal használható formában.

Többprocesszoros modulok (MPM)

Az MPM-ek felelosek a webkiszolgálóhoz érkezo kérések fogadásáért és kezeléséért, és ezek alkotják a webkiszolgáló szoftver magját.

28.4.1 Modulok telepítése

Ha az Apache telepítésének (a Szakasz 28.1.2, Telepítés részben leírt) alapértelmezett módját követte, akkor telepítve lett az összes alap- és bovítomodul, a Prefork többprocesszoros modul (MPM), valamint a mod_php5 és mod_python külso modulok.

További külso modulok telepítéséhez indítsa el a YaST-ot és válassza ki a Szoftver > Szoftverkezelés szakaszt. Válassza ki a Szuro > Keresés menüpontot, és keresse ki az apache-t. Más egyéb csomagok mellett az eredménylistában megjelenik az összes rendelkezésre álló külso Apache-modul is.

28.4.2 Aktiválás és deaktiválás

A YaST segítségével kényelmesen aktiválhatja és deaktiválhatja a parancsnyelv-kezelo modulokat (PHP5, Perl, Python és Ruby) a A HTTP-kiszolgáló varázsló részben leírt modulkonfiguráció lépéseit követve. Az összes többi modul be- és kikapcsolásának módját a Kiszolgálómodulok rész írja le.

Ha inkább kézzel kívánja be- és kikapcsolni a modulokat, használja az a2enmod mod_foo vagy a2dismod mod_foo, parancsokat (ahol mod_foo a modul neve). Az a2enmod -l parancs kilistázza az összes éppen aktív modult.

FONTOS: Külso modulok konfigurációs fájlainak beágyazása

Ha kézzel aktivált külso modulokat, akkor ügyeljen rá, hogy a konfigurációs fájljaik be legyenek töltve az összes virtuálisgép-konfigurációba. A külso modulok konfigurációs fájljai az /etc/apache2/conf.d/ könyvtárban találhatók, és alapértelmezés szerint nincsenek betöltve. Ha ugyanazokra a modulokra van szükség mindegyik virtuális gépben, akkor a beágyazásnál megadhatja a *.conf értéket erre a könyvtárra vonatkozóan. Ha nem, akkor ágyazza be az egyes fájlokat külön-külön. Példák az /etc/apache2/vhost.d/vhost.template sablonfájlban találhatók.

28.4.3 Alap- és bovítomodulok

Az összes alap- és bovítomodul részletesen le van írva az Apache dokumentációjában. Itt csak a legfontosabb modulok rövid leírását szerepeltetjük. Az egyes modulok részleteivel kapcsolatban tekintse meg a http://httpd.apache.org/docs/2.2/mod/ webhelyet.

mod_actions

Módszereket kínál parancsfájlok végrehajtására, amikor egy meghatározott MIME-típusú (például application/pdf) vagy meghatározott kiterjesztésu (például .rpm) fájlt, vagy meghatározott kérési móddal (például GET) kérnek. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_alias

Alias (másodlagos név) és Redirect (átirányítás) direktívákat biztosít, amelyekkel egy adott URI egy adott könyvtárhoz rendelheto (Alias), vagy egy URL átirányítható egy másik helyre. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_auth*

A hitelesítési modulok különféle hitelesítési eljárásákat kínálnak: alapszintu hitelesítést a mod_auth_basic, vagy kivonat alapú hitelesítést a mod_auth_digest segítségével. Az Apache 2.2-ben a kivonat alapú hitelesítés egyelore kísérletinek tekintendo.

A mod_auth_basic és mod_auth_digest kombinálható egy hitelesítésszolgáltató (mod_authn_*) modullal (például a mod_authn_file szövegfájl alapú hitelesítést biztosít) és egy engedélyezési (mod_authz_*) modullal (a mod_authz_user például a felhasználók engedélyeit szabályozza).

Ezzel kapcsolatban további információ a Hitelesítési HOWTO-ban olvasható (a http://httpd.apache.org/docs/2.2/howto/auth.html címen).

mod_autoindex

Az autoindex könyvtárlistákat készít, ha nem található külön indexfájl (például index.html). Az indexek megjelenése állítható. Ez a modul alapértelmezés szerint be van kapcsolva. A könyvtárak tényleges kilistázása azonban le van tiltva az Options direktíváal – írja felül ezt a beállítást a virtuálisgép-konfigurációban. A modul alapértelmezett konfigurációs fájlja az /etc/apache2/mod_autoindex-defaults.conf.

mod_cgi

A mod_cgi szükséges CGI-parancsfájlok végrehajtásához. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_deflate

E modul használatával az Apache beállítható, hogy menet közben, még kiszolgálás elott tömörítsen bizonyos fájltípusokat.

mod_dir

A mod_dir biztosítja a DirectoryIndex direktívát, amellyel beállítható, hogy egy könyvtár lekérésekor mely fájlok kerüljenek automatikusan kiszolgálásra (az alapértelmezés az index.html). Szintén ez biztosít automatikus átirányítást a megfelelo URl-ra, ha a lekért könyvtár végén nem szerepel a lezáró törtvonal. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_env

A CGI-parancsfájloknak vagy SSI-oldalaknak átadott környezetet szabályozza. A httpd folyamatot meghívó parancsértelmezoben beállíthatók és kikapcsolhatók, illetve onnan átadhatók környezeti változók. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_expires

A mod_expires használatával szabályozható, hogy a proxy és böngészo gyorsítótárak milyen surun frissítsék a dokumentumokat egy Expires fejléc küldésével. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_include

A mod_include lehetové teszi kiszolgálóoldali beágyazások (Server Side Includes, SSI) használatát, amely egy alapszintu megoldás a HTML-oldalak dinamikus eloállítására. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_info

Részletes áttekintést ír ki a kiszolgáló konfigurációjáról a http://localhost/server-info/ speciális címen. Biztonsági okokból ennek az URL-nek az elérését feltétlenül korlátozni kell. Alapértelmezés szerint egyedül a localhost jogosult elérni ezt az URL-t. A mod_info beállításai az /etc/apache2/mod_info.conf fájlban találhatók.

mod_log_config

Ezzel a modullal lehet beállítani az Apache naplófájljainak a külalakját. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_mime

A fájlnevek kiterjesztése alapján a mime modul gondoskodik arról, hogy a fájlok a megfelelo (tehát például HTML dokumentumok esetében text/html) MIME-fejléccel legyenek elküldve . Ez a modul alapértelmezés szerint be van kapcsolva.

mod_negotiation

A tartalom egyeztetéséhez szükséges. További információ a http://httpd.apache.org/docs/2.2/content-negotiation.html oldalon olvasható. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_rewrite

A mod_alias funkcióit biztosítja, de többféle lehetoséggel és nagyobb rugalmassággal. A mod_rewrite használatával többféle szabály, kérési fejlécek és még sokminden más alapján lehet átirányítani az URL-eket.

mod_setenvif

A klienstol érkezo kérés részletei, például a kliens által elküldött böngészoazonosító vagy a kliens IP-címe alapján állít be környezeti változókat. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_speling

A mod_speling megkísérli automatikusan korrigálni az URL-ek elgépeléseit, például a véletlen nagybetuket.

mod_ssl

Titkosított kapcsolatot létesít a webkiszolgáló és a kliensek között. Részletek: Szakasz 28.6, Biztonságos webkiszolgáló beállítása SSL használatával. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_status

A kiszolgáló tevékenységével és teljesítményével kapcsolatos adatokat jelenít meg a http://localhost/server-status/ speciális címen. Biztonsági okokból ennek az URL-nek az elérését feltétlenül korlátozni kell. Alapértelmezés szerint egyedül a localhost jogosult elérni ezt az URL-t. A mod_status beállításai az /etc/apache2/mod_status.conf fájlban találhatók.

mod_suexec

A mod_suexec lehetové teszi a CGI-parancsfájlok egy másik felhasználó és csoport nevében történo futtatását. Ez a modul alapértelmezés szerint be van kapcsolva.

mod_userdir

Lehetové teszi a ~user/ alatti felhasználóspecifikus könyvtárak használatát. Az UserDir direktívát meg kell adni a konfigurációban. Ez a modul alapértelmezés szerint be van kapcsolva.

28.4.4 Többprocesszoros modulok (MPM)

A openSUSE kétféle többprocesszoros modul (MPM) használatát biztosítja az Apache-hoz.

Prefork MPM

A prefork MPM egy nem szálkezelo, elore elágaztatott .webkiszolgálót valósít meg. Ennek hatására a webkiszolgáló úgy viselkedik, mint az Apache 1.x verziója: elszigetel minden egyes kérést és úgy kezeli oket, hogy külön leszármazott folyamatot indít a kiszolgálásukra. Ily módon az esetleg problémát okozó kérések nincsenek hatással a többire és megakadályozzák a webkiszolgáló lefagyását.

Miközben azonban jobb stabilitást biztosít a folyamat alapú megközelítés révén, a prefork MPM jóval több rendszereroforrást használ el, mint párja, a worker MPM. UNIX alapú operációs rendszereken a prefork MPM számít az alapértelmezett MPM-nek.

FONTOS: A jelen dokumentumban tárgyalt MPM-ek

A jelen dokumentumban feltételezzük, hogy az Apache kiszolgálót a prefork MPM-mel használják.

Worker MPM

A worker MPM egy többszálú webkiszolgálót valósít meg. A szál a folyamatnak egy egyszerubb fajtája. Ha szálakat használ folyamatok helyett, kevesebb eroforrást emészt fel a rendszer. Ahelyett, hogy leszármazott folyamatokat indítana, a worker MPM a kiszolgálófolyamatok szálait használva szolgálja ki a kéréseket. Az elore elágaztatott leszármazott folyamatok többszálúak. E megközelítés használatával az Apache jobb teljesítményt ér el, mivel kevesebb rendszer-eroforrást használ, mint a prefork MPM.

A legnagyobb hátrányok egyike azonban a worker MPM stabilitása: ha egy szállal baj történik, az a folyamat összes szálát befolyásolja. A legrosszabb esetben a teljes kiszolgáló összeomolhat. Különösen akkor, ha CGI-t használnak Apache alatt és nagy a terhelés, különféle belso kiszolgálóhibák jelentkezhetnek, mivel a szálak nem tudnak kommunikálni a rendszer eroforrásaival. Másik érv a worker MPM használata ellen, hogy nem minden Apache-modul képes szálkezelésre, és emiatt nem használható együtt a worker MPM-mel.

FIGYELMEZTETÉS: PHP-modulok használata az MPM-ekkel

Nem minden PHP-modul képes szálkezelésre. A worker MPM használata a mod_php modullal együtt határozottan ellenjavallt.

28.4.5 Külso modulok

Alább felsoroljuk a openSUSE összes külso modulját. A modul dokumentációja a jelzett könyvtárban található.

mod-apparmor

Képessé teszi az Apache kiszolgálótt, hogy a mod_php5 és mod_perl modulok által kezelt CGI-parancsfájlokat a Novell AppArmor segítségével elszigetelje.

mod_mono

A mod_mono használatával a kiszolgáló ASP.NET oldalak futtatására is képessé válik.

  • Csomagnév: apache2-mod_mono
  • Konfigurációs fájl: /etc/apache2/conf.d/mod_mono.conf
mod_perl

A mod_perl használatával a Perl parancsfájlok egy beépített értelmezovel futtathatók. A kiszolgálóba épített állandó értelmezo révén nincs szükség állandóan egy külso értelmezo elindítására, és minden alkalommal a Perl indulásának kivárására.

  • Csomagnév: apache2-mod_perl
  • Konfigurációs fájl: /etc/apache2/conf.d/mod_perl.conf
  • További információ: /usr/share/doc/packages/apache2-mod_perl
mod_php5

A PHP egy kiszolgálóoldali, többplatformos, HTML-be ágyazott parancsnyelv.

  • Csomagnév: apache2-mod_php5
  • Konfigurációs fájl: /etc/apache2/conf.d/php5.conf
  • További információ: /usr/share/doc/packages/apache2-mod_php5
mod_python

A mod_python segítségével lényegesen jobb teljesítménnyel ágyazható be a Python az Apache HTTP kiszolgálóba, és rugalmasabban alakíthatók ki a webes alkalmazások.

  • Csomagnév: apache2-mod_python
  • További információ: /usr/share/doc/packages/apache2-mod_python
mod_tidy

A mod_tidy minden egyes kimeno HTML-oldalt ellenoriz a TidyLib alapján. Ellenorzési hiba esetén egy hibalistát tartalmazó oldal jelenik meg. Ellenkezo esetben az eredeti HTML oldal kerül kiszolgálásra.

  • Csomagnév: apache2-mod_tidy
  • Konfigurációs fájl: /etc/apache2/mod_tidy.conf
  • További információ: /usr/share/doc/packages/apache2-mod_tidy

28.4.6 Fordítás-összeszerkesztés

Képzett felhasználó ki is bovíthetik az Apache funkcionalitását egyedi modulok írásával. Apache-modulok fejlesztéséhez, illetve külso fejlesztésu modulok lefordításához szükség van az apache2-devel csomagra, valamint a megfelelo fejlesztoeszközökre. Az apache2-devel tartalmazza az apxs2 eszközöket is, amelyekre szükség van,ha további modulokat akar készíteni az Apache-hoz.

Az apxs2 teszi lehetové a forráskódú modulok lefordítását és telepítését (beleértve a konfigurációs fájlok megfelelo módosításait is), az Apache-ba futási idoben betöltheto, ún. dinamikus megosztott objektumok (DSO-k) készítését.

Az apxs2 bináris fájljai az /usr/sbin könyvtárban találhatók.

  • Az /usr/sbin/apxs2 segítségével bármely MPM alatt használható bovítomodulok készíthetok. A telepítési helye az /usr/lib/apache2.

  • Az /usr/sbin/apxs2-prefork segítségével a prefork MPM alatt használható bovítomodulok készíthetok. A telepítési helye az /usr/lib/apache2-prefork.

  • Az /usr/sbin/apxs2-worker segítségével a worker MPM alatt használható bovítomodulok készíthetok. A telepítési helye az /usr/lib/apache2-worker.

A forráskódú modulok telepítéséhez és aktiválásához használja a következo parancsokat: cd /modul/forrása; apxs2 -cia mod_foo.c (A -c hatására lefordul a modul, az -i határása telepítésre kerül, az -a pedig aktiválja). Az apxs2 egyéb paramétereit az apxs2(1) kézikönyvoldala írja le.