京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

2024-11-3 19:58| 发布者: ae2942d9| 查看: 126| 评论: 0

摘要: 目次phpbrew构建和安装多个 PHP 版本phpbrew 的功能包罗要求安装设置设置查找前缀根本用法开始构建自己的 PHP变体额外的设置选项利用和切换列出已安装的 PHP扩展安装程序安装扩展 - 最简单的方式利用稳定性安装扩展
目次

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 的开发包。

安装

只需下载它:

[code]curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar chmod +x phpbrew.phar [/code]

然后,你可以将其安装到 bin 文件夹中:

[code]sudo mv phpbrew.phar /usr/local/bin/phpbrew [/code]

确保在你的 [code]$PATH[/code] 环境变量中有 [code]/usr/local/bin[/code]。

设置

初始化一个用于你的 shell 环境的 bash 脚本:

[code]phpbrew init [/code]

将以下行添加到你的 .bashrc 或 .zshrc 文件:

[code][[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc [/code]

设置查找前缀

你可以设置你首选的用于查找库的默认前缀,可用选项有 macports、homebrew、debian、ubuntu 或自界说路径:

对于 Homebrew 用户:

[code]phpbrew lookup-prefix homebrew [/code]

对于 Macports 用户:

[code]phpbrew lookup-prefix macports [/code]

根本用法

列出已知版本:

[code]$ phpbrew known 7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ... 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 ... 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.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 ... 5.3: 5.3.29, 5.3.28 ... [/code]

显示更多次要版本:

[code]phpbrew known --more [/code]

更新发布信息:

[code]phpbrew update [/code]

获取旧版本(低于 5.4)

请留意,我们不保证可以成功构建官方不支持的 PHP 版本,请不要报告有关旧版本的问题,这些问题将不会修复。

[code]phpbrew update --old [/code]

列出已知的旧版本(低于 5.4)

[code]phpbrew known --old [/code]

开始构建自己的 PHP

利用默认变体构建和安装 PHP:

[code]phpbrew install 5.4.0 +default [/code]

这里发起利用默认变体集,此中包罗最常用的变体。如果你必要举行最小安装,只需删除默认变体集。

你可以通过通报 [code]-j[/code] 或 [code]--jobs[/code] 选项启用并行编译,以下是一个示例:

[code]phpbrew install -j $(nproc) 5.4.0 +default [/code]

带有测试:

[code]phpbrew install --test 5.4.0 [/code]

带有调试信息:

[code]phpbrew -d install --test 5.4.0 [/code]

安装旧版本(低于 5.3):

[code]phpbrew install --old 5.2.13 [/code]

安装下一个(不稳定)版本:

[code]phpbrew install next as php-7.1.0 [/code]

从 GitHub 标签安装:

[code]phpbrew install github:php/php-src@PHP-7.0 as php-7.0.0 [/code]

整理构建目次:

[code]phpbrew clean php-5.4.0 [/code]

变体

PHPBrew 为你整理了设置选项,你可以简单地指定变体名称,phpbrew 将检测包罗路径和用于设置的构建选项。

PHPBrew 提供了默认变体和一些假造变体。默认变体包罗最常用的变体,而假造变体界说了一个变体集,你可以利用一个假造变体一次性启用多个变体。

要查察这些变体中包罗了什么,只需运行[code]variants[/code]子下令来列出这些变体:

[code]$ phpbrew variants Variants: all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, dba, debug, dom, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv, icu, imap, intl, ipc, ipv6, json, kerberos, mbregex, mbstring, mcrypt, mhash, mysql, openssl, pcntl, pcre, pdo, pgsql, phar, posix, readline, session, soap, sockets, sqlite, tidy, tokenizer, xml_all, xmlrpc, zip, zlib, gmp Virtual variants: dbs: sqlite, mysql, pgsql, pdo mb: mbstring, mbregex neutral: default: filter, dom, bcmath, ctype, mhash, fileinfo, pdo, posix, ipc, pcntl, bz2, zip, cli, json, mbstring, mbregex, calendar, sockets, readline, xml_all[/code]

利用变体构建 PHP 的示例:

[code]phpbrew install 5.3.10 +default phpbrew install 5.3.10 +mysql +pdo phpbrew install 5.3.10 +mysql +pdo +apxs2 phpbrew install 5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2 [/code]

要启用一个变体,只需在变体名称前加上前缀[code]+[/code],比方:

[code]+mysql [/code]

要禁用一个变体,只需在变体名称前加上前缀[code]-[/code]。

比方,如果我们盼望利用默认选项和数据库支持(mysql、sqlite、postgresql)构建 PHP,你可以简单地运行:

[code]phpbrew install 5.4.5 +default+dbs [/code]

你还可以利用额外的变体构建 PHP:

[code]phpbrew install 5.3.10 +mysql+sqlite+cgi phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2 phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2 [/code]

要构建带有 pgsql(PostgreSQL)扩展的 PHP:

[code]phpbrew install 5.4.1 +pgsql+pdo [/code]

或在 Mac OS X 上利用 postgresql 根本目次构建 pgsql 扩展:

[code]phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin [/code]

pgsql 路径是[code]pg_config[/code]的位置,你可以在[code]/opt/local/lib/postgresql91/bin[/code]找到[code]pg_config[/code]。如果要利用中性编译选项构建 PHP,你可以指定中性假造变体,这意味着 phpbrew 不会添加任何额外的编译选项,包罗[code]--disable-all[/code]。但是,一些选项(比方[code]--enable-libxml[/code])仍旧会自动添加以支持 pear 安装。你可以利用中性构建 PHP:

[code]phpbrew install 5.4.1 +neutral [/code]

有关更多具体信息,请查察 PHPBrew Cookbook[2]。

额外的设置选项

要通报额外的设置参数,可以这样做:

[code]phpbrew install 5.3.10 +mysql +sqlite -- \ --enable-ftp --apxs2=/opt/local/apache2/bin/apxs [/code]

利用和切换

利用(暂时切换版本):

[code]phpbrew use 5.4.22 [/code]

切换 PHP 版本(切换默认版本):

[code]phpbrew switch 5.4.18 [/code]

关闭:

[code]phpbrew off [/code]

如果启用了 Apache PHP 模块,请记得注释或删除这些设置。

[code]$ sudo vim /etc/httpd/conf/httpd.conf # LoadModule php5_module /usr/lib/httpd/modules/libphp5.3.21.so # LoadModule php5_module /usr/lib/httpd/modules/libphp5.3.20.so [/code]

列出已安装的 PHP

[code]phpbrew list [/code]

扩展安装程序

您还可以轻松地安装 PHP 扩展,无论是与 PHP 源代码一起提供的扩展,照旧来自 PECL。

如果在 PHP 源代码中找到扩展目次,PHPBrew 将自动切换到 PHP 源目次并安装扩展。

如果在 PHP 源代码中未找到扩展目次,PHPBrew 将从 PECL http://pecl.php.net 获取扩展包。

PHPBrew 还创建扩展设置以启用安装的扩展,因此您无需手动编写设置文件即可启用它。扩展设置目次在:

[code]~/.phpbrew/php/php-{version}/var/db [/code]

安装扩展 - 最简单的方式

在安装任何 PHP 扩展之前,应设置当前运行的 PHP 版本:

[code]phpbrew use php-5.5.6 [/code]

然后运行[code]ext install[/code]来安装扩展:

[code]phpbrew ext install apcu phpbrew ext install memcache [/code]

利用稳定性安装扩展

利用稳定性标签安装扩展:

[code]phpbrew ext install xdebug stable phpbrew ext install xdebug latest phpbrew ext install xdebug beta [/code]

利用版本名称安装扩展:

[code]phpbrew ext install xdebug 2.0.1 [/code]

展示扩展设置选项

要查察是否有一些构建扩展的设置选项,可以利用 [code]ext show[/code] 下令。请留意,[code]show[/code] 下令仅实用于内置扩展:

[code]phpbrew ext show apcu [/code]

利用自界说选项安装扩展

[code]phpbrew ext install yaml -- --with-yaml=/opt/local [/code]

从 GitHub 安装扩展

特殊前缀 [code]github:[/code] 告诉 phpbrew 从 php-memcached-dev/phpmemcached 存储库获取扩展并切换到 php7 分支:

[code]phpbrew ext install github:php-memcached-dev/php-memcached php7 -- --disable-memcached-sasl [/code]

利用特定下载工具安装扩展

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

  • [code]php_curl[/code] - 利用内置的 php curl 扩展下载文件。

  • [code]php_stream[/code] - 利用内置的 php 流包装器下载文件。

  • [code]curl[/code]

  • [code]wget[/code]

可以利用你喜欢的下载工具替换默认的下载工具:

[code]phpbrew ext install --downloader php_curl apcu [/code]

基于 curl 的 php 扩展下载工具支持 User-Agent 和代理设置,因此如果遇到一些网络问题,你可以这样做:

[code]phpbrew ext install --download php_curl --http-proxy=... --http-proxy-auth=... apcu [/code]

启用扩展

你还可以通过 PECL 安装扩展并手动启用它:

[code]pecl install mongo phpbrew ext enable mongo [/code]

[code]ext enable[/code] 下令允许你创建一个设置文件 [code]{当前 php base}/var/db/{extension name}.ini[/code] 来启用该扩展。

设置当前 PHP 版本的 php.ini

只需运行:

[code]phpbrew config [/code]

你可以将 EDITOR 环境变量指定为你喜欢的编辑器:

[code]export EDITOR=vim [/code]

然后运行:

[code]phpbrew config [/code]

升级 phpbrew

要升级 phpbrew,只需运行 self-update 下令,此下令允许你安装来自 GitHub 主分支的最新版本:

[code]phpbrew self-update [/code]

已安装的 PHP(s)

已安装的 PHP 位于 ~/.phpbrew/php,比方,PHP 5.4.20 位于:

[code]~/.phpbrew/php/5.4.20/bin/php [/code]

你应该将设置文件放在:

[code]~/.phpbrew/php/5.4.20/etc/php.ini [/code]

扩展设置文件应放在:

[code]~/.phpbrew/php/5.4.20/var/db ~/.phpbrew/php/5.4.20/var/db/xdebug.ini ~/.phpbrew/php/5.4.20/var/db/apc.ini ~/.phpbrew/php/5.4.20/var/db/memcache.ini ... etc [/code]

快速在目次之间切换的下令

切换到 PHP 构建目次:

[code]phpbrew build-dir [/code]

切换到 PHP 分发目次:

[code]phpbrew dist-dir [/code]

切换到 PHP etc 目次:

[code]phpbrew etc-dir [/code]

切换到 PHP var 目次:

[code]phpbrew var-dir [/code]

PHP FPM

phpbrew 还提供了一些有效的 FPM 管理子下令。要利用它们,请记着在构建自己的 PHP 时启用 +fpm 变体。

启动 php-fpm,只需键入:

[code]phpbrew fpm start [/code]

停止 php-fpm,输入:

[code]phpbrew fpm stop [/code]

显示 php-fpm 模块:

[code]phpbrew fpm module [/code]

测试 php-fpm 设置:

[code]phpbrew fpm test [/code]

编辑 php-fpm 设置:

[code]phpbrew fpm config [/code]

已安装的 php-fpm 位于 ~/.phpbrew/php/php-*/sbin。

对应的 php-fpm.conf 位于 ~/.phpbrew/php/php-*/etc/php-fpm.conf.default,你可以将默认设置文件复制到所需的位置。比方,

[code]cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default ~/.phpbrew/php/php-*/etc/php-fpm.conf php-fpm --php-ini {php config file} --fpm-config {fpm config file} [/code]

启用版本信息提示

要在 shell 提示中添加 PHP 版本信息,可以利用 "PHPBREW_SET_PROMPT=1" 变量。

默认环境下是 "PHPBREW_SET_PROMPT=0"(禁用)。要启用它,可以将此行添加到你的 ~/.bashrc 文件,并将此行放在 source ~/.phpbrew/bashrc 之前。

[code]export PHPBREW_SET_PROMPT=1 [/code]

要在提示中嵌入版本信息,可以利用 phpbrew_current_php_version shell 函数,该函数在 .phpbrew/bashrc 中界说。而且你可以在你的 PS1 变量中设置版本信息,比方:

[code]PS1=" \$(phpbrew_current_php_version) \$ " [/code]

已知问题

对于 PHP-5.3+ 版本,“在 OS X 上构建 intl 64 位失败” https://bugs.php.net/bug.php?id=48795

要利用 GD 扩展构建 PHP,你必要指定你的 libpng 目次和 libjpeg 目次,比方:

[code]phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2 \ -- --with-libdir=lib/x86_64-linux-gnu \ --with-gd=shared \ --enable-gd-natf \ --with-jpeg-dir=/usr \ --with-png-dir=/usr [/code]

参考资料

[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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 22:35 , Processed in 0.043413 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部