PHPBREW 的 介绍

官方地址: http://phpbrew.github.io/phpbrew/

有 rbenv 和 pyenv ,当然也存在 phpenv,
他们有什么用呢,其实就是可以快速的在多个语言的版本之间来回切换,方便测试。当然,这样的事 Travis-ci 也可以做到,
并且不需要做多余的事(其实还是有多余的事的需要项目根目录下有个 .travis.yml 文件,而且 travis-ci 严重依赖 Github),
但怎么取舍就看个人了,不过我是两个都用的,就算我不需要使用多个 PHP 版本,
使用 PHPBrew 安装 PHP 也挺方便的(PS:我使用 pyenv 和 rbenv 其实也就这个理由),
因为系统所带的 PHP 的版本并不一定总是你所需要的那个,而 PHPBrew 却可以安装几乎所有的 PHP 版本。

其他相似工具

大多数语言编程的时候,都会碰到在不同版本下的代码兼容性问题,测试代码兼容性,或者调试老旧代码,需要不同的语言版本环境.
ruby有了rbenv,rvm,nodejs也有nvm,当然php也应该有个类似的 phpenv , php-version , phpbrew. 以 Github上 star数来选择工具,那么必然是 phpbrew , 别问为什么,大家觉得好才是真的好.

安装 (Mac)

$ brew install phpbrew
==> Installing homebrew/php/phpbrew
==> Downloading https://homebrew.bintray.com/bottles-php/phpbrew-1.22.5_1.sierra
######################################################################## 100.0%
==> Pouring phpbrew-1.22.5_1.sierra.bottle.tar.gz
==> Caveats
phpbrew is now installed!

To start using it, please run
  'phpbrew init'

You can change phpbrew home with PHPBREW_ROOT and PHPBREW_HOME env vars
==> Summary
🍺  /usr/local/Cellar/phpbrew/1.22.5_1: 5 files, 2MB

初始化

$ phpbrew init
Using root: /Users/mirchen/.phpbrew
Initialization successfully finished!
<=====================================================>
Phpbrew environment is initialized, required directories are created under

    /Users/mirchen/.phpbrew

Paste the following line(s) to the end of your ~/.bashrc and start a
new shell, phpbrew should be up and fully functional from there:

    source /Users/mirchen/.phpbrew/bashrc

To enable PHP version info in your shell prompt, please set PHPBREW_SET_PROMPT=1
in your '~/.bashrc' before you source '~/.phpbrew/bashrc'

    export PHPBREW_SET_PROMPT=1

To enable .phpbrewrc file searching, please export the following variable:

    export PHPBREW_RC_ENABLE=1

For further instructions, simply run 'phpbrew' to see the help message.

Enjoy phpbrew at $HOME!!

<=====================================================>

按照命令提醒添加环境变量

由于我用的是 zsh 所以直接加入到 zsh 文件内

echo 'source /Users/mirchen/.phpbrew/bashrc' > .zshrc
-----
#  加载 zsh
source ~/.zshrc
-------
# 查看环境变量
PHPBREW_HOME=/Users/mirchen/.phpbrew
PHPBREW_BIN=/Users/mirchen/.phpbrew/bin
PHPBREW_ROOT=/Users/mirchen/.phpbrew
PHPBREW_VERSION_REGEX=^([[:digit:]]+\.){2}[[:digit:]]+$

查看已知可安装的 php 版本

$ phpbrew known
===> Fetching release list...
Downloading https://secure.php.net/releases/index.php?json&version=7&max=100 via curl extension
Downloading https://secure.php.net/releases/index.php?json&version=5&max=100 via curl extension
7.2: 7.2.1, 7.2.0 ...
7.1: 7.1.13, 7.1.12, 7.1.11, 7.1.10, 7.1.9, 7.1.8, 7.1.7, 7.1.6 ...
7.0: 7.0.27, 7.0.26, 7.0.25, 7.0.24, 7.0.23, 7.0.22, 7.0.21, 7.0.20 ...
5.6: 5.6.33, 5.6.32, 5.6.31, 5.6.30, 5.6.29, 5.6.28, 5.6.27, 5.6.26 ...
5.5: 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31, 5.5.30 ...
5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...
--------------------
# 更新已知可安装版本  
$ phpbrew known --update
# 更新旧版本 < 5.4
$ phpbrew known --old
# 更新发布版本信息:
$ phpbrew update
===> Fetching release list...
Downloading https://secure.php.net/releases/index.php?json&version=7&max=100 via curl extension
Downloading https://secure.php.net/releases/index.php?json&version=5&max=100 via curl extension
7.2: 2 releases
7.1: 14 releases
7.0: 28 releases
5.6: 34 releases
5.5: 38 releases
5.4: 28 releases
===> Done

安装php版本

这里我们选择最新版的php7.2.1版本进行安装演示:

  1. 执行安装命令(开发时在ubuntu 上)
  # 根据提醒安装相关依赖
  apt-get install libxml2-dev(缺少libxml) libreadline-dev (缺少readline.h)  libxslt1-dev(libxslt)
  # 安装7.2.1
  phpbrew install 7.2.1 +default # 默认扩展,提供常用扩展

  =================安装阶段==================
  # 中间环境问题导致无法贴出来安装过程的代码, 反正就是拉代码 编译..
  1. 附加测试安装
$ phpbrew install --test 5.6.1
  1. 开启debug信息安装
$ phpbrew -d install --test 5.4.0
  1. 其他低版本安装
phpbrew install --old 5.2.13 # < 5.3

其他命令

  1. 临时切换
phpbrew use 5.4.22
# 与switch一致,只不过是临时性的
  1. 永久切换
$ phpbrew switch php-7.2.1
$ php -v
PHP 7.2.1 (cli) (built: Jan 15 2018 10:58:19) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
$ phpbrew switch php-7.2.0
$ php -v # 查看新版本
PHP 7.2.0 (cli) (built: Jan 15 2018 14:53:48) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
  1. 关闭phpbrew提供的环境
$ phpbrew off
$ php -v
# 环境变回系统
PHP 7.2.1-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jan  5 2018 13:54:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.2.1-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies
  1. 查看安装过的版本列表
$ phpbrew list
*php-7.2.1 # 当前使用版本前面会有个 *
php-7.2.0
  1. 清除构建目录 (非删除版本)
$ phpbrew clean php-7.2.0
Running make clean: /usr/bin/make -C '/root/.phpbrew/build/php-7.2.0' --quiet 'clean'
Distribution is cleaned up. Woof!

扩展安装 和 详细用法参考官方wiki

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