Adott a feladat: egy szerveren belül szeretnénk futtatni olyan oldalakat, amik php4-et és php5-t használnak. A feladat már korábban sem jelentett gondot, abban az esetben, ha az egyiket modulként, a másikat cgi-ként telepítettük. Ez esetben, akár egy vhost-on belül más kiterjesztéssel is működhetett a megoldás (.php és .php5). Ha nem igény az, hogy egy vhoston belül használnánk mind a kettő verziót, akkor egy másik megoldást is használhatunk, ami az oldalak proxyzásán alapul. Ezzel a megoldással fájdalommentesen migrálhatnuk -a szolgáltatás szüneteltetése nélkül is akár- apache 1.3 php4-ről apache2 php5-re. Az elv a következő:
Tegyük fel, hogy régi jól beállított rendszerünk apache 1.3 és php4. E mellé szeretnénk beüzemelni az apache2 és php5-ös párost. Az libapache2-mod-php5 és az apache2 csomagok telepítésével, feltesszük az apache2-t és a php5-t. Telepítés után az apache2 nem fog elindulni és az /etc/init.d/apache2 start parancs se fogja indítani. Ez azért van mert az /etc/default/apache2 fájlban egy az indítást gátoló opció van. Miután áttettük az apache2-t a például a 8080-as portra, már elindíthatjuk nyugodt szívvel az opció megváltoztatásával és az /etc/init.d/apache2 start parancs kiadásával.
Ezek után az apache-ban arra a hosztra, amin szeretnénk php5-t látni, beállítjuk az apache-ot, hogy proxy-zza tovább a beérkező kéréseket a 8080-as portra. Az apache2-ben pediglen beállítjuk, hogy szolgálja ki a 8080-as porton az kért oldalt. Ha nem szeretnénk, hogy közvetlenül meghívják a 8080-as porton lévő oldalakat akkor a kívülről érkező kéréseket a tűzfal beállításban blokkolhatjuk (alapból tíltó tűzfal esetén ez nem jelent gondot ha korábban nem engedélyeztük). A megoldás ezzel készen is van, és az apache-ok újratöltésével beizzítottuk a rendszert.
Hátránya annyi csupán, hogy egy hoszton belül nem lehet futtatni a két féle php verziót (talán rewrite-al meg lehetne oldani?!). És persze a proxy-zás miatt lassulás is bekövetkezhet, a kiszolgálás sebességében. Persze mérni még nem mértem a megoldást így nem tudom hogy mennyivel lassabb a kiszolgálás sebessége.
Következő érdekes migrációs kérdés lehet még a mysql 4.0-ról mysql 5.0-re és windowsról linuxra :). Ez utóbbival hamarosan részletesen is fogok foglalkozni, hiszen most éppen egy irodai gép migrációjával foglalkozom.
Ha jól tévedek, dynamo-éknál is így lett megoldva… 😀