2010-09-01 12 views
46

Je n'arrive pas à trouver un moyen de changer rapidement de version de PHP. Y a-t-il quelque chose d'équivalent au gestionnaire de version de ruby ​​pour php? J'ai besoin de basculer entre 5.3 et 5.2 sur OS X.RVM équivalent pour PHP?

Répondre

0

Si vous utilisez apache, je peux vous suggérer la façon dont j'ai résolu cela. installer différentes versions de PHP à différents endroits et préparer quelques fichiers php-xyzconf apache comme

ScriptAlias /php/ "path/to/php-5.2.10/" 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .phtml 
Action application/x-httpd-php "/php/php-cgi" 
<Directory "/php/"> 
    Order allow,deny 
    Allow from all 
</Directory> 

,

ScriptAlias /php/ "path/to/php-5.3.0/" 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php .phtml 
Action application/x-httpd-php "/php/php-cgi" 
<Directory "/php/"> 
    Order allow,deny 
    Allow from all 
</Directory> 

et ainsi de suite, de sorte que vous pouvez changer rapidement le nom de fichier inclus .conf et redémarrez le serveur. Ou, comme je l'ai fait, faire plusieurs hôtes virtuels ayant le même document racine, mais avec différentes versions de PHP inclus:

<VirtualHost *:80> 
    DocumentRoot "C:/www/localhost" 
    ServerName local.php-5.2.10 

    Include conf/php-5.2.10.conf 

    <Directory "C:/www/localhost"> 
     Allow from All 
    </Directory> 
</VirtualHost> 
+0

Il ne semble pas affecter la ligne de commande en différence avec rvm – Mailo

9

Je pense que phpfarm est le plus proche php alternative de rvm, il installe également pyrus qui est comme le rubis gemmes pour le monde php.

+2

phpfarm ne compile pas dans mon Mac, RVM est une chose sérieuse phpfarm n'est pas. – rtacconi

1

Jetez un oeil à phpenv (avec php-build). Il y a même une recette homebrew si vous brew tap josegonzalez/php. C'est en fait une version PHP de rbenv pas rvm mais je pense que ça va être le plus simple à mettre en place que phpfarm.

30

Pour les alternatives PHP à RVM et rbenv, vous avez phpbrew, phpenv et php-version. S'il vous plaît soyez conscient que je suis l'auteur de php-version donc bien sûr je le préfère comme je l'ai écrit pour gratter ma propre démangeaison (je voulais quelque chose de minimal avec la commande complète); Cependant, phpenv est assez bon aussi. Vous feriez bien d'utiliser non plus. Sur OS X, vous pouvez installer un gestionnaire de version PHP en utilisant Homebrew.

D'abord, ajoutez les formules PHP pour homebrew:

% brew tap homebrew/homebrew-php

Puis, en utilisant les formules installées à partir homebrew-php vous pouvez installer avec:

% brew install php-version 

ou

% brew install phpenv 

Le php-versionREADME.md énumère quelques autres alternatives de sorte que vous pourriez vouloir jeter un coup d'oeil.

BTW, je considérerais php-version d'être plus aligné avec chruby en ce qu'il essaie de faire une chose bien.

+0

Est-ce que l'un d'entre eux fonctionnera avec php-fpm? – CMCDragonkai

+0

En ce qui concerne php-fpm; oui, vous devriez vous retrouver avec un binaire php-fpm pour chaque version de PHP que vous compilez. Lorsque vous utilisez 'php-version' ou' phpenv' pour changer de version, vous obtiendrez le bon 'php-fpm'. Tout ce qu'ils font est de changer les variables d'environnement, y compris '$ PATH' et' $ MANPATH'. –

+1

Ceci est très utile pour les tests automatisés. Merci! – sstur

2

Si vous n'êtes pas utiliser php-cgi et installer différentes versions de PHP à des endroits différents

  1. Trouver différentes libphp5.so version, et copiez-les dans l'autre endroit

  2. Si l'utilisation php5. 3.11 ou php5.4.11

    ln -s php5.3.11 php || ln -s php5.4.11 
    
  3. Depoly votre httpd.conf

    LoadModule php5_module  YOUR_PHP_PATH/php/libphp5.so 
    
  4. restart apache

    sudo apachectl restart 
    
0

Voici ma solution (pvers). Un script à un fichier écrit complètement dans bash. Si vous cherchez un gestionnaire de version php lite et facile à installer avec un minimum de dépendances - essayez-le;)