大多数语言编程的时候,都会碰到在不一样版本下的代码兼容性问题,测试代码兼容性,或者调试老旧代码,须要不一样的语言版本环境.
ruby有了rbenv,rvm,nodejs也有nvm,固然php也应该有个相似的 phpenv , php-version , phpbrew 来管理PHP版本,简单查看了下这三个工具,我更偏向于phpbrew一些,其实我更愿意叫它PHPbrew.php
1.安装PHPbrew
下载:node
curl-L-O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod+x phpbrew
sudo mv phpbrew/usr/bin/phpbrew
2.简单使用
为你的shell环境运行初始化脚本:mysql
phpbrew init
设置环境变量:git
sudo vi~/.bashrc
#文件最后,插入下面这行代码
source~/.phpbrew/bashrc
#保存退出
:wq
显示已知版本:
github
Read local release list (last update: 2017-04-05 08:08:43 UTC). You can run `phpbrew update` or `phpbrew known --update` to get a newer release list. 7.1: 7.1.3, 7.1.2, 7.1.1, 7.1.0 ... 7.0: 7.0.17, 7.0.16, 7.0.15, 7.0.14, 7.0.13, 7.0.12, 7.0.11, 7.0.10 ... 5.6: 5.6.30, 5.6.29, 5.6.28, 5.6.27, 5.6.26, 5.6.25, 5.6.24, 5.6.23 ... 5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ... 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 ...
显示旧版本:sql
phpbrew known--old
更新版本列表:shell
phpbrew known--update
3.编译安装PHP
默认配置安装PHP:编程
安装
json
phpbrew install 5.6.30 +default +mysql +curl +gd +fpm -- --with-curl=/usr/local/
清理编译目录:ubuntu
phpbrew clean
php-5.6.30 安装后扩展列表
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
fileinfo
filter
hash
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib
[Zend Modules]
4.PHP编译参数
显示可用参数:
phpbrew variants
只贴啦+default的参数:
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
5.使用和切换
临时使用:
phpbrewusephp-5.6.30
切换版本(设置默认版本):
phpbrewswitchphp-5.6.30
关闭:
phpbrew off
6.显示已经安装过的PHP版本
phpbrew list
7.管理FPM
NGINX须要配合php-fpm使用,所以,若是是使用 LNMP 或者本身安装的NGINX+PHP的运行环境,则须要在phpbrew安装PHP的时候加上+fpm 模块,才能使用phpbrew的模块管理.
启动FPM:
phpbrew fpm start
中止FPM
phpbrew fpm stop
显示php-fpm的模块:
phpbrew fpmmodule
测试php-fpm的配置
phpbrew fpm test
配置php-fpm
phpbrew fpm config
php-fpm 手动重启命令:
cat /home/ubuntu-vm/.phpbrew/php/php-5.6.30/var/run/php-fpm.pid
=> pid
kill -SIGINT pid 当即终止
kill -SIGQUIT pid 平滑终止
kill -SIGUSR2 pid 重启