如何 实现PHP多版本的 共存 和 切换?
编译PHP时指定路径
./configure --prefix=/opt/php/php-5.6
make && make install
这样可以PHP版本就可以安装到一个特别的路径,而不是安装到 /usr/local/ 下。多个版本的 PHP 分别保存在各自的目录中,根据程序需要启动不同的 PHP。
/usr/local/php/php-5.6/bin/php server.php
使用软链接
ln -s /usr/local/php/php-5.6/bin/php /usr/local/bin/php
# 或
ln -s /usr/local/php/php-5.4/bin/php /usr/local/bin/php php -v
如果要切换默认PHP的版本,只需要重建软链接即可。
编写自动切换版本脚本
to_php56.sh,切换到默认 PHP 到 5.6 版本
rm /usr/local/bin/php
rm /usr/local/bin/phpize
rm /usr/local/bin/php-config
ln -s /usr/local/php/php-5.6/bin/php /usr/local/bin/php
ln -s /usr/local/php/php-5.6/bin/phpize /usr/local/bin/phpize
ln -s /usr/local/php/php-5.6/bin/php-config /usr/local/bin/php-config
echo "to php5.6 done"
to_php70.sh,切换到默认 PHP 到 7.0 版本
rm /usr/local/bin/php
rm /usr/local/bin/phpize
rm /usr/local/bin/php-config
ln -s /usr/local/php/php-7.0/bin/php /usr/local/bin/php
ln -s /usr/local/php/php-7.0/bin/phpize /usr/local/bin/phpize
ln -s /usr/local/php/php-7.0/bin/php-config /usr/local/bin/php-config
echo "to php 7.0 done"
注意:别忘了
1、去掉 .bash_profile 文件中,对 PHP 路径的配置(附:Mac Pro 修改环境变量);
2、删除掉 /usr/bin/php 文件;
后记1:
在 Mac 电脑上,删除不了系统自带的 PHP-5.6.25(没有权限,sudo 也不行),文件路径为 /usr/bin/php,顿时感觉 Mac 在安全性这块(用户权限)做的非常好。最后的解决方案是,修改 .bash_profile 文件,详细参考:Mac Pro 修改环境变量
后记2:
换成了其他脚本方式,实现了 Mac Pro 的PHP多版本切换,详情查看:Mac Pro 实现 PHP-5.6 与 PHP-7.0 等多版本切换
延伸阅读:
Mac Pro 编译安装 PHP 5.6.21 及 问题汇总
记 Mac 升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程
如何 实现PHP多版本的 共存 和 切换?的更多相关文章
- .Net dll多个同名的程序集版本冲突共存与通过基本代码或探测定位程序集方案
.Net dll多个同名的程序集版本冲突共存与通过基本代码或探测定位程序集方案 在使用调用程序集的引用中的信息和配置文件中的信息确定了正确的程序集版本之后,并且在公共语言运行时在全局程序集缓存中进行检 ...
- linux 下多版本gcc 共存问题
linux 下多版本gcc 共存问题 http://blog.csdn.net/isfirst/article/details/42296583 参考 http://blog.csdn.net/chi ...
- Mac下多版本pip共存
Mac下多版本pip共存 来自于官方的解释, pip是python包管理工具, 该工具提供了对python包的查找, 下载, 安装, 卸载等功能python第三方工具包多数依赖于pip进行安装, 如 ...
- IIS7 IIS8 中多个版本php共存的方法
原文地址: https://blog.cozof.com/pieces/54.shtml 最近又重回.net,用回IIS.然后用到某个php开源项目,需要低版本的php,之前装的一个php5.5不能用 ...
- mac中利用brew实现多版本php共存以及任意切换
1.安装brew 参考链接:https://brew.sh/index_zh-cn.html 2.安装php56 brew install homebrew/php/php56 3.配置php56 因 ...
- 如何在Anaconda中实现多版本python共存
anaconda中Python版本是3.5,因为爬虫原因,需要Python2.7版本,因此,希望能在anaconda中Python3和Python2共存. 1. 打开Anaconda Prompt,可 ...
- Windows环境下搭建Nginx和多版本PHP共存
PHP版本众多,彼此之间兼容性不好,不同程序经常需要的不同版本的PHP版本.这里介绍如何使用NGINX让不同版本的PHP共存. 软件下载地址 与nginx整合的php需要选择Non Thread Sa ...
- 安装Ruby、多版本Ruby共存、Ruby安装慢问题
rbenv rbenv可以管理多个版本的ruby.可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围 global版:全局,没有shell和local版时使用glob ...
- Dotnet Core多版本API共存的优雅实现
API升级,新旧版本的API共存,怎么管理呢? 一.前言 最近,单位APP做了升级,同步的,API也做了升级. 升级过程中,出现了一点问题:API升级后,旧API也需要保留,因为有旧的APP还在使 ...
随机推荐
- Mongodb的安装
下载:http://www.mongodb.org/downloads mongodb-win32-x86_64-3.2.5-signed.msi 安装: 1.dos下切换至安装目录bin下: 2 ...
- LUA 利用#遍历表的问题
tb ={ } t = { "hello", , , 'w', , tb } --~ 1 hello --~ 2 1 --~ 3 2 --~ 4 w --~ 5 4 --~ 6 t ...
- jQuery美化下拉菜单插件dropkick
dropkick是一款基于jquery库的美化下拉框下拉菜单的插件,它通过定制HTML插入可使丑陋无聊的<select>下拉列表变得美丽. name属性是唯一一个必需的填写的,不过你也应该 ...
- knockoutJS学习笔记07:绑定上下文
所谓绑定上下文就是当前绑定(dat-bind)所使用到的对象(ViewModel).在单个对象绑定的情况下是很容易理解的,但对象可能是复杂的类型,嵌套很多层,这个时候每层都有自己的上下文对象,理解起来 ...
- jquery-leonaScroll-1.1-自定义滚动条插件
leonaScroll-1.1最新版-竖向 leonaScroll-1.1.js欢迎使用leonaScroll-1.1.js,此滚动条仅支持竖向滚动,如您在使用过程中发现更多问题,欢迎指正! 更新:1 ...
- Could not execute action
2.Could not execute action 原因:action成员变量有空值,要访问方法中,使用了该成员变量 参考: http://www.blogjava.net/javagrass/ar ...
- 推公式 HDU 2552
T 给你2个值 求另外一个 需要推一下 tan(a+b)=(tan(a)+tan(b))/(1-tan(a)*tan(b)); 等式左右取tan tan(atan(a))=a 1/s=tan(...) ...
- 大图居中,以1920px为例
<div style="overflow: hidden; position: relative;"> <img src="img.jpg" ...
- 跳转到某个Activity
跳转 Activity之间的跳转 可以依靠Intent 简单粗暴的办法是 Intent intent= new Intent(*.this, MainActivity.class); startAct ...
- 解决:Error: JAVA_HOME is not defined correctly
问题重现: Error: JAVA_HOME is not defined correctly. We cannot execute :/usr/lib/jvm/java-7-oracle 问题分析: ...