különböző php verziók egyszerre

Fórumok

Sziasztok! hogyan tudnék én egyszerre 2 különböző verziójú php-t feltenni a gentoomra, és eselect-el váltani köztük??? php-5.3 és php 5.2-t akarok.
fejlesztéshez kéne, szóval nem baj, ha az apache vagy az egyikkel megy, vagy a másikkal. én a slotoknál elakadtam :S illetve ugye ha új php verziót teszek, akkor újra kell pörgetni az xdebug-ot, és a memcached-et is, meg valami érthetetlen okoknál fogva a cups-ot is :D (legalábbis függőség a portage szerint) szóval lehet hogy valami olyasmi is kéne, hogy ugyanazon verziójú packageből legyen fenn 2, csak az egyik az egyik php-hoz, a másik a másikhoz legyen linkelve.

minden segítséget megköszönnék!

Hozzászólások

Egyszeru, fapados, am mukodo megoldas: chroot.

Ha nekem egy adott szoftverbol mas verzio kell, mint a disztrib defaultja, vagy ket utkozo verzio egyszerre, akkor felhuzok egy chrootot, es felteszem oda. Nagyjabol 5-10 perc alatt meg is van.

Egyik megoldás a suPHP, és cgi-ként futtatod az egyes verziokat.

Vagy mókuskodsz a handlerekkel apache konfigba, és a VirtualHost, vagy valami fuggvenyeben mas MIME-típust rendelsz a .php-hez. Így egy verzio futhat modulkent. De eccerre csak egy php modul lehet betoltve az apache-ba, legalabbis így remlik...

Üdv,
---
fincsi

pont ezaz, hogy a gentoo eselect-je pont erre van. java virtual machine-t is tudok váltani. és van php-select is, csak nem tudom külön slot-ba tenni a másik php verziót :S ez valami nagyon homlokra csapós dolog lesz szerintem :D
a chrootnál még egyszerűbb egy szkriptet írni, ami váltja a php bináris, meg a tőle föggő sókra mutató linkeket. én valahogy a portage-be jobban bízok, mint a magam hekkelte cuccokba.

ez az apache configolós cgis út is egyszerűnek tűnik, az apache confját már úgyis agyonhekkeltem :D

esetleg tudnál valami példát idepastelni?

chroottal kapcsolatban: en inkabb bizom egy chrootban mint osszehackelt scriptben. chrootban is siman hasznalhato portage, stb. tobb helyet foglal, ellenben gyorsan megvan, mukodik, problema megoldva, imo. Biztos lehetne szebben is, de eleve egy szoftverbol ket verziot feltelepiteni nem szep, igy ezutan szepitgetni szerintem mar teljesen felesleges :)

(egyebkent debianon egy chroot telepites kb ebbol all: install -d /chroot/blah; debootstrap stable /chroot/blah; chroot /chroot/blah; ezen belul apt-get install minden-ami-kell; es done, megvan par perc alatt)

miért nem forgatsz php forrásból, és rakod külön könyvtárba, aztán amelyik kell, azt a vhost-ban behúzod
pl /usr/src/php5.2 && /usr/src/php5.3

ez nagyon szomorú.....

most akkor vagy 2 napig hekkelem, hogy /usr/src-ben legyenek források, minden link oda mutasson ahova kell, megforgatom ugyanúgy forrásból az xdebug-ot,
a memcached-et stb stb, és pakolászok, a végére lehet hogy még a /etc/php-ba is linkelgetek egy kicsit... már csak váltani nehézkes :D

vagy: CGI, namost ez az út nálam addig tartott, hogy beadtam a concurentmodphp use flaget, és széthalt a phpm, ráadásul ugyanúgy nem akar más php verziónak slot-ot csinálni :S
írta is a warningot mielött fordította, hogy ha nem megy, akkor vess magadra :D ez a flag amúgy arra lenne jó, hogy egyszerre tudjon 2 különböző php verziót indítani az apache.

vagy: nekiállok chrootolni... ha jól értem, csinálok egy könyvtárat, minden sónak teszek oda linket, majd bechrootolok, dobok rá lampot, és onnan indítom az apache-ot...
ráadásul eddig ez vezet :S

ez tényleg ilyen bonyolult???

chroot letrehozasa nem kene bonyolult legyen - en egy jo distrotol elvarnam, hogy fel lehessen rakni chrootba is.

De ha ezt alapbol nem tamogatja, akkor fogod es szepen atmasolsz mindent egy konyvtaron belulre (/dev, /sys, /proc es hasonlok kivetelevel), kiirtod esetleg ami nemkell, chroot oda, felmountolod /dev, /sys, /proc, es megvagy. Szal kulon eszkoz nelkul sem egy nehez dolog.

Persze nem lesz szep es tiszta, minimalis, de fejleszteshez ki a fenet erdekel ugy oszinten?

Csak egy gondolat kísérlet. Ha sikerült lefordítani a két php-t, akkor elsőként be kell tölteni mind a két verziót modulként az apache indulásakor. De hogy tesz különbséget a handler, hogy melyik php-t melyik modullal interpretálja?

Üdv:
Dw.

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

najó.. csak fejlesztésre jó, gentoo specifikus, de végülis ez lett:

az ebuild-el gyártottam php binárist a /var/tmp/portage -be, majd a /usr/lib64/apache2/alternate könyvárat létrehoztam, oda linkeltem a libphp5.so-t majd átírtam az apache confot, hogy ezt tőccse be. ennyi :S

ha valaki tud értelmes megoldást, még mindig kiváncsi vagyok azért....