我似乎找不到快速切换 PHP 版本的方法。是否有与 php 的 ruby 版本管理器等效的东西?我需要在 OS X 上在 5.3 和 5.2 之间切换。
7 回答
对于 RVM 和rbenv的 PHP 替代品,您有phpbrew、phpenv和php-version。请注意,我是 php-version 的作者,所以我当然更喜欢它,因为我写它是为了解决我自己的痒(我想要一些最小的命令完成);然而,phpenv 也相当不错。你会很好地使用任何一个。
在 OS X 上,您可以使用 Homebrew 安装 PHP 版本管理器。
首先,为 homebrew 添加 PHP 公式:
% brew tap homebrew/homebrew-php
然后,使用从homebrew-php安装的公式,您可以安装:
% brew install php-version
或者
% brew install phpenv
php-version README.md列出了更多替代方案,因此您可能想看看。
顺便说一句,我会考虑php-version
与chruby更一致,因为它试图做好一件事。
我认为phpfarm是最接近rvm的 php 替代品,它还安装了pyrus,这就像 php 世界的 ruby gems。
如果您不使用 php-cgi 并将不同版本的 PHP 安装到不同的位置
找到不同版本的libphp5.so,复制到不同的位置
如果使用 php5.3.11 或 php5.4.11
ln -s php5.3.11 php || ln -s php5.4.11
分解你的 apache httpd.conf
LoadModule php5_module YOUR_PHP_PATH/php/libphp5.so
重启阿帕奇
sudo apachectl restart
有一个很棒的程序可以做到这一点,phpbrew。我积极使用它,我强烈推荐它。
如果您正在运行 apache,我可以建议我解决此问题的方法。将不同版本的 PHP 安装到不同的位置,并准备一些 apache php-xyzconf 文件,例如
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>
等等,所以你可以快速更改包含的 .conf 文件的名称并重新启动服务器。或者,像我一样,让几个虚拟主机具有相同的文档根目录,但包含不同版本的 PHP:
<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>
这是我的解决方案(pvers)。一个完全用 bash 编写的单文件脚本。如果您正在寻找一个精简且易于安装且依赖最少的 php 版本管理器 - 试一试;)