ubuntu php多版本共存切換,為每個(gè)站點(diǎn)設(shè)置不同的php版本

做開發(fā)時(shí),由于本機(jī)開發(fā)的php版本跟線上發(fā)布的php版本不一致,很容易在上線后,發(fā)現(xiàn)因版本的影響導(dǎo)致一些bug,但又不想重新去換本機(jī)的php版本,那么多版本共存就很方便了!有必要時(shí),切換到指定版本測試下,沒問題再上線就OK了!

LMAP環(huán)境安裝記錄如下:

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

#開啟重寫轉(zhuǎn)向

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'

安裝完成后,重啟電腦,默認(rèn)是運(yùn)行5.6版本的php(命令行下php-v 是顯示最高版本7.1)

在/etc/php目錄下有對應(yīng)版本號的文件夾,編輯相應(yīng)的php.ini可配置相應(yīng)的php版本,命令行下php70可切換到php7版本,其它類同

本人用的ubuntu16.04,親測14.04也可用!

————————————————————分割線——————————————————————

既然安裝了多個(gè)版本,那么是否可以讓不同的網(wǎng)站加載不同的php版本呢?

網(wǎng)上搜索一片,很多都是用nginx來處理多站點(diǎn)用不同php版本,但我真不想那么麻煩再裝個(gè)nginx,基本上都是用代理轉(zhuǎn)發(fā),apache本身就有proxy,所以用apache本身的也就好

個(gè)人開發(fā)習(xí)慣上是用虛擬主機(jī),所以,配置了一下虛擬主機(jī)的目錄

#以下配置放到文件最后面,在此配置后面的網(wǎng)站,也會(huì)引用此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>

完成后,保存!

同時(shí),再啟用以下兩個(gè)模塊

sudo a2enmod proxy proxy_fcgi

重啟:sudo service apache2 restart

注意apahce版本為2.4.10版本以上才有效,本人ubuntu14.04系統(tǒng)的apache為2.4.7版本,所以升級到最新版本

sudo add-apt-repository ppa:ondrej/apache2

sudo apt-get update

sudo apt-get dist-upgrade

---------------------

作者:zhousmq

來源:CSDN

原文:https://blog.csdn.net/zhousmq/article/details/77765451

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容