美文网首页
php多版本共存

php多版本共存

作者: xxuuq | 来源:发表于2019-10-09 17:58 被阅读0次

    环境

    • mac Cataline下使用brew方式安装
    • nginx
    • php5.6和php7.2

    安装brew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    安装php

    在 Mac Mojave 系统之后,brew 中移除了 \color{red}{php5.6}\color{red}{php7.0} ,使用 brew search php 搜索出来的php版本最低是 php@7.1 ,所以有相关需求的可以按照下面方法安装。
    我们这里安装\color{red}{php5.6}\color{red}{php7.2} 为例

    1. 添加第三方仓库
    brew tap exolnet/homebrew-deprecated
    

    查看是否添加上第三方库

    brew tap
    
    brew查看是否添加第三方库.png

    搜索可安装php版本

    brew search php
    
    搜索可安装php版本.png
    1. 安装php@5.6
    brew install php@5.6
    
    1. 安装php@7.2
    brew instatll php@7.2
    

    查看php是否安装成功

    brew list | grep php
    
    查看php是否安装成功
    php@5.6php@7.2代表安装成功
    启动php-fpm
    brew services start php@5.6
    brew services start php@7.2
    

    查看php-fpm进程

    brew services restart php@5.6
    
    查看php-fpm进程.jpg
    可以看到php@5.6php@7.2两个共存

    配置php-fpm.conf修改

    首先分别查看\color{red}{php5.6}\color{red}{php7.2}php-fpm.conf 文件位置

    brew info php@5.6
    brew info php@7.2
    
    查看php@5.6 php-fpm配置文件位置.jpg
    查看php@7.2 php-fpm配置文件位置.jpg

    可以看到php@5.6的php-fpm配置文件地址为/usr/local/etc/php/5.6/
    可以看到php@7.2的php-fpm配置文件地址为/usr/local/etc/php/7.2/
    分别修改php@5.6和php@7.2的php-fpm.conf里listen

    listen = 127.0.0.1:9000 //php@5.6 的 php-fpm.conf 修改
    listen = 127.0.0.1:9001 //php@7.2 的 php-fpm.conf 修改
    

    配置nginx.conf修改

    location ~ \.php$ {
               fastcgi_pass 127.0.0.1:9000;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME /Users/xxuuq/www/ZH/btm$fastcgi_script_name;
               include fastcgi_params;
               try_files $uri =404;
           }
    

    项目中使用什么版本php只要修改fastcgi_pass项,修改为对应的php版本即可。

    重启nginx和php-fpm

    brew services restart nginx
    brew services restart php@5.6
    brew services restart php@7.2
    

    php扩展安装

    安装扩展的方式多种,这里介绍编译安装后在php.ini设置extension扩展。
    不同php版本安装扩展的版本也是不同的,
    比如安装redis扩展,根据php版本下载redis包并解压进入解压目录

    依次执行

    phpize
    ./configure --with-php-config=/usr/local/opt/php@5.6/bin/php-config //--with-php-config 不同php版本不同
    make && make install
    

    编译好的文件在modules目录下 redis.so
    查看php扩展目录,phpinfo()extension_dir
    比如我的是

    extension_dir   /usr/local/lib/php/pecl/20131226
    

    复制出来放到extension_dir目录下,

    cp modules/redis.so /usr/local/lib/php/pecl/20131226/
    

    在php.ini中添加设置

    extension = /usr/local/lib/php/pecl/20131226/redis.so
    

    重启php-fpm即可。
    如果找不到php-config在哪,可以通过find查找

    find / -name php-config
    
    composer

    composer 因为php版本不同而不能公用,可以在 composer官网 下载 composer.phar保存到本地。
    创建别名

    vim ~/.bash_profile
    //添加如下两行
    alias composer5='/usr/local/opt/php@5.6/bin/php  /usr/local/composer/composer.phar'
    alias composer7='/usr/local/opt/php@7.2/bin/php  /usr/local/composer/composer.phar'
    

    使设置的别名生效

    source ~/.bash_profile
    

    使用时

    composer5 install ***
    composer7 install ***
    

    相关文章

      网友评论

          本文标题:php多版本共存

          本文链接:https://www.haomeiwen.com/subject/dktgpctx.html