Centos多版本php共存

需求场景:服务器有几个较老的应用占用了php,且版本不可向上兼容,新的项目需要高版本的php才能支持。

实现其实比较简单,php-fpm可以指定端口(默认9000),修改nginx fastcgi_pass指向对应的端口即可。

这里记录2种不同的安装方式:一种是通过yum安装,另外一种是从官网下载源码编译安装。

安装php7

# 安装yum源
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 查看可安装的版本
yum list | grep php
# 安装指定版本
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysqlnd.x86_64 php70w-pdo.x86_64
# 开启php-fpm
/usr/sbin/php-fpm
# 重启php-fpm
ps aux|grep php-fpm
kill -SIGUSER2 xx(php_master_id)

安装php7.2.19

1.去官网下载压缩包,上传到服务器解压文件,并进入

# 或者直接通过服务器下载源文件安装
wget http://cn2.php.net/distributions/php-7.2.19.tar.gz
# 解压(下面下载文件默认是在usr/local文件夹下)
tar -zxvf php-7.2.19.tar.gz
# 进入
cd php-7.2.19

2.配置安装参数

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir=/usr/include/freetype2/freetype --with-gd --with-gettext \--with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-fileinfo --disable-inline-optimization

3.编译安装

make && make install

4.生成配置文件

# 生成php.ini
cp php-7.2.19/php.ini-development /usr/local/php7/lib/php.ini
# 生成www.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
# 生成php-fpm.conf
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

5.修改php-fpm的端口

vi /usr/local/php7/etc/php-fpm.d/www.conf
# 修改其中的listen 127.0.0.1:9000 端口为9001
# user 和user_group根据情况修改

6.修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf
# 修改其中某个站点的fastcgi_pass 127.0.0.1:9000 端口为9001

7.开启第二个php-fpm,并重启nginx

/usr/local/php7/sbin/php-fpm
/usr/local/nginx/sbin/nginx -s reload

相关推荐