大多数语言编程的时候,都会碰到在不同版本下的代码兼容性问题,测试代码兼容性,或者调试老旧代码,需要不同的语言版本环境. ruby有了rbenv,rvm,nodejs也有nvm,当然php也应该有个类似的 phpenv , php-version , phpbrew 来管理PHP版本,简单查看了下这三个工具,
大多数语言编程的时候,都会碰到在不同版本下的代码兼容性问题,测试代码兼容性,或者调试老旧代码,需要不同的语言版本环境.
ruby有了rbenv,rvm,nodejs也有nvm,当然php也应该有个类似的 phpenv , php-version , phpbrew 来管理PHP版本,简单查看了下这三个工具,我更偏向于phpbrew一些,其实我更愿意叫它PHPbrew.
如果你确定需要使用phpbrew,请认真读完本文,再去实践,请注意!前方有坑(其实我更推荐 vagrant ).
Brew & manage PHP versions in pure PHP at HOME
下载:
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/bin/phpbrew
为你的shell环境运行初始化脚本:
立即学习“PHP免费学习笔记(深入)”;
phpbrew init
设置环境变量:
sudo vi ~/.bashrc #文件最后,插入下面这行代码 source ~/.phpbrew/bashrc #保存退出 :wq
显示已知版本:
phpbrew known ===> Fetching release list... [==================================================================] 29.67/29.67KB 100% 5.6: 5.6.3, 5.6.2, 5.6.1, 5.6.0 ... 5.5: 5.5.19, 5.5.18, 5.5.17, 5.5.16, 5.5.15, 5.5.14, 5.5.13, 5.5.12 ... 5.4: 5.4.35, 5.4.34, 5.4.33, 5.4.32, 5.4.31, 5.4.30, 5.4.29, 5.4.28 ... 5.3: 5.3.29, 5.3.28, 5.3.27, 5.3.26, 5.3.25, 5.3.24, 5.3.23, 5.3.22 ... You can run `phpbrew update` to get a newer release list.
显示旧版本:
phpbrew known --old
更新版本列表:
phpbrew known --update
默认配置安装PHP:
phpbrew install 5.4.0 +default
测试安装:
phpbrew install --test 5.4.0
显示debug信息:
phpbrew -d install --test 5.4.0
安装旧版本:
phpbrew install --old 5.2.13
清理编译目录:
phpbrew clean
显示可用参数:
phpbrew variants Variants: all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom, 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: 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, zi 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
phpbrew install 5.3.10 +mysql +sqlite -- \
--enable-ftp --apxs2=/opt/local/apache2/bin/apxs
临时使用:
phpbrew use 5.4.22
切换版本(设置默认版本):
phpbrew switch 5.4.18
关闭:
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
0
phpbrew off
phpbrew list
NGINX需要配合php-fpm使用,因此,如果是使用 LNMP 或者自己安装的NGINX+PHP的运行环境,则需要在phpbrew安装PHP的时候加上+fpm 模块,才能使用phpbrew的模块管理.
phpbrew install 5.6.3 +fpm
启动FPM:
phpbrew fpm start
停止FPM
phpbrew fpm stop
显示php-fpm的模块:
phpbrew fpm module
测试php-fpm的配置
phpbrew fpm test
配置php-fpm
phpbrew fpm config
更多 扩展安装 启用扩展 配置PHP 管理FPM 其他组件(composer,phpunit).
OS X笔记:
安装准备:
brew install automake autoconf curl pcre re2c mhash libtool icu4c gettext jpeg libxml2 mcrypt gmp libevent libpng freetype brew link icu4c ln -s /usr/local/include/freetype2 /usr/local/include/freetype2/freetype
安装phpbrew:
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew sudo mv phpbrew /usr/bin/phpbrew phpbrew init source ~/.phpbrew/bashrc phpbrew lookup-prefix homebrew
安装php版本:
#同样的在其他系统平台也会出现类似库找不到的问题,需要手动指定路径 phpbrew install 5.3.29 +default +fpm +pdo +mysql +sqlite +gd -- --with-gd=shared --with-jpeg-dir=/usr/local/Cellar --with-png-dir=/usr/local/Cellar --enable-gd-native-ttf --with-freetype-dir=/usr/local/Cellar #print_r(gd_info());
注意:如果配置或编译的时候出现报错,请查看此页面 Requirement
安装PHP版本
测试默认config
phpbrew install 5.6.3 --test +default tail -f /home/rming/.phpbrew/build/php-5.6.3/build.log
默认:
phpbrew install 5.6.3 +default +fpm +pdo +mysql +sqlite +gd tail -f /home/rming/.phpbrew/build/php-5.6.3/build.log
精简:
phpbrew install 5.6.3 +fpm +json +dbs +mb +curl +mcrypt +filter tail -f /home/rming/.phpbrew/build/php-5.6.3/build.log
+json是因为phpbrew本身是个phar包,依赖于php的json函数+fpm是为了nginx,phpbrew安装的php-fpm默认listen=127.0.0.1:9000,因此需要把之前lnmp的配置文件fastcgi_pass选项更改为 127.0.0.1:9000;+dbs是因为没有安装mysqli扩展,想用个phpmyadmin都困难,囧;+mb 是多种语言编码字节数问题,为了中文字符截断和匹配使用+curl curl扩展 , 很常用的,你懂得+mcryptphpmyadmin需要+filter filter_var过滤函数写个脚本切换php-fpm:
function nginxenv(){
phpbrew fpm stop &>/dev/null;
phpbrew switch ${1};
phpbrew fpm start &>/dev/null;
}
保存文件到~/.phpbrew/nginxenv , 然后在~/.bashrc最后加上 source ~/.phpbrew/nginxenv , 然后命令行里就可以 使用nginxenv 5.3.29这样切换版本了.
参考:
原文地址:PHP的多版本环境管理, 感谢原作者分享。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号