apache

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

Apache htaccess engedélyezése

Apache HTTPD szerverekben az alapértelmezetten ".htaccess" nevű fájlokban lehet bizonyos szerveroldali, könyvtárfüggő konfigurációkat végezni, amikben a szerver újraindítása nélkül életbe lépnek. Az erről szóló leírások többnyire felsorolás-szerűek és kevéssé pontosak, nem világosak. Megpróbálom érthetően leírni, hogy bírhatjuk működésre.

Megosztás/Mentés

PHP FPM beállítása Apache HTTPD 2.2 és 2.4 alatt

Írtam már a mod_cgi/mod_cgid és a mod_fcgid modulokról, amikkel a PHP több verzióját futtathatjuk egyszerre. A PHP FPM viszont egy ezeknél is jobb megoldás. Azért mégsem tejesen új, mivel a mod_fastcgi vagy mod_fcgid Apache modulok egyike kell hozzá. Bár előbbiről nem esett még külön szó az említés szintjén felül, most ezt is telepítjük, mivel az Apache HTTPD 2.2 nem támogatja a szükséges mod_proxy_fcgi modult a mod_fcgid használatához.

A fejezet végén tehát már ismerni fogjuk mindkét lehetőséget és mindkét webszerver képes lesz bármely PHP verziót FPM-en keresztül futtatni tetszőleges felhasználó nevében.

Előbb azonban mindenképp javaslom a PHP telepítéséről szóló fejezet elolvasását, ahol az FPM telepítéséhez szükséges konfigurálásról írtam. Valamint az előző CGI megoldásokról szólót is.

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

Apache, osztott mappa virtuális gépen - A fájlok nem frissülnek a böngészőben

Nem szeretek kérdezni, ha nem sürgős a megoldás. Szeretek magam rájönni mindenre, még ha ez időbe is telik. Nem volt ez másképp most sem, amikor virtuális gépen próbáltam futtatni apache webszervert, amihez a gazda gépről megosztottam egy partíciót az egyszerűség kedvéért. Miután a jogosultságokkal és a partíció felcsatolásával megbirkóztam, beletelt egy kis időbe, mire google-lal megtaláltam a megoldást a következő problémámra is:

Megosztás/Mentés

PHP paraméterátadás url-ben és szép url-ek htaccess-el

Ismét egy gyakori kérdést dolgoztam fel, amit amatőr php programozók tesznek fel rendszeresen. Szokásomhoz híven igyekszem ismét a már működő de rossz megoldástól a minél szebb megoldás felé haladni. A Többféle megoldás bemutatásának célja, hogy az olvasó ne csak egy kész megoldást kapjon, hanem lássa is az alternatívákat. Hogy ő maga választhasson.


Feltetted már valaha, vagy fel akartad tenni a következő kérdést valakinek?

Hogy lehet olyant csinálni, ami itt ezen az oldalon is van, hogy ilyen kérdőjelek, meg & jelek vannak az url-ben, és úgy változik az oldal tartalma?

Talán nem pont így fogalmazódott meg benned a kérdés, de ha valaha is ott motoszkált a fejedben hasonló, és még nem kaptál rá választ, vagy már kaptál választ, de érdekel többféle módszer, akkor olvasd tovább ezt a bejegyzést és megkapod a választ.

Ezen kívül kitérek még a szép url-ek kérdésére is. Amikor már nem látszik az url-ben sok & jel,
hanem olyan, mintha mindig más mappát nyitna meg. Valójában pedig csak az apache szervernek mondjuk meg, hogy irányítson át egy másik url-re, ami már a fent említett megoldást használja, vagy php-ból szimuláljuk.

Megosztás/Mentés