首页 互联前沿 Web在线 浏览内容

【php】php7和其他php多版本共存的配置教程

5593 8 BaiDu已收录 评论留言

年前,终于迎来了期待已久的php7正式版,小伙伴都第一时间用上了。性能确实有了质的飞跃,问题还是有不少的。比如:某些插件使用异常等
为了继续正常使用部分功能或插件,只好将原来的PHP版本开起来,下面简单分享一下多个版本php共存的方法。


一、编译路径


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

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

 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之后,我们需要将配置文件中涉及的路径都更新为php7的实际路径,具体如下:
①、php-fpm.conf

 #编辑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 )找到:

location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; }

将其中的

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

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

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

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

 location /wap { try_files $uri =404; fastcgi_pass unix:/dev/shm/php-cgi.sock; #对于/wap这个路径,使用php5.6 fastcgi_index index.php; include fastcgi.conf; }

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

三、启动脚本


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

找到原来的PHP的服务脚本 /etc/init.d/php-fpm

#复制一份: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版本的时候,这些配置就应该折中考虑一下了。

转至:http://zhangge.net/5088.html

标签:
墨月的头像
  • 本文由墨月网络整理编辑,转载请以链接形式注明本文地址:https://www.moyoo.net/12913.html
    版权所有© 墨月网络 | 本文采用 BY-NC-SA 进行授权丨发布于:2016-03-05 17:33
    若未注明,均为原创;部分内容源于网络,版权归原作者所有,如有侵权,请联系我们删除。
已有 8 条评论 新浪微博
  1. 若未注明,均为原创;部分内容源于网络,版权归原作者所有,如有侵权,请联系站长删除。 说的不错。
    所以,这篇文章还请注明来源,谢谢:http://zhangge.net/5088.html

    2016年5月3日 18:10 回复
    • 柒 月

      你这速度挺快嘛,已经注明

      2016年5月3日 18:14 回复
      • 哈哈,刚好有空回访一下。

        2016年5月3日 18:14 回复
        • 柒 月

          这敢情好啊,换个链接呗;当时审核Dmoz的时候就想换来着..

          2016年5月3日 18:16 回复
          • [ok] 我现在就去加一下。

            2016年5月3日 18:17
          • 柒 月

            好嘞,我也加上

            2016年5月3日 18:23
          • 已添加,首页有缓存,可以点击 http://zhangge.net/?view 查看[嘻嘻]

            2016年5月3日 18:25
          • 柒 月

            我也添加了,一样有缓存;可以加速乐的手动刷新查看!

            2016年5月3日 18:26

关注我们,实时联系

AD

AD