Talvez você queira isso, mas como alguém que programa habilmente em PHP & De forma adequada em Ruby, posso dizer que o principal motivo pelo qual o Ruby tem sistemas de controle de versão é apenas a quantidade total de coisas que podem dar errado, falhar ou quebrar ao mudar de versão. PHP é muito mais indulgente & compreensão de métodos obsoletos & funções.
Por exemplo, se você der um salto do PHP 5.1.6 para o PHP 5.4, há relativamente pouco que irá quebrar ao pular versões que não podem ser corrigidas rapidamente. Isso significa que, se algo não estiver claro nos erros do PHP, deduzirá o que deu errado. E o PHP é muito mais compatível do que o Ruby.
Dito isso, você sempre pode instalar várias versões dos módulos PHP manualmente & em seguida, basta ajustar sua configuração do Apache, reiniciar o Apache & ai está. Por exemplo, eu tinha um cliente que tinha um código legado que funcionaria apenas com o PHP 5.1.6. Então, eu compilei a partir do código-fonte no Ubuntu 11.04 (e, em seguida, 11.10, bem como 12.04), mas certifiquei-me de nomear o módulo assim:
/usr/lib/apache2/modules/libphp516.so
Normalmente, o módulo PHP instalado é chamado assim:
/usr/lib/apache2/modules/libphp5.so
Então, nomear libphp516.so
para que ele inclua o número da versão também me permite ter várias versões do PHP.
Feito isso, tudo o que preciso fazer para mudar as versões é editar o php5.load
localizado aqui:
sudo nano /etc/apache2/mods-available/php5.load
Por isso, continha linhas como esta:
# LoadModule php5_module /usr/lib/apache2/modules/libphp.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516.so
A primeira linha comentada refere-se à versão já instalada do PHP que é instalada via apt-get
/ aptitude
. A linha abaixo informa ao Apache para carregar o módulo libphp516.so
. Reinicie o Apache & agora o PHP 5.1.6 está funcionando.
Mas eu conheço o sistema que gerencia isso de uma maneira mais integrada e de alto nível. Como eu disse no início, eu não conheço muitas pessoas - além de pessoas como eu que são forçadas a fazê-lo - que precisariam de uma ferramenta desse tipo porque o PHP é muito mais escalável & respeitável quando se trata de código legado do que Ruby é. Duas filosofias de codificação diferentes em jogo.