【问题标题】:RVM equivalent for PHP?PHP 的 RVM 等价物?
【发布时间】:2011-04-06 20:17:02
【问题描述】:

我似乎找不到快速切换 PHP 版本的方法。是否有与 php 的 ruby​​ 版本管理器等效的东西?我需要在 OS X 上在 5.3 和 5.2 之间切换。

【问题讨论】:

  • 一个严肃的后续问题 - 我只是想安装 composer.. composer 是否管理 php 版本?
  • @DevinGRhode - 不。您可以使用 composer 设置 PHP 版本的要求,但它无法管理它们。

标签: php ruby rvm homebrew rbenv


【解决方案1】:

对于 RVM 和 rbenv 的 PHP 替代品,您有 phpbrewphpenvphp-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-versionREADME.md 列出了更多alternatives,因此您可能想看看。

顺便说一句,我认为php-versionchruby 更一致,因为它试图做好一件事。

【讨论】:

  • 关于 php-fpm;是的,您最终应该为您编译的每个 PHP 版本生成一个 php-fpm 二进制文件。当您使用php-versionphpenv 切换版本时,您将得到正确的php-fpm。他们所做的只是切换环境变量,包括$PATH$MANPATH
  • 这对自动化测试很有帮助。谢谢!
  • php-version 对我不起作用。 phpenv 似乎很有帮助。谢谢!
  • 我发现 phpbrew 不提供简单的“brew install phpbrew”,所以我使用 php-version。我也跑了brew info phpbrew,什么也没有。 phpenv 的自述文件+安装文档只是没有提到任何类型的“brew install”。所以我不确定它是否真的适用于 phpenv。
  • 所以如果你正在寻找一个简单的brew install.. 看起来 php-version 确实是要走的路,尽管 phpbrew 有更多的 github watchers+stars+forks
【解决方案2】:

这是我的解决方案 (pvers)。一个完全用 bash 编写的单文件脚本。如果您正在寻找一个精简且易于安装且依赖最少的 php 版本管理器 - 试一试;)

【讨论】:

    【解决方案3】:

    有一个很棒的程序可以做到这一点,phpbrew。我积极使用它,我强烈推荐它。

    https://github.com/phpbrew/phpbrew/wiki/Cookbook

    【讨论】:

      【解决方案4】:

      如果你没有使用 php-cgi 并且将不同版本的 PHP 安装到不同的位置

      1. 找到不同版本的libphp5.so,复制到不同的位置

      2. 如果使用php5.3.11或php5.4.11

         ln -s php5.3.11 php  || ln -s php5.4.11
        
      3. 分解你的 apache httpd.conf

         LoadModule php5_module        YOUR_PHP_PATH/php/libphp5.so
        
      4. 重启apache

         sudo apachectl restart
        

      【讨论】:

        【解决方案5】:

        看看phpenv(和php-build)。如果您brew tap josegonzalez/php,甚至还有自制食谱。它实际上是rbenv 而不是rvm 的PHP 版本,但我认为它会比phpfarm 更容易设置。

        【讨论】:

          【解决方案6】:

          我认为phpfarmrvm 最接近的php 替代品,它还安装了pyrus,这就像php 世界的红宝石。

          【讨论】:

          • phpfarm 无法在我的 Mac 中编译,RVM 是一个严重的事情 phpfarm 不是。
          【解决方案7】:

          如果您正在运行 apache,我可以建议我解决此问题的方法。 将不同版本的 PHP 安装到不同的位置,并准备几个 apache php-x.y.z.conf 文件,如

          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>
          

          【讨论】:

          • 它似乎不会影响与rvm不同的命令行
          猜你喜欢
          • 1970-01-01
          • 2013-05-25
          • 2011-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-08
          相关资源
          最近更新 更多