A openSUSE Apache kiszolgálója kétféleképpen is beállítható: a YaST segítségével vagy kézzel. A kézi beállítás részletesebb lehet, de a YaST GUI használata jóval kényelmesebb.
FONTOS: A konfiguráció módosítása
Az Apache legtöbb konfigurációs értékének módosítása csak az Apache újraindítása vagy újra betöltése után lép életbe. Ez a YaST használatakor automatikusan megtörténik, ha a beállítást úgy fejezi be, hogy a értéke . A kézi újraindítás módját a Szakasz 28.3, Az Apache elindítása és leállítása rész írja le. A legtöbb konfigurációs módosításhoz csak újra kell tölteni az Apache programot az rcapache2 reload paranccsal.
Az Apache kézi beállítása esetén a sima szöveges konfigurációs fájlokat kézzel kell módosítani a root felhasználó nevében.
Az Apache konfigurációs fájljai két helyen találhatók:
/etc/sysconfig/apache2
/etc/apache2/
Az /etc/sysconfig/apache2 könyvtárban találhatók az Apache egyes globális beállításai, például a betöltendo modulok, további figyelembe veendo konfigurációs fájlok, a kiszolgáló indításakor figyelembe veendo jelzok, illetve a parancssorba beírandó jelzok. A fájl minden beállítási lehetosége alaposan le van írva, ezért itt nem foglalkozunk velük. Egy általános célú webkiszolgálóhoz az /etc/sysconfig/apache2 fájl beállításai mindenféle konfigurációs igényhez meg kell, hogy feleljenek.
Az /etc/apache2/ könyvtárban található az Apache összes többi konfigurációs fájlja. Az alábbiakban leírjuk az egyes fájlok szerepeit. Minden egyes fájlban többféle beállítási lehetoség (másik gyakori nevén direktíva) található. Az egyes fájlok minden beállítási lehetosége alaposan le van írva, ezért itt nem foglalkozunk velük.
Az Apache konfigurációs fájlok az alábbi módon szervezodnek:
/etc/apache2/ | |- charset.conv |- conf.d/ | | | |- *.conf | |- default-server.conf |- errors.conf |- httpd.conf |- listen.conf |- magic |- mime.types |- mod_*.conf |- server-tuning.conf |- ssl.* |- ssl-global.conf |- sysconfig.d | | | |- global.conf | |- include.conf | |- loadmodule.conf . . | |- uid.conf |- vhosts.d | |- *.conf
Az egyes nyelvekhez használt karakterkészleteket adja meg. Ne módosítsa.
Más modulok által felvett konfigurációs fájlok. Ezek a konfigurációs fájlok szükség esetén a virtuális gépek beállításánál használhatók. Példák a vhosts.d/vhost.template fájlban láthatók. Használatukkal eltéro modulkészletek állíthatók be az egyes virtuális gépekhez.
Általános beállítások az összes virtuális géphez, ésszeru alapértelmezésekkel. Az értékek módosítása helyett írja felül oket egy virtuálisgép-konfigurációval.
Azt szabályozza, hogyan reagáljon az Apache a hibákra. Az összes virtuális gépre vonatkozóan az üzenetek testreszabásához ezt a fájlt kell módosítani. Egyébként ezeket a direktívákat a virtuálisgép-beállításoknál egyenként lehet felülírni.
Az Apache kiszolgáló fo konfigurációs fájlja. Kerülje ennek a fájlnak a módosítását. Leginkább csak beágyazó utasításokat és általános beállításokat tartalmaz. Az általános beállításokat inkább az itt felsorolt konfigurációs fájlokban írja felül. A gépspecifikus beállításokat (például a fo dokumentumkönyvtárat) a virtuálisgép-konfigurációkban módosítsa.
Az Apache kiszolgálót meghatározott IP-címekhez és portokhoz rendeli. Szintén itt kell beállítani a név alapú virtuálisgép-kezelést (lásd: Név alapú virtuális gépek).
A mime_magic modul adatai, amely segít az Apache-nak automatikusan meghatározni egy ismeretlen fájl típusát. Ne módosítsa.
A rendszer által ismert MIME-típusok (ez valójában csak egy hivatkozás az /etc/mime.types fájlra). Ne módosítsa. Ha további, itt még fel nem sorolt MIME-típusokra van szükség, akkor azokat a mod_mime-defaults.conf fájlba vegye fel.
Az alapértelmezés szerint telepített modulok konfigurációs fájljai. Részletek: Szakasz 28.4, Modulok telepítése, aktiválása és beállítása. Ne feledje, hogy az opcionális modulok konfigurációs fájljai a conf.d könyvtárban találhatók.
A különféle MPM-ek (lásd: Szakasz 28.4.4, Többprocesszoros modulok (MPM)) konfigurációs direktíváit, valamint az Apache teljesítményét szabályozó általános konfigurációs beállításokat tartalmazza. Ha módosítja, feltétlenül alaposan tesztelje le a webkiszolgáló muködését.
Globális SSL-konfigurációs és SSL-tanúsítványadatok. Részletek: Szakasz 28.6, Biztonságos webkiszolgáló beállítása SSL használatával.
Az /etc/sysconfig/apache2 fájlból automatikusan eloállított konfigurációs fájlok. Ne módosítsa ezeket a fájlokat –helyettük módosítsa az /etc/sysconfig/apache2 fájlt. Ebbe a könyvtárba ne tegyen más konfigurációs fájlokat.
Azt határozza meg, mely felhasználó- és csoportazonosító alatt fusson az Apache. Ne módosítsa.
A virtuális gépek beállításai ide kerüljenek. A könyvtár tartalmaz sablonfájlokat SSL-es és SSL nélküli virtuális gépek számára egyaránt. Minden .conf-ra végzodo nevu fájl automatikusan bekerül az Apache konfigurációjába. Részletek: Virtuális gépek konfigurációja.
A virtuális gép kifejezés az Apache-nak arra a képességére utal, hogy képes több URI-t (univerzális eroforrás-azonosítót) kiszolgálni ugyanarról a fizikai géprol. Ez azt jelenti, hogy több tartományt , tehát például a www.example.com és www.example.net tartományokat is képes kiszolgálni egyetlen fizikai gépen futó ugyanazon webkiszolgáló.
Bevált gyakorlat a virtuális gépek használata az adminisztráció megkönnyítése (hiszen csak egyetlen webkiszolgálót kell karbantartani) és a hardverköltségek leszorítása érdekében (nincs szükség külön kiszolgálóra minden egyes tartományhoz). A virtuális gépek lehetnek név alapúak, IP alapúak és port alapúak.
Az összes meglévo virtuális gép kilistázásához használja a httpd2 -S parancsot. Ennek kimenete az alapértelmezett kiszolgáló és az összes virtuális gép listája, IP-címeikkel és a portokkal együtt, amelyeken figyelnek. A lista ezenfelül tartalmaz egy bejegyzést mindegyik virtuális géphez, amely a konfigurációs fájlok helyét mutatja.
A virtuális gépek a YaST segítségével is beállíthatók (lásd: Virtuális gépek), de a konfigurációs fájlok kézzel is módosíthatók. Alapértelmezés szerint a openSUSE rendszerben található Apache úgy van elokészítve, hogy egy virtuális géphez az /etc/apache2/vhosts.d/ egy konfigurációs fájlja tartozik. A könyvtár összes .conf kiterjesztésu fájlja automatikusan bekerül a konfigurációba. A basic template for a virtual host is provided in this directory (vhost.template or vhost-ssl.template for a virtual host with SSL support).
TANÁCS: Mindig hozzon létre virtuális gépeket
Célszeru mindig virtuális gépeket készíteni, még akkor is, ha a webkiszolgáló csak egyetlen tartományt szolgál ki. Ebben az esetben ugyanis nemcsak a tartományspecifikus beállítások kerülnek egy fájlba, hanem bármikor egyszeruen vissza lehet állni egy muködo alapkonfigurációra a virtuális gép konfigurációs fájljának áthelyezésével, törlésével vagy átnevezésével. Ugyanezen okokból érdemes külön konfigurációs fájlokat készíteni az egyes virtuális gépekhez.
A <VirtualHost></VirtualHost> szakasz tartalmazza az adott tartományra vonatkozó adatokat. Amikor az Apache egy kérést fogad egy klienstol egy már definiált virtuális gépre vonatkozóan, akkor az e szakaszban található direktívákat fogja használni. Szinte minden direktíva használható virtuálisgép-környezetben. További részletek az Apache beállítási lehetoségeivel kapcsolatban: http://httpd.apache.org/docs/2.2/mod/quickreference.html.
Név alapú virtuális gépek használata esetén egy IP-címhez egynél több webhely is tartozhat. Az Apache a kliens által küldött HTTP-fejlécben található "host" mezo alapján rendeli össze a kérést a virtuálisgép-definíciók között található megfelelo ServerName bejegyzéssel. Ha nincs megfelelo ServerName bejegyzés, akkor viszont az elsoként megadott virtuális gépet fogja használni alapértelmezésként.
A NameVirtualHost direktíva jelzi az Apache számára, hogy mely IP-címeken (és esetleg mely portokon) kell figyelnie a klienskérések HTTP-fejlécében a tartománynevet is. Ezt a lehetoséget az /etc/apache2/listen.conf konfigurációs fájlban kell beállítani.
Az elso paraméter lehet egy teljesen megadott tartománynév, de célszerubb az IP-címet használni. A második paraméter a portszám, amely elhagyható. Alapértelmezés szerint az Apache a 80-as portot használja, amelyet egyébként a Listen direktívával lehet beállítani.
A * helyettesíto karakter használható mind az IP-cím, mind a portszám esetében, és azt jelenti, hogy minden csatolón érkezhetnek kérések. Az IPv6-címeket szögletes zárójelekbe kell tenni.
Példa 28-1 A név alapú VirtualHost bejegyzések fajtái
# NameVirtualHost IP-address[:Port] NameVirtualHost 192.168.3.100:80 NameVirtualHost 192.168.3.100 NameVirtualHost *:80 NameVirtualHost * NameVirtualHost [2002:c0a8:364::]:80
Név alapú virtuális gép beállításakor a nyitó VirtualHost címke paraméterként kapja a korábban a NameVirtualHost sorban beállított IP-címet vagy teljesen megadott tartománynevet. A NameVirtualHost direktívában korábban megadott portszám elhagyható.
A * helyettesíto karakter szintén használható az IP-cím helyett. Ez a szintaxis csak akkor használható, ha korábban helyettesíto karaktert használt, NameVirtualHost * módon. Ha IPv6-címeket használ, azokat szögletes zárójelekbe kell tenni.
Példa 28-2 Név alapú VirtualHost direktívák
<VirtualHost 192.168.3.100:80> ... </VirtualHost> <VirtualHost 192.168.3.100> ... </VirtualHost> <VirtualHost *:80> ... </VirtualHost> <VirtualHost *> ... </VirtualHost> <VirtualHost [2002:c0a8:364::]> ... </VirtualHost>
Ha így állít be virtuális gépeket, akkor egy géphez több IP-címnek is kell tartoznia. Egy Apache-példány több tartományt is kiszolgál, amelyek mindegyikéhez különbözo IP-cím tartozik.
A fizikai kiszolgálón minden egyes IP alapú virtuális géphez külön IP-címnek kell tartoznia. Ha a gépben fizikailag nincs több hálózati kártya, akkor virtuális hálózati csatolók (másodlagos IP-címek) is használhatók.
Az alábbi példában bemutatunk egy Apache-rendszert, amelyik az 192.168.3.100 IP-címu gépen fut, de két további IP-címen (192.168.3.101 és 192.168.3.102) két tartományt szolgál ki. Egy külön VirtualHost blokkra van szükség mindegyik virtuális kiszolgálóhoz.
Példa 28-3 IP alapú VirtualHost direktívák
<VirtualHost 192.168.3.101> ... </VirtualHost> <VirtualHost 192.168.3.102> ... </VirtualHost>
Itt a VirtualHost direktívák csak a 192.168.3.100 címtol eltéro csatolókhoz vannak megadva. Ha megad egy Listen direktívát a 192.168.3.100 címhez, akkor egy külön IP alapú virtuális gépet létre kell hozni, amelyik válaszol az adott csatolóra érkezo HTTP-kérésekre – ellenkezo esetben az Apache az (/etc/apache2/default-server.conf) fájlban megadott alapértelmezett direktívákat fogja használni.
Ahhoz, hogy a virtuális gép muködjön, legalább az alábbi direktívákat be kell állítani minden egyes virtuális gép konfigurációjában. További részletek az /etc/apache2/vhosts.d/vhost.template sablonfájlban találhatók.
A teljesen megadott tartománynév, amelyen a gép megszólítható.
Annak a könyvtárnak az elérési útja, ahonnan az Apache-nak ki kell szolgálnia az adott gép fájljait. Biztonsági okokból alapértelmezés szerint tiltott a teljes fájlrendszerhez való hozzáférés, így ezt a könyvtárat külön engedélyezni kell egy Directory szakasszal.
A kiszolgáló rendszergazdájának e-mail címe. Ez a cím megjelenik például az Apache által eloállított oldalakon.
A virtuális gép hibanaplófájlja. Bár nem kötelezo külön hibanaplót készíteni minden egyes virtuális géphez, ez a szokásos gyakorlat, hiszen lényegesen megkönnyíti a hibák keresését. A /var/log/apache2/ az alapértelmezett könyvtár, ahová az Apache naplófájljai kerülnek.
A virtuális gép hozzáférésinapló-fájlja. Bár nem kötelezo külön hozzáférési naplót készíteni minden egyes virtuális géphez, ez a szokásos gyakorlat, mert megkönnyíti a gépenkénti hozzáférési statisztikák készítését. A /var/log/apache2/ az alapértelmezett könyvtár, ahová az Apache naplófájljai kerülnek.
Amint feljebb már említettük, biztonsági okokból alapértelmezés szerint tiltott a teljes fájlrendszerhez való hozzáférés. Éppen ezért külön kell engedélyezni azokat a könyvtárakat, ahová az Apache által kiszolgálandó fájlok kerültek – például a DocumentRoot könyvtárat.
<Directory "/srv/www/www.example.com/htdocs"> Order allow,deny Allow from all </Directory>
A teljes konfigurációs fájl így néz ki:
Példa 28-4 Alapszintu VirtualHost beállítások
<VirtualHost 192.168.3.100>
ServerName www.example.com;
DocumentRoot /srv/www/www.example.com/htdocs
ServerAdmin webmaster@example.com
ErrorLog /var/log/apache2/www.example.com_log
CustomLog /var/log/apache2/www.example.com-access_log common
<Directory "/srv/www/www.example.com/htdocs">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
A webkiszolgáló a YaST-tal történo beállításához indítsa el a YaST-ot és válassza ki a elemet. A modul elso indításakor megjelenik a HTTP-kiszolgáló varázsló, és feltesz néhány alapkérdést a kiszolgáló felügyeletével kapcsolatban. A varázsló befejezése után a HTTP-kiszolgáló beállítások párbeszédablak indul el minden egyes alkalommal, amikor meghívja a modult.
A HTTP-kiszolgáló varázsló öt lépésbol áll. A párbeszédablak utolsó lépésében beléphet a szakértoi beállítások közé, ha még speciálisabb beállításokra van szükség.
Itt kell megadni a hálózati csatolókat és portokat, amelyeken az Apache figyelni fogja a bejövo kéréseket. A meglévo hálózati csatolók és IP-címeik tetszés szerinti kombinációja használható. Mindhárom tartomány (jól ismert portok, bejegyzett portok és dinamikus/privát portok) egyéb szolgáltatások által nem foglalt portjai használhatók. Az alapértelmezett beállítás a minden hálózati csatolón (IP-címen), a 80-as porton történo figyelés.
Jelölje meg a beállítást a webkiszolgáló által figyelt portok megnyitásához a tuzfalon. Erre szükség van ahhoz, hogy a webkiszolgáló valóban elérheto legyen a hálózaton (legyen akár LAN, WAN, akár a nyilvános internet). A port zárva tartásának csak olyan teszthelyzetekben van értelme, ahol senkinek nem kell kívülrol elérnie a webkiszolgálót. Ha egynél több hálózati csatoló van a gépben, akkor kattintson a pontra és adja meg, mely csatoló(ko)n mely port(ok) legyen(ek) megnyitva.
Kattintson a gombra a beállítások folytatásához.
A részben lehet be- és kikapcsolni a webkiszolgáló által támogatandó parancsnyelveket. A többi modul be- és kikapcsolásának leírása: Kiszolgálómodulok. Kattintson a gombra a következo párbeszédablakra lépéshez.
Ezek a beállítások az alapértelmezett webkiszolgálóra vonatkoznak. Amint az a Virtuális gépek konfigurációja részben is olvasható, az Apache képes egyetlen fizikai géprol több virtuális gépet kiszolgálni. A konfigurációs fájlban elsoként megadott virtuális gépet szokás az alapértelmezett gépnek hívni. Minden egyes virtuális gép megörökli az alapértelmezett gép konfigurációját.
A gép beállításainak (más szavakkal, direktíváinak) módosításához válassza ki a táblázat megfelelo bejegyzését, majd kattintson a gombra. Új direktívák felvételéhez kattintson a gombra. Egy direktíva törléséhez válassza ki és kattintson a gombra.
Ábra 28-1 HTTP kiszolgáló varázsló: Alapértelmezett gép
Itt láthatók a kiszolgáló alapértelmezett beállításai.
Annak a könyvtárnak az elérési útja, ahonnan az Apache kiszolgálja az adott gép fájljait. Az alapértelmezett hely az /srv/www/htdocs.
Az Alias direktívák használatával az URL-ek megfeleltethetok a fizikai fájlrendszer egyes helyeinek. Ez azt jelenti, hogy ha egy bizonyos útvonal kívül is esne a Document Root-ban megadott helyet, akkor is elérheto a fájlrendszer ezen része, az URL-t ennek megfeleltetve.
Az openSUSE alapértelmezett Alias /icons beállítása az /usr/share/apache2/icons könyvtárra mutat, innen veszi az Apache ikonjait a könyvtárindex-nézet megjelenítéséhez.
Az Alias direktívához hasonlóan, a ScriptAlias direktíva is egy bizonyos URL-t a fájlrendszer egy adott részéhez rendel. A különbség az, hogy a ScriptAlias esetén a célkönyvtár CGI-parancsfájlokat tartalmaz, vagyis a CGI-parancsfájlokat errol a helyrol szabad csak végrehajtani.
A Directory direktívával egy sor olyan beállítást lehet megadni, amelyek csak a megadott könyvtárra vonatkoznak.
Itt vannak beállítva az /usr/share/apache2/icons és az /srv/www/cgi-bin könyvtárak hozzáférési és megjelenítési jellemzoi. Nincs szükség az alapértelmezett értékek megváltoztatására
Az include utasítással további konfigurációs fájlok adhatók meg. Két Include direktíva már elore be van állítva: az /etc/apache2/conf.d/ az a könyvtár, amely a külso modulok konfigurációs fájljait tartalmazza. Ezzel a beállítással a könyvtár minden .conf kiterjesztésu fájlja beágyazásra kerül. A második direktíva az jelenti, hogy az /etc/apache2/conf.d/apache2-manual.conf fájl, az apache2-manual konfigurációs fájl legyen beágyazva.
Ez adja meg az alapértelmezett URL-t, amelyen a kliensek elérik a webkiszolgálót. Használja a webkiszolgáló elérésére szolgáló teljesen megadott tartománynevet (http://FQDN/), vagy az IP-címét. Itt nem választhat teljesen önkényesen nevet – a kiszolgálónak ezen a néven kell ismertnek
lennie.
A kiszolgáló rendszergazdájának e-mail címe. Ez a cím megjelenik például az Apache által eloállított oldalakon.
Az lépés befejezése után kattintson a gombra a beállítás folytatásához.
Ebben a lépésben a varázsló megjeleníti a már beállított virtuális gépek listáját (lásd: Virtuális gépek konfigurációja). Ha nem végzett kézi módosításokat a YaST HTTP varázslójának elindítása elott, akkor itt nem látható virtuális gép.
Egy gép hozzáadásához kattintson a gombra. Megnyílik egy párbeszédablak, amelyben megadhatja a géppel kapcsolatos legfontosabb adatokat, mint például a , a (DocumentRoot) és az . A szolgál annak megadására, hogyan történjen a gép azonosítása (név vagy IP alapján). Adja meg a nevet vagy IP-címet a mezoben.
Kattintson a gombra a virtuálisgép-konfigurációs párbeszédablak második részére továbblépéshez.
A virtuálisgép-konfiguráció második részében adhatja meg, hogy kíván-e CGI-parancsfájlokat használni, és ha igen, ezek melyik könyvtárban találhatók. Szintén itt lehet bekapcsolni az SSL használatát. Ha így tesz, akkor meg kell adni a tanúsítvány elérési útját is. Az SSL-lel és a tanúsítványokkal kapcsolatos további részletek: Szakasz 28.6.2, Apache beállítása SSL-hez. A paraméterben adhatja meg, hogy mely fájlt jelenítse meg a kiszolgáló, ha a kliens csak egy könyvtárat adott meg (az alapértelmezett érték az index.html). Írja be a kívánt fájlneveket (szóközzel elválasztva), ha ezt módosítani kívánja. A mezoben a felhasználók nyilvános könyvtárainak ~felhasználó/public_html/) tartalma teheto elérhetové a kiszolgálón a http://www.example.com/~felhasználó címen.
FONTOS: Virtuális gépek létrehozása
Virtuális gépeket nem lehet összevissza felvenni. Név alapú virtuális gépek használata esetén minden egyes gépnévnek feloldhatónak kell lennie a hálózaton. IP alapú virtuális gépek használata esetén minden egyes IP-címhez csak egy gépnév rendelheto.
Ez a varázsló utolsó lépése. Itt adhatja meg, hogy hogyan és mikor induljon az Apache kiszolgáló: rendszerindításkor, vagy kézzel. Szintén itt jelenik meg az eddig elvégzett beállítások rövid összefoglalója. Ha meg van elégedve a beállításokkal, akkor kattintson a gombra a beállítások befejezéséhez. Ha módosítani kíván valamit, akkor kattintson a gombra egészen addig, amíg a kívánt párbeszédablakhoz nem ér. A gomb a HTTP-kiszolgáló beállítások részben leírt párbeszédablakot nyitja meg.
Ábra 28-2 HTTP-kiszolgáló varázsló: Összegzés
A párbeszédablakban a varázslónál még részletesebben adhatók meg a beállítások (a varázsló egyébként is csak akkor fut le, ha az elso alkalommal állítja be a webkiszolgálót). Négy lapból áll, amelyeket az alábbiakban mutatunk be. Itt semmilyen beállítás nem lép azonnal érvényre – a módosításokat elobb meg kell erosíteni a gombra kattintva. A gombra kattintás esetén kilép a konfigurációs modulból és elveti a változtatásokat.
A részben adja meg, hogy az Apache fusson-e () vagy le legyen állítva (). A részben a , , és gombok használatával vegye fel a címeket és portokat, amelyeken a kiszolgálónak elérhetonek kell lennie. Az alapértelmezés az összes csatolón a 80-as port figyelése. A pontot mindig jelölje meg, különben a webkiszolgálót nem lehet majd elérni kívülrol. A port zárva tartásának csak olyan teszthelyzetekben van értelme, ahol senkinek nem kell kívülrol elérnie a webkiszolgálót. Ha egynél több hálózati csatoló van a gépben, akkor kattintson a pontra és adja meg, mely csatoló(ko)n mely porto(k) legyen(ek) megnyitva.
A részben tekintheti meg a hozzáférési naplót és a hibanaplót. Ez hasznos, ha tesztelni kívánja a beállításokat. A naplófájl egy külön ablakban nyílik meg, ahonnan újraindíthatja és újratöltheti a webkiszolgálót (ennek részletei: Szakasz 28.3, Az Apache elindítása és leállítása). Ezek a parancsok azonnal életbe lépnek.
Ábra 28-3 HTTP-kiszolgáló beállítások: Figyelt portok és címek
Az Apache2-modulok (bekapcsolt vagy kikapcsolt) állapotának módosításához kattintson az gombra. A gombra kattintva vehet fel egy új, már telepített, de még fel nem sorolt modult. Tudjon meg többet a modulokról a Szakasz 28.4, Modulok telepítése, aktiválása és beállítása címu fejezetbol.
Ábra 28-4 HTTP-kiszolgáló beállítások: Kiszolgálómodulok
Ezek a párbeszédablakok megegyeznek a már leírtakkal. További információ: Alapértelmezett gép és Virtuális gépek.