登录

apache - 请教 centos php 多版本安装共存切换。

在网上找了一堆资料,也没有找到合适的,大多介绍的是nginx的。对nginx也不熟悉,现在项目是放在apache的,所以想弄个 5.5 5.6 7.0的PHP版本到服务器上去,可以切换PHP版本!

# PHP
阿神 阿神 2294 天前 883 次浏览

全部回复(7) 我要回复

  • 高洛峰

    高洛峰2017-04-11 09:06:24

    可以用docker,php-fpm + nginx 很爽,你会爱上的

    回复
    0
  • 怪我咯

    怪我咯2017-04-11 09:06:24

    使用httpd+php-fpm方式运行。让httpd把php请求转发给php-fpm。
    比如:
    php 5.x的php-fpm运行在127.0.0.1:9000端口。
    php 7.x的php-fpn运行在127.0.0.1:9001端口。

    回复
    0
  • 迷茫

    迷茫2017-04-11 09:06:24

    PHP的多版本环境管理phpbrew
    php-version

    回复
    0
  • ringa_lee

    ringa_lee2017-04-11 09:06:24

    lnmp.org 1.4版本支持

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-11 09:06:24

    说一下切换环境的原理,你可以自己实现一个

    比如你的php安装在 /alidata/server/下, 有文件php5.3, php5.5,php5.6,php7.0

    这时候在/alidata/server/下建立一个软链接 ln -s /alidata/server/php7.0 php

    环境变量配置成/alidata/server/php/bin

    如果要切换版本,只要吧原来的软链接删除,重新建立一个对应版本的软链接就可以实现切换版本

    回复
    0
  • 阿神

    阿神2017-04-11 09:06:24

    首先:
    1.停止当前版本PHP并分别启动脚本
    service php-fpm stop #需要停止php
    mv /etc/init.d/php-fpm{,_bk} #备份当前PHP版本的启动脚本
    2.例如:
    php5.5安装路径是/usr/local/php,
    那么安装其它版本的PHP
    5.6=/usr/local/php7
    7.0=/usr/local/php7

    1. 安装php7后,修改php配置文件

    2. php-fpm stop #停止php7启动脚本

    mv /etc/init.d/php-fpm /etc/init.d/php7-fpm #重命名php7启动脚本
    mv /etc/init.d/php-fpm_bk /etc/init.d/php-fpm #恢复php5.5启动脚本

    设置php5.5、php7开机自启动:

    CentOS:

    chkconfig --add php7-fpm
    chkconfig --add php-fpm
    chkconfig php7-fpm on
    chkconfig php-fpm on

    Ubuntu/Debian:

    update-rc.d php7-fpm defaults
    update-rc.d php-fpm defaults
    防止php5.5、php7监听sock冲突,修改php7的listen,更改配置文件/usr/local/php7/etc/php-fpm.conf:
    listen = /dev/shm/php-cgi.sock

    改成

    listen = /dev/shm/php7-cgi.sock
    手工启动php5.5、php7:
    service php-fpm start #启动php5.5
    service php7-fpm start #启动php7

    1. 修改nginx虚拟主机配置文件
      原来的网站默认是运行在php5.5,如需要将网站运行在php7下,需要修改/usr/local/nginx/conf/vhost/www.baidu.com.conf(www.baidu.com改成自己绑定域名):

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

    改成

    fastcgi_pass unix:/dev/shm/php7-cgi.sock;
    重新加载nginx,使配置生效:
    service nginx reload

    注明:apache同样修改

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 09:06:24

    可以用PHPstudy这个集成环境,安装简单,版本也可以容易切换

    回复
    0
  • 取消 回复 发送