apache2.4

A legegyszerűbb HTTPD Docker image elkészítése

LEGO keret kép felhasználásával a pixabay.com-ról AnnaliseArt felhasználótól docker image build felirat.

Folytatjuk az utunk az előző részben indított HTTPD Docker konténer után, de már saját Docker image-et is készítünk. Ez az image még egy nagyon egyszerű megoldás lesz a koncepció megértéséhez, ami még nem a végleges, éles környezetre szánt verzió, de innentől nagyon jó úton fogunk haladni afelé. Ez nem jelenti azt, hogy ne lehetne élesben is alkalmazni a leírtakat, de a legtöbb esetben ez még nem elég. Ha viszont egy statikus oldalad van, vagy egy állapotmentes alkalmazásod (pl. webes számológép, konvertáló alkalmazás), esetleg egy demo alkalmazásod, ami nem igényel konfigurációt sem, akkor már ezzel is el tudod készíteni.

Megosztás/Mentés

HTTPD virtuális hosztok Docker konténerben

Internet kép a pixabay.com-ról TheDigitalArtist felhasználótól.

Mutattam már az LXC konténereket, amik nagyon jól használhatók virtuális gépek helyett, de nem ez ami folyamatosan és elkerülhetetlenül szembejön ma már nem csak GitHub-on, de szakmai társalgásokban is. Sokkal inkább a Docker. Nem újdonság már, az I.T. szigeten is több oldalnyi cikket találhatsz a témáról. Ha még mindig nem vetted rá magad, hogy megtanuld, akkor itt a remek alkalom. Talán már megpróbálkoztál vele, de bonyolultnak érezted, nem működött. Könnyebb lehet először a hagyományoshoz hasonló módon elindítani egy programot a konténerben, majd haladni egyre konténerbarátabb megoldások felé, ám ezzel egyre inkább eltávolodni a korábban megszokottól. Ebben a cikkben és a mellékelt videóban azt mutatom be, hogyan konfigurálnánk egy Apache HTTPD webszervert több weboldalhoz konténerben futtatva, mégis egy még ismerősebb megoldással, virtuális hosztokkal.

Megosztás/Mentés

PHP alkalmazás fejlesztése Docker konténerekkel

php elefánt kép pixabay.com-ról

Az előző részben megmutattam, hogyan lehet statikus tartalmakat, kliensoldali webes alkalmazásokat fejleszteni és közzétenni Docker konténerben, most viszont a szerveroldali programokon a sor. Ebben az esetben az komplikálja a feladatot, hogy már nem elég a kliensnek odaadni a programfájlokat, azokat szerveroldalon kell értelmezni. Ez persze nem feltétlen jelentene önmagában problémát, mivel az értelmező és a szerver lehet egy konténerben is. PHP alkalmazásnál viszont érdemes külön konténerben futtatni a PHP értelmezőt és a webszervert. Az alábbiakban ennek mikéntjéről fogok írni.

Megosztás/Mentés

Processzkezelőkkel szemtől szemben: HTTPD MPM és PHP FPM változatok linux környezetben

cikk borítókép

Webszerverek beállításánál az MPM konfigurálása egy nem elhanyagolható kérdés. Nem az üzemeltetett weblapokhoz optimalizált értékekkel ugyanis előfordulhat, hogy az oldal belassul vagy a látogatók hibaüzenetekkel találkoznak, mert a szerver nem képes több kérést kiszolgálni egyszerre, vagy éppen erőforrást pazarolsz a webszerverre, miközben máshol nagyobb szükség lenne rá. Az Apache HTTPD-nél ismert MPM-hez hasonló a PHP-nél az FPM, ami szintén a processzek kezelését végzi a PHP értelmező esetén, amikor az nem a HTTPD moduljaként működik, hanem külső szolgáltatásként. Mivel a "rimelek.hu" egy időben rendszeresen megállt, akkor megelégeltem tudatlanságom és benéztem a színfalak mögé. Ebben a cikkben összegzem a tanultakat.

Megosztás/Mentés

PHP futtatása Apache mod_fcgid modullal

A mod_cgid modullal lehetőség nyílik a PHP-t úgy futtatni Apache szerveren, hogy nem olvassa minden kéréskor a php.ini-t, de továbbra is élvezhetjük a több PHP verzió futtatásának előnyeit. Ebben a fejezetben a mod_fcgid modul beüzemeléséről írok kizárólag olyan mértékben, ami szükséges virtuális hosztonkénti tetszőleges PHP futtatásához.

A fejezet elolvasása előtt mindenképp nézd meg az előkészületekről szóló részt: PHP CGI megoldások Apache webszerveren

Javaslom a mod_cgid modullal foglalkozó fejezet átolvasását is: PHP futtatása Apache mod_fcgid modullal

Megosztás/Mentés

PHP futtatása Apache mod_cgi/mod_cgid modullal.

Egy módja és egyben a legrégibb módja a több PHP verzió használatának Apache szerveren a címben szereplő mod_cgi és mod_cgid modulok használata. Tesztidőszak alatt jó megoldás lehet és nem igényel további külső modulokat. Ebben a fejezetben ennek beállítását mutatom be a korábban beállított virtuális hosztokon.

A fejezet elolvasása előtt mindenképp nézd meg az előkészületekről szóló részt: PHP CGI megoldások Apache webszerveren

Megosztás/Mentés

PHP CGI megoldások Apache webszerveren

Az előző fejezetekben igyekeztem kellően előkészíteni ezt a lépést, ahol is a beállított virtuális hosztokhoz hozzárendelhetjük a CGI-ként futtatható PHP verziókat. Már ennek is volna több megoldása. Ebben a fejezetben előkészítem a terepet a mod_cgid és mod_fcgid modul beüzemeléséhez Apache 2.4-ben és Apache 2.2-ben.

Megosztás/Mentés

Virtuális hoszt Apache HTTPD 2.2-ben és 2.4-ben

A virtuális hoszt egy megoldás, amivel egy Apache webszerver IP-től vagy domaintől függően tud egyedi szerverbeállításokat biztosítani egy webes alkalmazásnak.

Így kitalálhatunk bármilyen domain nevet, amit az adott operációs rendszer "hosts" fájljában a szerver valamelyik IP címére irányíthatunk. Innentől pedig már nem csak az IP címet, de hosszú könyvtárstruktúrát sem kell megjegyezni egy másik weboldal eléréséhez, mivel saját, rövid nevet kaphat. Feltéve persze, hogy az megjegyezhető.

Nagyobb előny viszont, hogy saját gyökérkönyvtárat kaphat a virtuális hoszt, és egyedi naplófájlokat. A különböző domainekhez tartozó könyvtárak tetszőlegesen szervezhetők. Ezzel pedig a könyvtárakra vonatkozó beállításokkal közös paraméterek alakíthatók ki bizonyos domainekhez.

Ezen kívül virtuális hoszthoz is rendelhető tetszőleges PHP verzió.

Ezt a fejezetet tehát a virtuális hosztok készítésének szentelem.

Megosztás/Mentés

Apache webszerver telepítése Deban 6-ra

Az Apache webszerver telepítése téma nem is olyan egyszerű, hisz több módja is van. Ráadásul a szervernek több verziója is. Én ebben a fejezetben a Debian 6-ra a 2.4 és 2.2 -es verziók telepítéséről írok a forráskódból fordításra koncentrálva.

Ez a módszer ad ugyanis lehetőséget a több verzió egymás mellé telepítésére.

Megosztás/Mentés