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

最新文章

  1. canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题
  2. salesforce 零基础开发入门学习(十五)salesforce中formula的使用(不含Date/Time)
  3. php 的包管理工具 composer
  4. C#连接Oracle简单教程
  5. eclips引入Java源代码
  6. android网络请求之POST方法
  7. 安装Hadoop系列 — 新建MapReduce项目
  8. C语言工具的简单辨析
  9. C# for 循环 迭代法 穷举法
  10. PTF在PET上印刷線路的注意事項
  11. 实现DataGridView行的拖动,即实现行的顺序交换
  12. mount命令使用具体解释(Linux)
  13. Windows系统CredSSP漏洞修复
  14. $符号报not defing 报错
  15. linux下open-vswitch安装卸载操作
  16. .net MVC简洁的登录页面
  17. input reset 重置时间
  18. WPF放大镜效果
  19. C语言中一个字符数组里面的所有元素变成一个字符串
  20. ubuntu16.04下内核模块解析

热门文章

  1. dex2jar反编译大文件内存溢出的问题
  2. 用原生js写小游戏--Flappy Bird
  3. RSTP生成树
  4. java多态的实现机制
  5. shell数学运算
  6. 34.Merge Intervals(合并序列)
  7. oracle中Varchar2和nvarchar2的区别
  8. ThinkPhp学习
  9. Linux系统测试端口连通性的方法
  10. rabbitmq一个连接多个信道channel