php7 多个php版本共存

使用php7正式版,性能确实有了质的飞跃,问题还是有不少的。比如opensns在php7下面自动回复异常等。

为了继续使用微信插件,我只好将php5.6又开了起来,下面简单分享一下多个版本php共存的方法。

一、编译路径

多个版本php要共存,必须使用不同的安装路径。比如,之前php5.6安装在/usr/local/php,那么我们安装php7的时候,就应该定义到 /usr/local/php7 等不一样的路径。

就如之前php7编译安装分享的那样,把安装目录和配置文件目录都指向新的路径:

Shell

Shell

 

1

2

3

4

5

6

7

8

9

CFLAGS= CXXFLAGS= ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc \

--with-fpm-user=www --with-fpm-group=www --enable-fpm --enable-opcache \

--disable-fileinfo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-jpeg-dir \

--with-iconv-dir=/usr/local --with-freetype-dir  --with-png-dir --with-zlib --disable-rpath \

--with-libxml-dir=/usr --enable-xml  --enable-bcmath --enable-shmop --enable-exif --with-curl \

--enable-sysvsem --enable-inline-optimization  --enable-mbregex --enable-inline-optimization \

--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl \

--with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp \

--with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug


 

 

具体安装这里就不多说了,请自行翻看之前的文章==>传送门

二、配置修改

编译安装完php7之后,我们需要将配置文件中涉及的路径都更新为php7的实际路径,具体如下:

①、php-fpm.conf

 

1

2

3

4

5

6

7

8

#编辑

vim /usr/local/php7/etc/php-fpm.conf

#找到如下参数:

listen = /dev/shm/php-cgi.sock

#改为

listen = /dev/shm/php7-cgi.sock

#保存退出

:wq


 

 

如此一来,php5.6和php7的sock监听文件分别为/dev/shm/php-cgi.sock和/dev/shm/php7-cgi.sock。

②、nginx配置

nginx配置只需要修改php动态解析的sock指向即可:

在站点对应的nginx配置文件中(比如,vhost/zhangge.net.conf )找到:

 

1

2

3

4

5

6

location ~ [^/]\.php(/|$) {

                try_files $uri =404;

                fastcgi_pass  unix:/dev/shm/php-cgi.sock;

                fastcgi_index index.php;

                include fastcgi.conf;

             }

 

 

将其中的

 

1

2

3

fastcgi_pass  unix:/dev/shm/php-cgi.sock;

改为:

fastcgi_pass  unix:/dev/shm/php7-cgi.sock; #路径改为和该版本php的sock监听路径一致


 

 

然后重启nginx就能将此站点环境更新到php7了。

说白了,就是你想让站点用哪个版本就修改为该版本的监听文件路径。当然,也有一些php用的是端口的监听模式,修改原理一致!

如果只是某些特殊的页面需要使用php的其他版本,也只要新增额外的location。假如,网站有一个目录是另外的建站程序,不支持php7,那么我们需要额外设置下即可:

 

1

2

3

4

5

6

location /wap {

                try_files $uri =404;

                fastcgi_pass  unix:/dev/shm/php-cgi.sock; #对于/wap这个路径,使用php5.6

                fastcgi_index index.php;

                include fastcgi.conf;

              }


 

 

更多需求,举一反三即可!

同样的,我们也可以修改fastcgi端口为9000以外的端口,在nginx中fastcgi_pass 127.0.0.1:端口号;通过不同端口来访问

三、启动脚本

在第二步,我们修改了php的配置,但是也没启动php。怎么启动很简单,我们先修改下服务脚本:

找到 PHP5.6 的服务脚本 /etc/init.d/php-fpm

 

1

2

3

4

5

6

7

8

9

10

#复制一份:

cp /etc/init.d/php-fpm /etc/init.d/php7

#编辑修改:

vim /etc/init.d/php7

#找到

prefix=/usr/local/php

#改为

prefix=/usr/local/php7

#最后保存退出

:wq


 

 

现在,我们就可以使用 service php7 start 启动php7了,而之前的php5.6则继续使用 service php-fpm start 启动。

四、其他考虑

上述修改,只是让多个版本的php能够同时run起来,并未考虑多个版本的资源抢占问题。其实,还是有些许文章可以做的。

比如,php-fpm.conf 会对php的进程数量、响应超时等进行优化配置,很多时候我们都是用的单个php环境的最优配置。不过,当我们跑了多个php版本的时候,这些配置就应该折中考虑一下了。

就拿我博客举例,我使用nginx rewrite 定向,php5.6继续存在只是为了微信的一个插件,也就只是博客的小部分功能,其他绝大多数功能还是要用php7的,所以我在配置这个php-fpm的时候,会将php7的线程等资源给多一些,php5.6我就只给了一个主进程和一个子线程了。

好了,以上内容就是php多版本共存分享,充分理解下nginx和php的交互,本文分享可有可无

晓风彩票代购合买网站带给我们通过登陆密码、支付密码、实名绑定、提款锁定、手机认证、邮箱认证六大 维度进行会员安全信息检测评分,自动生成账户安全检测报告。超级管理员能通过时间搜索、彩种筛选、 购买方式多种方式查询会员的代购、合买、追号等投注记录,自动生成统一报表数据,及时掌握会员的投 注状态。 晓风彩票电子商务后台管理简单、易用、分模块、以维护,对操作人员彩票知识要求低。晓风彩票网站源 码大量采用Ajax技术,每5秒向远程服务器发出一次请求,一旦发现有新开奖号系统会自动将其写入数据 库,实现0开奖延时。该彩票网站源码有强大的数据库后台支持系统,自动维护网站安全,采用最新的防 火墙防护技术。 晓风彩票网站源码由深圳英迈思文化科技有限公司独立开发的,完全拥有源码自主专利权,是国内彩票网 站系统中彩种最全、开奖彩种最全、走势图表最全、玩法最全、功能最强大的彩票合买代购软件代码。晓 风彩票网站源码基于晓风自主研发的全新数据通信架构,融合社交分享体验、网罗移动购彩群体、突出专 家专业荐号等热点,助力彩票推广难题。 彩票CPS:彩票CPS推广系统,即彩票流量合作分润系统,晓风彩票系统代理商管理模块是以建立一个以彩 票官方网站为核心的彩票网络销售体系,整个模块可以建立一个四级的分销体系。分别为总站(中心或都 核心合作企业)、高级代理商(合作企业或者专营店)、普通代理商(部分专营店)、投注站业主。 彩票代购程序源码v5.0.2更新如下: 彩种:新增彩种类别5种 代理功能:增加无限极代理设置 管理功能:开启自动开奖。兑奖功能 财务功能:新增自动充值,自动开奖功能 系统环境:新增2种支持环境,windows2000系统 window8系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值