翼度科技»论坛 编程开发 PHP 查看内容

一文精通php多版本管理工具phpbrew使用教程

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
phpbrew构建和安装多个 PHP 版本

phpbrew 是一个工具,可以在 $HOME 目录中构建和安装多个 PHP 版本。

phpbrew 的功能包括


  • 将配置选项简化为变体,不再担心路径问题。
  • 使用不同的变体构建 PHP,如 PDO、mysql、sqlite、debug 等。
  • 编译 Apache PHP 模块,并按不同版本分开。
  • 在个人目录中构建和安装 PHP,无需 root 权限。
  • 轻松切换版本,与 bash/zsh shell 集成。
  • 自动功能检测。
  • 轻松在当前环境中安装和启用 PHP 扩展。
  • 在系统范围内安装多个 PHP。
  • 针对 HomeBrew 和 MacPorts 的路径检测优化。


要求

请查看 Requirement[1] 在开始之前。你需要安装一些用于构建 PHP 的开发包。

安装

只需下载它:
  1. curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
  2. chmod +x phpbrew.phar
复制代码
然后,你可以将其安装到 bin 文件夹中:
  1. sudo mv phpbrew.phar /usr/local/bin/phpbrew
复制代码
确保在你的
  1. $PATH
复制代码
环境变量中有
  1. /usr/local/bin
复制代码


设置

初始化一个用于你的 shell 环境的 bash 脚本:
  1. phpbrew init
复制代码
将以下行添加到你的 .bashrc 或 .zshrc 文件:
  1. [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
复制代码
设置查找前缀

你可以设置你首选的用于查找库的默认前缀,可用选项有 macports、homebrew、debian、ubuntu 或自定义路径:
对于 Homebrew 用户:
  1. phpbrew lookup-prefix homebrew
复制代码
对于 Macports 用户:
  1. phpbrew lookup-prefix macports
复制代码
基本用法

列出已知版本:
  1. $ phpbrew known
  2. 7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ...
  3. 5.6: 5.6.18, 5.6.17, 5.6.16, 5.6.15, 5.6.14, 5.6.13, 5.6.12, 5.6.11 ...
  4. 5.5: 5.5.32, 5.5.31, 5.5.30, 5.5.29, 5.5.28, 5.5.27, 5.5.26, 5.5.25 ...
  5. 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 ...
  6. 5.3: 5.3.29, 5.3.28 ...
复制代码
显示更多次要版本:
  1. phpbrew known --more
复制代码
更新发布信息:
  1. phpbrew update
复制代码
获取旧版本(低于 5.4)
请注意,我们不保证可以成功构建官方不支持的 PHP 版本,请不要报告有关旧版本的问题,这些问题将不会修复。
  1. phpbrew update --old
复制代码
列出已知的旧版本(低于 5.4)
  1. phpbrew known --old
复制代码
开始构建自己的 PHP

使用默认变体构建和安装 PHP:
  1. phpbrew install 5.4.0 +default
复制代码
这里建议使用默认变体集,其中包括最常用的变体。如果你需要进行最小安装,只需删除默认变体集。
你可以通过传递
  1. -j
复制代码
  1. --jobs
复制代码
选项启用并行编译,以下是一个示例:
  1. phpbrew install -j $(nproc) 5.4.0 +default
复制代码
带有测试:
  1. phpbrew install --test 5.4.0
复制代码
带有调试信息:
  1. phpbrew -d install --test 5.4.0
复制代码
安装旧版本(低于 5.3):
  1. phpbrew install --old 5.2.13
复制代码
安装下一个(不稳定)版本:
  1. phpbrew install next as php-7.1.0
复制代码
从 GitHub 标签安装:
  1. phpbrew install github:php/php-src@PHP-7.0 as php-7.0.0
复制代码
清理构建目录:
  1. phpbrew clean php-5.4.0
复制代码
变体

PHPBrew 为你整理了配置选项,你可以简单地指定变体名称,phpbrew 将检测包含路径和用于配置的构建选项。
PHPBrew 提供了默认变体和一些虚拟变体。默认变体包括最常用的变体,而虚拟变体定义了一个变体集,你可以使用一个虚拟变体一次性启用多个变体。
要查看这些变体中包含了什么,只需运行
  1. variants
复制代码
子命令来列出这些变体:
  1. $ phpbrew variants
  2. Variants:
  3.   all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, dba, debug, dom, embed,
  4.   exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv, icu,
  5.   imap, intl, ipc, ipv6, json, kerberos, mbregex, mbstring, mcrypt, mhash,
  6.   mysql, openssl, pcntl, pcre, pdo, pgsql, phar, posix, readline, session,
  7.   soap, sockets, sqlite, tidy, tokenizer, xml_all, xmlrpc, zip, zlib, gmp
  8. Virtual variants:
  9.   dbs:      sqlite, mysql, pgsql, pdo
  10.   mb:       mbstring, mbregex
  11.   neutral:
  12.   default:  filter, dom, bcmath, ctype, mhash, fileinfo, pdo, posix, ipc,
  13.             pcntl, bz2, zip, cli, json, mbstring, mbregex, calendar, sockets, readline,
  14.             xml_all
复制代码
使用变体构建 PHP 的示例:
  1. phpbrew install 5.3.10 +default
  2. phpbrew install 5.3.10 +mysql +pdo
  3. phpbrew install 5.3.10 +mysql +pdo +apxs2
  4. phpbrew install 5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2
复制代码
要启用一个变体,只需在变体名称前加上前缀
  1. +
复制代码
,例如:
  1. +mysql
复制代码
要禁用一个变体,只需在变体名称前加上前缀
  1. -
复制代码

例如,如果我们希望使用默认选项和数据库支持(mysql、sqlite、postgresql)构建 PHP,你可以简单地运行:
  1. phpbrew install 5.4.5 +default+dbs
复制代码
你还可以使用额外的变体构建 PHP:
  1. phpbrew install 5.3.10 +mysql+sqlite+cgi
  2. phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2
  3. phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2
复制代码
要构建带有 pgsql(PostgreSQL)扩展的 PHP:
  1. phpbrew install 5.4.1 +pgsql+pdo
复制代码
或在 Mac OS X 上使用 postgresql 基本目录构建 pgsql 扩展:
  1. phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin
复制代码
pgsql 路径是
  1. pg_config
复制代码
的位置,你可以在
  1. /opt/local/lib/postgresql91/bin
复制代码
找到
  1. pg_config
复制代码
。如果要使用中性编译选项构建 PHP,你可以指定中性虚拟变体,这意味着 phpbrew 不会添加任何额外的编译选项,包括
  1. --disable-all
复制代码
。但是,一些选项(例如
  1. --enable-libxml
复制代码
)仍然会自动添加以支持 pear 安装。你可以使用中性构建 PHP:
  1. phpbrew install 5.4.1 +neutral
复制代码
有关更多详细信息,请查看 PHPBrew Cookbook[2]。

额外的配置选项

要传递额外的配置参数,可以这样做:
  1. phpbrew install 5.3.10 +mysql +sqlite -- \
  2.     --enable-ftp --apxs2=/opt/local/apache2/bin/apxs
复制代码
使用和切换

使用(临时切换版本):
  1. phpbrew use 5.4.22
复制代码
切换 PHP 版本(切换默认版本):
  1. phpbrew switch 5.4.18
复制代码
关闭:
  1. phpbrew off
复制代码
如果启用了 Apache PHP 模块,请记得注释或删除这些设置。
  1. $ sudo vim /etc/httpd/conf/httpd.conf
  2. # LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.21.so
  3. # LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.20.so
复制代码
列出已安装的 PHP
  1. phpbrew list
复制代码
扩展安装程序

您还可以轻松地安装 PHP 扩展,无论是与 PHP 源代码一起提供的扩展,还是来自 PECL。
如果在 PHP 源代码中找到扩展目录,PHPBrew 将自动切换到 PHP 源目录并安装扩展。
如果在 PHP 源代码中未找到扩展目录,PHPBrew 将从 PECL http://pecl.php.net 获取扩展包。
PHPBrew 还创建扩展配置以启用安装的扩展,因此您无需手动编写配置文件即可启用它。扩展配置目录在:
  1. ~/.phpbrew/php/php-{version}/var/db
复制代码
安装扩展 - 最简单的方式

在安装任何 PHP 扩展之前,应设置当前运行的 PHP 版本:
  1. phpbrew use php-5.5.6
复制代码
然后运行
  1. ext install
复制代码
来安装扩展:
  1. phpbrew ext install apcu
  2. phpbrew ext install memcache
复制代码
使用稳定性安装扩展

使用稳定性标签安装扩展:
  1. phpbrew ext install xdebug stable
  2. phpbrew ext install xdebug latest
  3. phpbrew ext install xdebug beta
复制代码
使用版本名称安装扩展:
  1. phpbrew ext install xdebug 2.0.1
复制代码
展示扩展配置选项

要查看是否有一些构建扩展的配置选项,可以使用
  1. ext show
复制代码
命令。请注意,
  1. show
复制代码
命令仅适用于内置扩展:
  1. phpbrew ext show apcu
复制代码
使用自定义选项安装扩展
  1. phpbrew ext install yaml -- --with-yaml=/opt/local
复制代码
从 GitHub 安装扩展

特殊前缀
  1. github:
复制代码
告诉 phpbrew 从 php-memcached-dev/phpmemcached 存储库获取扩展并切换到 php7 分支:
  1. phpbrew ext install github:php-memcached-dev/php-memcached php7 -- --disable-memcached-sasl
复制代码
使用特定下载工具安装扩展

目前,phpbrew 支持 4 种不同的下载工具实现:

    1. php_curl
    复制代码
    - 使用内置的 php curl 扩展下载文件。
    1. php_stream
    复制代码
    - 使用内置的 php 流包装器下载文件。
    1. curl
    复制代码
    1. wget
    复制代码
可以使用你喜欢的下载工具替换默认的下载工具:
  1. phpbrew ext install --downloader php_curl apcu
复制代码
基于 curl 的 php 扩展下载工具支持 User-Agent 和代理设置,因此如果遇到一些网络问题,你可以这样做:
  1. phpbrew ext install --download php_curl --http-proxy=... --http-proxy-auth=... apcu
复制代码
启用扩展

你还可以通过 PECL 安装扩展并手动启用它:
  1. pecl install mongo
  2. phpbrew ext enable mongo
复制代码
  1. ext enable
复制代码
命令允许你创建一个配置文件
  1. {当前 php base}/var/db/{extension name}.ini
复制代码
来启用该扩展。

配置当前 PHP 版本的 php.ini

只需运行:
  1. phpbrew config
复制代码
你可以将 EDITOR 环境变量指定为你喜欢的编辑器:
  1. export EDITOR=vim
复制代码
然后运行:
  1. phpbrew config
复制代码
升级 phpbrew

要升级 phpbrew,只需运行 self-update 命令,此命令允许你安装来自 GitHub 主分支的最新版本:
  1. phpbrew self-update
复制代码
已安装的 PHP(s)

已安装的 PHP 位于 ~/.phpbrew/php,例如,PHP 5.4.20 位于:
  1. ~/.phpbrew/php/5.4.20/bin/php
复制代码
你应该将配置文件放在:
  1. ~/.phpbrew/php/5.4.20/etc/php.ini
复制代码
扩展配置文件应放在:
  1. ~/.phpbrew/php/5.4.20/var/db
  2. ~/.phpbrew/php/5.4.20/var/db/xdebug.ini
  3. ~/.phpbrew/php/5.4.20/var/db/apc.ini
  4. ~/.phpbrew/php/5.4.20/var/db/memcache.ini
  5. ... etc
复制代码
快速在目录之间切换的命令

切换到 PHP 构建目录:
  1. phpbrew build-dir
复制代码
切换到 PHP 分发目录:
  1. phpbrew dist-dir
复制代码
切换到 PHP etc 目录:
  1. phpbrew etc-dir
复制代码
切换到 PHP var 目录:
  1. phpbrew var-dir
复制代码
PHP FPM

phpbrew 还提供了一些有用的 FPM 管理子命令。要使用它们,请记住在构建自己的 PHP 时启用 +fpm 变体。
启动 php-fpm,只需键入:
  1. phpbrew fpm start
复制代码
停止 php-fpm,输入:
  1. phpbrew fpm stop
复制代码
显示 php-fpm 模块:
  1. phpbrew fpm module
复制代码
测试 php-fpm 配置:
  1. phpbrew fpm test
复制代码
编辑 php-fpm 配置:
  1. phpbrew fpm config
复制代码
已安装的 php-fpm 位于 ~/.phpbrew/php/php-*/sbin。
对应的 php-fpm.conf 位于 ~/.phpbrew/php/php-*/etc/php-fpm.conf.default,你可以将默认配置文件复制到所需的位置。例如,
  1. cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default
  2.     ~/.phpbrew/php/php-*/etc/php-fpm.conf

  3. php-fpm --php-ini {php config file} --fpm-config {fpm config file}
复制代码
启用版本信息提示

要在 shell 提示中添加 PHP 版本信息,可以使用 "HPBREW_SET_PROMPT=1" 变量。
默认情况下是 "HPBREW_SET_PROMPT=0"(禁用)。要启用它,可以将此行添加到你的 ~/.bashrc 文件,并将此行放在 source ~/.phpbrew/bashrc 之前。
  1. export PHPBREW_SET_PROMPT=1
复制代码
要在提示中嵌入版本信息,可以使用 phpbrew_current_php_version shell 函数,该函数在 .phpbrew/bashrc 中定义。并且你可以在你的 PS1 变量中设置版本信息,例如:
  1. PS1=" \$(phpbrew_current_php_version) \$ "
复制代码
已知问题

对于 PHP-5.3+ 版本,“在 OS X 上构建 intl 64 位失败” https://bugs.php.net/bug.php?id=48795
要使用 GD 扩展构建 PHP,你需要指定你的 libpng 目录和 libjpeg 目录,例如:
  1. phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2 \
  2.   -- --with-libdir=lib/x86_64-linux-gnu \
  3.   --with-gd=shared \
  4.   --enable-gd-natf \
  5.   --with-jpeg-dir=/usr \
  6.   --with-png-dir=/usr
复制代码
参考资料
[1]Requirement: https://github.com/phpbrew/phpbrew/wiki/Requirement
[2]PHPBrew Cookbook: https://github.com/phpbrew/phpbrew/wiki
以上就是一文精通php多版本管理工具phpbrew使用教程的详细内容,更多关于php多版本管理工具phpbrew的资料请关注脚本之家其它相关文章!

来源:https://www.jb51.net/program/313539oei.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具