phpbrew 是一个构建、安装多版本 PHP 到用户根目录的工具。
phpbrew 能做什么?
在开始之前,请先查看:Requirement(英文)。 确保已安装依赖包的开发版本用于编译 PHP。
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew # Move phpbrew to somewhere can be found by your $PATH sudo mv phpbrew /usr/local/bin/phpbrew
急不可待?请直接查看:Quick Start(英文)。
接下来,我们假定你有充足的时间来学习,这将会是一个循序渐进的教程——教你如何配置 phpbrew。
首先,初始化 Bash Shell 脚本:
phpbrew init
接着在 .bashrc
或 .zshrc
文件增加如下行:
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
对于 Fish shell 用户,在 ~/.config/fish/config.fish
文件增加如下行:
source ~/.phpbrew/phpbrew.fish
若需要在系统全局(非用户目录)使用 phpbrew,请设置共享的 phpbrew 根目录,例如:
mkdir -p /opt/phpbrew phpbrew init --root=/opt/phpbrew
其次,请设置用于查找库文件的默认前缀,可选值有 macports
,homebrew
,debian
,ubuntu
或是自定义路径。
对于 Homebrew 用户:
phpbrew lookup-prefix homebrew
对于 Macports 用户:
phpbrew lookup-prefix macports
列出已知 PHP 版本:
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 ...
列出更多次要版本:
$ phpbrew known --more
刷新 PHP 发布信息:
$ phpbrew update
刷新旧版本(低于5.4):
请注意:我们不保证能够正确编译 PHP 官方停止维护的版本,请不要提交关于编译旧版本的 Issus,此类 Issue 将不会修复。
$ phpbrew update --old
列出已知的旧版本(低于5.4):
$ phpbrew known --old
使用默认参数编译安装 PHP 非常简单:
$ phpbrew install 5.4.0 +default
这里我们推荐使用已包含绝大多数公共参数的 default
(默认)参数集合。如果你需要「最小安装」,删掉default
执行即可。
你可以使用-j
或--jobs
选项启用并行编译,例如:
$ phpbrew install -j $(nproc) 5.4.0 +default
编译完成后执行测试用例:
$ phpbrew install --test 5.4.0
测试环境,且包含调试信息:
$ phpbrew -d install --test 5.4.0
安装旧版本(低于5.3):
$ phpbrew install --old 5.2.13
安装给定主要版本的最新次要版本:
$ phpbrew install 5.6
安装预览版本:
$ phpbrew install 7.2.0alpha1 $ phpbrew install 7.2.0beta2 $ phpbrew install 7.2.0RC3
通过指定的 GitHub tag 或 branch 安装:
$ phpbrew install github:php/php-src@PHP-7.2 as php-7.2.0-dev
安装下一个(非稳定)版本:
$ phpbrew install next as php-7.3.0-dev
$ phpbrew clean php-5.4.0
PHPBrew 已经将配置选项整理、合并为「Variants」,你只需简单地指定某个 Variant 即可,phpbrew 会自动在配置过程中检测引用目录、编译选项等。
PHPBrew 提供默认的 Variant ,以及一些虚拟 Variants。 「Default Variant」包含绝大多数公共 Variants; 「Virtual Variants」可包含多个 Variants,使用一个虚拟 Variant 即可一次性启用多个 Variants。
只需执行variants
子命令,即可列出它们:
$ phpbrew variants Variants: all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom, dtrace, editline, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, gmp, hash, iconv, icu, imap, inifile, inline, intl, ipc, ipv6, json, kerberos, libgcc, mbregex, mbstring, mcrypt, mhash, mysql, opcache, openssl, pcntl, pcre, pdo, pgsql, phar, phpdbg, posix, readline, session, soap, sockets, sqlite, static, tidy, tokenizer, wddx, xml, xml_all, xmlrpc, zip, zlib, zts Virtual variants: dbs: sqlite, mysql, pgsql, pdo mb: mbstring, mbregex neutral: small: bz2, cli, dom, filter, ipc, json, mbregex, mbstring, pcre, phar, posix, readline, xml, curl, openssl default: bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc, json, mbregex, mbstring, mhash, mcrypt, pcntl, pcre, pdo, phar, posix, readline, sockets, tokenizer, xml, curl, openssl, zip everything: dba, ipv6, dom, calendar, wddx, static, inifile, inline, cli, ftp, filter, gcov, zts, json, hash, exif, mbstring, mbregex, libgcc, pdo, posix, embed, sockets, debug, phpdbg, zip, bcmath, fileinfo, ctype, cgi, soap, pcntl, phar, session, tokenizer, opcache, imap, tidy, kerberos, xmlrpc, fpm, dtrace, pcre, mhash, mcrypt, zlib, curl, readline, editline, gd, intl, icu, openssl, mysql, sqlite, pgsql, xml, xml_all, gettext, iconv, bz2, ipc, gmp Using variants to build PHP: phpbrew install php-5.3.10 +default phpbrew install php-5.3.10 +mysql +pdo phpbrew install php-5.3.10 +mysql +pdo +apxs2 phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2
在 Variant 前添加+
前缀,代表启用此 Variant,例如:
+mysql
在 Variant 前添加-
前缀,代表禁用此 Variant,例如:
-mysql
举个例子,假设你使用默认 Variant,并且需要启用数据库支持(mysql,sqlite,postgresql)编译 PHP,只需执行:
$ phpbrew install 5.4.5 +default+dbs
也可以:
$ 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
将 pgsql (PostgreSQL) 扩展编译进 PHP:
$ phpbrew install 5.4.1 +pgsql+pdo
若你的 Mac 上已经安装 postgresql,也可以指定特定目录编译 pgsql 扩展:
$ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin
pgsql 的路径即为pg_config
所在目录,你可以在/opt/local/lib/postgresql91/bin
找到它。
另外,你可以使用名为neutral
的 Variant 来纯净编译 PHP:
$ phpbrew install 5.4.1 +neutral
neutral
意味着 phpbrew 不会增加包括--disable-all
在内的任何额外编译参数,但部分用于安装pear
的参数(例如--enable-libxml
)依旧会被添加。
更多细节,请移步:PHPBrew Cookbook(英文)。
如果想要传递更多拓展配置变量,你可以这么做:
$ phpbrew install 5.3.10 +mysql +sqlite -- \ --enable-ftp --apxs2=/opt/local/apache2/bin/apxs
临时切换 PHP 版本:
$ phpbrew use 5.4.22
切换默认 PHP 版本:
$ phpbrew switch 5.4.18
关闭 phpbrew:
$ phpbrew off
若需要启用 Apache PHP 模块,请注释或移除以下设置项:
$ 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
请查看:Extension Installer(英文)。
配置当前 PHP 版本的 php.ini 文件,只需执行如下命令即可:
$ phpbrew config
如需切换编辑器,可执行如下命令指定 EDITOR 环境变量:
export EDITOR=vim phpbrew config
执行 self-update
即可从 GitHub 的 master
分支安装 phpbrew 最新版本。
$ phpbrew self-update
列出已安装的 PHP:
$ phpbrew list
你可以在 ~/.phpbrew/php
目录找到已安装的 PHP。例如,5.4.20 版本位于:
~/.phpbrew/php/5.4.20/bin/php
你可以手动修改其 php.ini:
~/.phpbrew/php/5.4.20/etc/php.ini
而 PHP 扩展的配置文件位于:
~/.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
等等...
切换至 PHP 编译目录:
$ phpbrew build-dir
切换至 PHP dist 目录:
$ phpbrew dist-dir
切换至 PHP etc 目录:
$ phpbrew etc-dir
切换至 PHP var 目录:
$ phpbrew var-dir
phpbrew 内置一些有用的命令用于管理 php-fpm。使用它们之前,请确认在 PHP 编译时启用了 +fpm
。
启动 php-fpm:
$ phpbrew fpm start
停止 php-fpm:
$ phpbrew fpm stop
列出 php-fpm 模块:
phpbrew fpm module
测试 php-fpm 配置:
phpbrew fpm test
编辑 php-fpm 配置:
phpbrew fpm config
已安装的
php-fpm
位于~/.phpbrew/php/php-*/sbin
目录。对应的
php-fpm.conf
文件位于~/.phpbrew/php/php-*/etc/php-fpm.conf.default
目录。你可以把默认配置复制到自定义路径再使用,例如:
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}
phpbrew 内置了用来获取部分 PHP 应用的 app 命令。
$ phpbrew app get composer
phpbrew app get phpunit
使用"PHPBREW_SET_PROMPT=1"
变量可将 PHP 版本信息加入 Shell Prompt。
此变量默认值为"PHPBREW_SET_PROMPT=0"
(即禁用),将如下行加入~/.bashrc
文件,确保其在source ~/.phpbrew/bashrc
之前,即可启用此功能:
export PHPBREW_SET_PROMPT=1
使用.phpbrew/bashrc
内定义的phpbrew_current_php_version
函数,可将版本信息嵌入到 Shell Prompt。你可以将版本信息设置到 PS1
变量内,例如:
PS1=" \$(phpbrew_current_php_version) \$ "
对于 PHP-5.3+ 版本,"Building intl 64-bit fails on OS X" https://bugs.php.net/bug.php?id=48795
将 GD 扩展编译进 PHP,你需要指定 libpng 目录、libjpeg 目录,例如:
$ 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
请移步:TroubleShooting(英文)。
Q: 如何使用不同的参数编译相同 PHP 版本?
A: 截至目前,你可以安装 php-5.x.x 并重命名其目录 /Users/phpbrew/.phpbrew/php/php-5.x.x(例如:php-5.x.x-super),并安装另一个 php5.x.x。
PHPBrew Link #Issue 1 Environment:Ubuntu 16.04 Issue: #WARNING: curl extension might be required for fetching data. Solution:sudo apt install libcurl4-openssl-dev
phpbrew简介 phpbrew是一个php版本管理的命令行工具,用于在同一台机子上同时管理几个php版本,在linux和mac上都可以安装这个工具,目前这个工具在github上维护 github.com/phpbrew/php… 为什么要用phpbrew 对我而言,我需要在MAC上运行多个php版本,所以phpbrew是一个不错的选择,其实使用普通的homebrew安装或者通过编译安装也可以安
Installation procedure for php5.6 (officel release) and php7 (alpha) on Ubuntu 14.04, via phpbrew package. Install requirements for phpbrew: apt-get update apt-get upgrade apt-get build-dep php5 apt-g
We’ve all been in the situation where we have one version installed. Maybe that version is whatever came installed on our operating system. Maybe it is a version bundled into MAMP/WAMP/XAMPP. 我们所有人都已经
安装步骤: 首先安装brew brew 安装php71最新版本 brew 安装nginx 安装一个php最新的版本 利用phpbrew安装多个版本 配置多个版本的php-fpm.conf 配置nginx 测试效果 安装过程: jack$ xcode-select --install # 先安装code的命令工具,如果提示已经安装,无需理会 jack$ brew install nginx ja
大多数语言编程的时候,都会碰到在不一样版本下的代码兼容性问题,测试代码兼容性,或者调试老旧代码,须要不一样的语言版本环境. ruby有了rbenv,rvm,nodejs也有nvm,固然php也应该有个相似的 phpenv , php-version , phpbrew 来管理PHP版本,简单查看了下这三个工具,我更偏向于phpbrew一些,其实我更愿意叫它PHPbrew.php 1.安装PHPbr
我已经安装了PHP,MySQL和Apache堆栈进行开发。该安装正在使用以下配置文件: /etc/apache2/ /etc/php5/ 后来我用phpbrew安装了多个PHP版本。所有版本都可从CLI访问和切换。但Apache总是保持默认版本,没有使用phpbrew安装。 以下是我安装的PHP版本的列表。 $ phpbrew list Installed versions: php-5.4.13
先安装php环境 apt-get install php7.0 默认会把以下的东西都安装好 php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json 一些常见路径 /etc/php/7.0/ # cli,fpm的配置路径 # 几个命令路径 /usr/sbin/php7.0-fpm /usr/bin/php -> /
apt update -y apt upgrade -y dpkg --configure -a # 安装依赖 sudo apt install -y build-essential libbz2-dev libreadline-dev libsqlite3-dev \ libcurl4-gnutls-dev libzip-dev libssl-dev libxml2-dev libxslt-de
phpbrew install 7.2 +default +openssl='/usr/local/opt/openssl/' +mysql
我似乎在绕圈子,试图用phpbrew安装一个PHP版本。当尝试安装任何版本的php时,它会返回一个致命错误: 找不到openssl扩展名,要下载版本文件,您需要openssl。 但是当我尝试通过phpbrew安装openssl时,它也会抛出一个错误: 错误:未定义PHPBREW_PHP环境变量。此扩展命令要求您从生成列表中指定PHP版本。 任何帮助都将不胜感激。 phpbrew--debug安装p
我似乎不能正确使用sudo pip安装,以便它安装到以下目录: 这样我就可以使用python导入模块 我跑过了 结果 但是,它不在正确的目录中 如何让sudo pip安装到正确的目录? 另外,我也试过了 sudo-pip安装刮擦 我得到以下信息 这两个实例都表明它已经安装,但并不正确。例如,当我在python中运行以下导入: 我尝试了以下方法:
我正在尝试使用PHPBrew安装PHP5.4,但出现以下错误: 用 我的操作系统:
当我运行xampp php版本7时都很好,但当我运行xampp php版本8但我当前的项目不工作时,这是我的laravel 9 xampp php版本8当前项目 还有一个问题,当我运行新项目并安装npm安装时 和当我运行php工匠迁移和服务后,然后登录网址
本文向大家介绍lnmp安装多版本PHP共存的方法详解,包括了lnmp安装多版本PHP共存的方法详解的使用技巧和注意事项,需要的朋友参考一下 通过lnmp安装了PHP7版本,但是发现与程序不兼容,需要降低到7.0以下的版本。 查找lnmp的install.sh文件,一般在/root/lnmp1.5/install.sh 下执行命令 sudo ./install.sh mphp 等待安装过程 安装结束
目录的版本 Subversion会记录目录树的结构,不仅仅是文件的内容。这是编写Subversion替代CVS最重要的一个原因。 以下是对你这意味着什么的说明,作为一个前CVS用户: svn add和svn delete现在也工作在目录上了,就像在文件上一样,还有svn copy和svn move也一样。然而,这些命令不会导致版本库即时的变化,相反,工作的项目只是“预定要”添加和删除,在运行svn
我正在使用mac os并安装MAMP 5.7。当我在终端上运行PHP-v时,它说PHP版本是7.2,但是当我尝试创建Laravel项目时,我得到了这个错误。我不知道为什么编写者认识到5.6中的PHP版本
> 其中:脚本'c:\users\Peter Snee\documents\angularionic\quotesapp\platforms\android\Cordovalib\Cordova.gradle'行:68 错误:评估项目':app'时出现问题。 未找到已安装的生成工具。安装Android build tools版本19.1.0或更高版本。 错误:评估项目':app'时出现问题。 未找