做开发时,由于本机开发的php版本跟线上发布的php版本不一致,很容易在上线后,发现因版本的影响导致一些bug,但又不想重新去换本机的php版本,那么多版本共存就很方便了!有必要时,切换到指定版本测试下,没问题再上线就OK了!

LMAP环境安装记录如下:

sudo apt-get install -y apache2

安装:mysql5.7(ubuntu16.04自带)
sudo apt instal -y mysql-server mysql-client libmysqlclient-dev mysql-workbench

安装:php5.6
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6-common php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-gd php5.6-curl php5.6-json php5.6-fpm php5.6-zip php5.6-mcrypt libapache2-mod-php5.6

安装:php7.0
sudo apt-get install -y php7.0-common php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-gd php7.0-curl php7.0-json php7.0-fpm php7.0-zip php7.0-mcrypt libapache2-mod-php7.0

安装:php7.1
sudo apt-get install -y php7.1-common php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-gd php7.1-curl php7.1-json php7.1-fpm php7.1-zip php7.1-mcrypt libapache2-mod-php7.1

#开启重写转向
sudo a2enmod rewrite
sudo a2enmod headers至此安装完成

重启:sudo service apache2 restart

sudo vi .bashrc
#编辑bashrc加入自定义命令,为方便在不同php版本间切换
alias php56='sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2enmod php5.6 && sudo service apache2 restart'
alias php70='sudo a2dismod php5.6 && sudo a2dismod php7.1 && sudo a2enmod php7.0 && sudo service apache2 restart'
alias php71='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2enmod php7.1 && sudo service apache2 restart'

安装完成后,重启电脑,默认是运行5.6版本的php(命令行下php-v 是显示最高版本7.1)

在/etc/php目录下有对应版本号的文件夹,编辑相应的php.ini可配置相应的php版本,命令行下php70可切换到php7版本,其它类同

本人用的ubuntu16.04,亲测14.04也可用!

————————————————————分割线——————————————————————

既然安装了多个版本,那么是否可以让不同的网站加载不同的php版本呢?

网上搜索一片,很多都是用nginx来处理多站点用不同php版本,但我真不想那么麻烦再装个nginx,基本上都是用代理转发,apache本身就有proxy,所以用apache本身的也就好

个人开发习惯上是用虚拟主机,所以,配置了一下虚拟主机的目录

#以下配置放到文件最后面,在此配置后面的网站,也会引用此php版本

<VirtualHost *:80>

ServerName my.xxx.com

DocumentRoot /var/www/html/xxx
####加载不同的php版本####

<FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
        </FilesMatch>

####加载不同的php版本####

</VirtualHost>
完成后,保存!
同时,再启用以下两个模块
sudo a2enmod proxy proxy_fcgi

重启:sudo service apache2 restart

注意apahce版本为2.4.10版本以上才有效,本人ubuntu14.04系统的apache为2.4.7版本,所以升级到最新版本

sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get dist-upgrade

转载于:https://www.cnblogs.com/yimingwang/p/8918766.html

ubuntu php多版本共存切换相关推荐

  1. Ubuntu实现多版本CUDA切换——CUDA9.0与CUDA10.0切换

    参考链接:https://blog.csdn.net/qq_18649781/article/details/89787858 git clone到的深度学习的代码需要使用各种不同版本的Tensorf ...

  2. linux中的opencv多版本共存切换的问题

    配置环境 已经编译了OpenCV2.X和OpenCV3.X的,而且安装在了不同的文件夹中,(其中有一个是默认安装,安装的路径位/usr/local) 切换文件配置 1 ~./bashrc的配置 #打开 ...

  3. ubuntu 安装多版本cuda,及切换版本方法及常见问题记录

    ubuntu 安装多版本cuda,及切换版本方法 一 . cuda安装教程以及ubuntu 16.04安装NVIDIA显卡驱动以及cuda.cudnn,以及解决Ubuntu循环登陆问题等 二 . ub ...

  4. Ubuntu普通用户安装、切换CUDA版本

    前言: 想要跑个目标检测模型,因为自己电脑不给力,想用windows跑模型,环境整起来也特别麻烦.前面想整了一个Yolov3的windows环境,查看显卡配置GTX960.安装CUDA与Cudnn.安 ...

  5. ubuntu查看python版本-Ubuntu18.04下python版本完美切换的解决方法

    ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...

  6. Linux下快速静态编译Qt以及Qt动态/静态版本共存

    Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-open ...

  7. kali查看python版本-kali中python版本的切换方法

    kali中python版本的切换方法 如下所示: update-alternatives --config python 一条简单的命令,如下图所示: 以上这篇kali中python版本的切换方法就是 ...

  8. APP多版本共存,服务端如何兼容?

    做过APP产品的技术人员都知道,APP应用属于一种C/S架构的,所以在做多版本兼容,升级等处理则比较麻烦,不像web应用那么容易.下面将带大家分析几种常见的情况和应对方式:  小改动或者新加功能的  ...

  9. Ubuntu 中python 2 升级 (切换)3

    1.一: 确认本机下的python默认版本.调出终端,输入python即可查看默认的版本 python -V 安装python 3.6(ubuntu 自带2.7和3.5) sudo apt-get i ...

最新文章

  1. OpenCV 使用方向梯度直方图估计图像旋转角度
  2. 空间金字塔Spatial Pyramid的BOW和Pyramid HOG的多核
  3. git提交输入密码_git提交到自己的服务器,每次都要输入密码
  4. ACL 2021 | 基于依存句法驱动注意力图卷积神经网络的关系抽取
  5. CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)
  6. idea补全代码快捷键
  7. android 指示器平移动画,Android实现带指示器的自动轮播式ViewPager
  8. php mongo 游标超时,游标在MongoDb游标上超时错误
  9. IdentityServer4系列 | 支持数据持久化
  10. 作者:宾军志(1976-),男,御数坊(北京)科技咨询有限公司联合创始人。...
  11. 解决Python中PyCharm导入模块时,模块名下出现红色波浪线的问题
  12. 机器学习算法:scikit-learn 线性回归算法总结
  13. java自行车起源_自行车的起源
  14. JS 学习笔记--10---基本包装类型
  15. git学习笔记-(6-提交对象)
  16. 爬取豆瓣排名前100的电影
  17. python剪刀石头布_python练习案例--剪刀石头布
  18. 火狐打不开qq空间,说“建立安全连接失败”,解决方案
  19. 凌晨三点的战役……让俺激动的没有一丝的困意(原创)
  20. html+css3跑马灯(抖音我们的照片记录幸福到永远)

热门文章

  1. Android中的人脸检测入门
  2. RNN LSTM 循环神经网络 (分类例子)
  3. JZOJ 5197. 【NOIP2017提高组模拟7.3】C
  4. java求反字符_java 反取字符串
  5. java httpclient 302_httpclient如何处理302重定向
  6. php连接mysql并查询表数据,php连接mysql并查询数据怎么实现
  7. c 实现html5,html5 实现手机摇一摇功能(C)
  8. history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...
  9. 重试次数配置_TestNG实践——2.用例失败重试
  10. python算两个点的距离公式_计算Python Numpy向量之间的欧氏距离实例