ubuntu php多版本共存切换

做开发时,由于本机开发的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

时间: 2024-10-09 22:57:16

ubuntu php多版本共存切换的相关文章

Ubuntu下python两个版本的切换

最近在Ubuntu16.04安装了python3.5还有系统自带的python2.7.13,总结一下不同版本的切换问题. alias:别名 bashrc:个人配置文件 一.修改Python版本(针对用户) 想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 alias(别名) 即可.打开该用户的 ~/.bashrc文件,添加新的别名信息来修改默认使用的 Python 版本. alias python='/usr/bin/python3.5' 一旦完成以上操作,重新登

Mac下使用Pyenv实现python多版本共存与切换

mac自带的python2.7不能删除,因为很多系统模块依赖,所以我们使用pyenv来安装python3.6版本,这样就可以并存. 1.安装OS X的套件管理器(类似ubuntu的apt-get), 网址如下:http://brew.sh/index_zh-cn.html或者直接用终端命令安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

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

Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-opensource-src的tar包,到网上一查,乖乖,大部分人编译这个包居然花费了12-13个小时!但是,根据我在Windows下静态编译Qt的经验,其实这之中很多东西都是可以不用编译的,最终我大约用了40分钟编译完成了全部内容.如果你直接使用官方的sdk安装,那么你就已经有了一个动态库,现在你又通过源

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

做过APP产品的技术人员都知道,APP应用属于一种C/S架构的,所以在做多版本兼容,升级等处理则比较麻烦,不像web应用那么容易.下面将带大家分析几种常见的情况和应对方式: 小改动或者新加功能的 这种情况,数据库结构和API程序一般是可以兼容多版本的,所以不用强制升级,可以坐到多版本共存. 尽量采用数据库层面新增字段和API的方式,应用程序层面就可以兼容了.当然,API层面也可以部署多个版本来同时提供,但这个不是必须的 但最重要的是数据库层面的表结构那些能够兼容到.  或者:  总结: 数据库层

Python/Anaconda多版本共存的解决方案

博客中的文章均为 meelo 原创,请务必以链接形式注明 本文地址 虽然Python2大势已去,众多项目都已经支持Python3,但总有一些教程和项目只支持Python2.通常情况是计算机里既装着Python2,也装了Python3. 多Python版本共存的解决方案已经有不少,简单罗列几种: 直接修改程序文件名 借助pyenv和virtualenv 借助conda环境 使用Python Launcher 这些方法都有各自的不足,直接修改程序文件名仍然不能解决pip包管理器的问题,对jupyte

Linux配置Python多版本共存

我们知道在Windows下多版本共存的配置方法就是改可执行文件的名字,配置环境变量. Linux中的配置原理差不多,思路就是生成软链接,配置到环境变量. 在没配置之前,我的Ubuntu中安装了python2.7和python3.6.而且输入python默认使用的是python2.7 我需要配置成python3,只需要执行如下步骤. 1.找到当前代表python2.7的软链接‘python’的位置,删掉. 2.找到python3.6的执行文件,将其生成软链接到环境变量. 如下图: 注意:需要roo

python介绍 编程语言分类及对比 python解释器安装(多版本共存) 变量 数据类型(三种)

python介绍编程语言分类及对比python解释器安装(多版本共存)变量数据类型(三种) 一:python介绍 1.python是什么? python是一门编程语言,编程语言就是一门语言 语言就是一个事物与另外一个事物沟通的工具 而编程语言则是人与计算机沟通的介质 2.为什么要跟计算机沟通:为了奴役计算机 奴隶主-------(人类的语言)-------->奴隶 奴隶主-------(编程语言)-------->计算机 3.什么是编程 奴隶主把想让计算机替自己做事情的逻辑用编程语言给表达出来

Ancoda 下的python多版本共存

Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virtualenv 是创建独立的python环境包的工具,Fabric 是和服务器管理和应用发布相关的工具(个人没有用过...),让我惊奇的是,这三个没有一个是和敲代码有关系的.有些东西在开发中真的是刚需,想绕都绕不开,今天我们来聊聊python的多版本共存的问题. 笔者在电脑上安装了Virtualenv

180多个数据库版本一键切换,PHPWAMP8.8.8.8(支持切换任意数据库,全面支持mysql等常见数据库)

PHPWAMP8.8.8.8版本支持一键切换数据库的PHP集成环境,纯绿色 支持切换任意数据库,默认全面支持mysql等常见数据库) 最新最旧版本的数据库都可以切换,同时运行不同版本的数据库! 完美兼容任何集成环境,多开,群开无压力,满足各种变态测试! 只需点击相关设置,切换你想要的任意版本即可,真正的一键自定义! 在一键自定义同时,完美兼顾用户的自主修改,各种DIY自定义 1.支持一键自定义设置MYSQL版本,180多个MYSQL历史版本随意切换! 2.优化旧版本的"700多个PHP版本随意切