2010-09-01 17 views
46

Ich kann nicht scheinen, einen Weg zu finden, um Versionen von PHP schnell zu wechseln. Gibt es etwas, das Ruby Version Manager für PHP ähnlich ist? Ich muss unter OS X zwischen 5.3 und 5.2 wechseln.RVM entspricht für PHP?

Antwort

0

Wenn Sie Apache laufen, kann ich vorschlagen, wie ich das gelöst habe. installieren verschiedene Versionen von PHP an verschiedenen Standorten und bereiten einige Apache-PHP-xyzconf Dateien wie

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> 

und so weiter, so dass Sie schnell den Namen enthalten Conf-Datei ändern und Server neu starten. Oder wie ich, machen mehr virtuellen Hosts die gleiche Dokument Wurzel, aber mit verschiedenen Versionen von PHP enthalten:

<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

Es scheint nicht zu beeinflussen Befehlszeile im Unterschied zu rvm – Mailo

9

Ich denke, phpfarm ist sehr nah php Alternative rvm es auch pyrus installiert wird, das ist wie Ruby Edelsteine ​​für php Welt.

+2

phpfarm kompiliert nicht in meinem Mac, RVM ist Eine ernste Sache ist phpfarm nicht. – rtacconi

1

Werfen Sie einen Blick auf phpenv (mit php-build). Es gibt sogar ein Homebrew-Rezept, wenn Sie brew tap josegonzalez/php. Es ist eigentlich eine PHP-Version von rbenv nicht rvm, aber ich denke, es wird einfacher sein, als phpfarm einzurichten.

30

Für PHP-Alternativen zu RVM und rbenv haben Sie phpbrew, phpenv und php-version. Bitte sei dir bewusst, dass ich der Autor der PHP-Version bin, also bevorzuge ich es natürlich, wie ich es geschrieben habe, um mein eigenes Juckreiz zu kratzen (ich wollte etwas Minimales mit Befehlsvervollständigung); phpenv ist aber auch ziemlich gut. Du würdest es gut machen, beides zu benutzen.

Unter OS X können Sie einen PHP-Versionsmanager mit Homebrew installieren.

zuerst die PHP Formeln für Homebrew hinzufügen:

% brew tap homebrew/homebrew-php

Dann die Formeln aus homebrew-php installiert verwenden, können Sie installieren entweder mit:

% brew install php-version 

oder

% brew install phpenv 

Die php-versionREADME.md listet ein paar mehr alternatives auf, so dass Sie vielleicht einen Blick darauf werfen möchten.

BTW, würde ich php-version mehr mit chruby ausgerichtet sein, in dem es versucht, eine Sache gut zu machen.

+0

Wird einer von diesen mit php-fpm arbeiten? – CMCDragonkai

+0

In Bezug auf php-fpm; Ja, Sie sollten für jede PHP-Version, die Sie kompilieren, eine php-fpm-Binärdatei erhalten. Wenn Sie 'php-version' oder' phpenv' verwenden, um die Versionen zu wechseln, erhalten Sie das korrekte 'php-fpm'. Alles, was sie tun, ist, die Umgebungsvariablen zu wechseln, einschließlich '$ PATH' und' $ MANPATH'. –

+1

Dies ist sehr hilfreich für automatisierte Tests. Vielen Dank! – sstur

2

Wenn Sie nicht php-cgi verwenden und verschiedene Versionen von PHP installieren zu verschiedenen Orten

  1. Finden andere Version libphp5.so, und kopieren Sie in den anderen Ort

  2. Wenn Verwendung php5. 3.11 oder php5.4.11

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

    LoadModule php5_module  YOUR_PHP_PATH/php/libphp5.so 
    
  4. Neustart Apache

    sudo apachectl restart 
    
0

Hier ist meine Lösung (pvers). Ein One-File-Skript vollständig in bash geschrieben. Wenn Sie nach einem Lite und einfach zu installieren php Versionsmanager mit minimalen Abhängigkeiten suchen - versuchen Sie es;)