mac

#安装php5.6
brew install php56
#安装php7.1
brew install php71
#安装composer
brew install composer

此时composer对应的php版本是5.6

现在我们有一个项目A是php5.6的,有一个项目B是php7.1的

访问项目A要求用的是php5.6版本,访问项目B时要求用的是php7.1

#方案一
#查看当前php版本
php -v
#假设结果是5.6
#访问项目B的时候
brew unlink php56
brew link php71
brew services start php71
#此时再查看php版本已切换至php7.1
php -v
#如果要切回php5.6
brew unlink php71
brew link php56
brew services start php56
#方案二
#配置项目A
#nginx配置
location ~ \.php$ {...fastcgi_pass 127.0.0.1:9000
}
#配置项目B
#修改php7.1的php-fpm.conf监听端口
listen = 127.0.0.1:9001
#nginx配置
location ~ \.php$ {...fastcgi_pass 127.0.0.1:9001
}
#重启nginx和php

推荐使用方案二

多版本PHP的composer配置

用phpstorm打开项目A和项目B

在项目A中执行composer命令是正常的

在项目B中执行composer报错,因为项目B在phpstorm打开时配置的php7.1的版本

那该如何配置多版本PHP的composer呢?

通过上文brew安装的composer对应的是php5.6,因此全局的composer对应的是php5.6

故而我们需要安装的对应php7.1的composer

1,下载composer,https://getcomposer.org/download/,将下载的composer.phar移动到~/composer7目录下

#创建composer7目录
mkdir ~/composer7
#下载composer.phar
cd ~/composer7
wget https://getcomposer.org/download/1.6.5/composer.phar

2,配置composer7

#编辑~/.bash_profile,创建php7和composer7的别名
vi ~/.bash_profile
alias php7='/usr/local/Cellar/php71/7.1.11_22/bin/php'
alias composer7='/usr/local/Cellar/php71/7.1.11_22/bin/php /Users/my/composer7/composer.phar'
#'usr/local/Cellar/php71/7.1.11_22'即php7.1安装的目录
#'/Users/my/composer7'即下载的所在路径composer.phar

3,使~/.bash_profile生效

#使~/.bash_profile生效
source ~/.bash_profile
#由于是mac,用的是zsh,重启后~/.bash_profile会失效,故需要编辑~/.zshrc
vi ~/.zshrc
source /User/my/.bash_profile
#/User/my是当前用户的根目录
#编辑~/.zshrc后,mac重启是会执行./zshrc,故而重启后./bash_profile会被载入,其中的命令别名会生效

4,查看php7和composer7

#查看php7命令对应的php版本
php7 -v
#查看composer7
composer7 -v

多版本PHP部署及composer配置相关推荐

  1. SpringBoot项目部署与服务配置

    spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...

  2. 27. Spring Boot 部署与服务配置

    转自"https://www.cnblogs.com/zhchoutai/p/7127598.html" Spring Boot 其默认是集成web容器的,启动方式由像普通Java ...

  3. openstack安装newton版本keyston部署(一)

    openstack安装newton版本keyston部署(一) 一.部署环境:     两台centos7,  内存2G 控制计算节点: Hostname1:                    i ...

  4. 阿里云服务器(CentOS 7.4)Jenkins(LTS 2.150.3)部署及简易配置

    阿里云服务器(CentOS 7.4)Jenkins(LTS 2.150.3)部署与简易配置 Jenkins 目前是使用比较多的一个持续集成的开源工具,不管是开发测试部署,还是代码扫描等.很多工作都可以 ...

  5. Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui

    Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui 2017年03月17日 20:51:4 ...

  6. 大数据增量采集OGGAdapter的安装部署与相关配置

    大数据云时代,数据上云ETL已成了最基础,最根本,最必须的一个步骤.目前数据传输迁移的工具非常多,比如dataX,DTS,kettle等等.为了保证云上存储空间的有效利用和数据的整体唯一性,就没必要每 ...

  7. JavaWEB四:在IDEA(21.1版本)下部署Tomcat8

    Tomcat8 概述 服务器架构模式 CS:客户端服务器架构模式 优点:充分利用客户端机器的资源,减轻服务器的负荷 缺点:需要安装客户端,升级维护成本较高 BS:浏览器服务器架构模式 优点:不需要安装 ...

  8. centos7+ docker1.12 实践部署docker及配置direct_lvm

    2019独角兽企业重金招聘Python工程师标准>>> centos7+ docker1.12 实践部署docker及配置direct_lvm 博客分类: docker 前言 Doc ...

  9. struts2中各版本jar包需求及配置设置

    struts2中各版本jar包需求及配置设置 [原文:http://wangxinghaoaccp.blog.163.com/blog/static/11581023620113213161958/] ...

最新文章

  1. 打开文件和关闭文件的含义
  2. Problem 63 何时该用glDrawTexiOES?
  3. python变量类型-【干货】Python基础语法之变量类型
  4. ubuntu16.04安装,使用redis布隆过滤器示例
  5. strak组件(3):URL别名的优化
  6. Linux中常用的操作指令(随时更新)
  7. 由浅到深理解ROS(9)- 几个基本概念的理解 坐标系 包
  8. html隐藏并失效,如果元素开始隐藏,css过渡将不起作用
  9. SpringMVC 模型数据
  10. Java电子书平滑翻页效果_(转载)Android 平滑和立体翻页效果1
  11. 95-190-742-源码-WindowFunction-AllWindowFunction
  12. maven 单独构建多模块项目中的单个模块
  13. linux 卷标设置与管理
  14. 如何将Mac外部驱动器映射到CrossOver容器
  15. 使用Google Chrome Frame(谷歌浏览器内嵌框架)解决低版本IE不兼容问题
  16. Extjs的grid总计实现
  17. 安卓逆向学习 之 KGB Messenger的writeup(2)
  18. java读取共享文件夹
  19. 按键边缘检测,控制LED亮灭
  20. PCIE 3.0 4.0 GEN3 GEN4 速度如何

热门文章

  1. WPS删除第一页的页眉
  2. RTC闹钟和ELAPSED_REALTIME最大的差别
  3. 新概念二-介词短语08
  4. leetcode-SQL-1667. 修复表中的名字
  5. 获取《王者荣耀》全英雄高清无码图
  6. 如何WEBP透明素材无损导入PS
  7. shell脚本写hive代码
  8. 黑客攻防技术宝典(二)
  9. 论——如何不用u盘和光驱重装Windows系统
  10. linux磁盘阵列raid