【原创】CentOS安装配置PHP5.3、5.6、7.3多版本共存

因为公司有不同的项目存在于php不同版本下开发,重新全部维护修改起来成本太高了,而服务器使用的是centos6的系统,docker版本只能是1.7.1,低版本docker太多功能限制了,连参数-ip指定都不能用。尝试安装成功后发现不够稳定,维护也不方便,又不是做整体微服务。但单单为php搞去升级centos7,所有环境需要重新配置过也太烦了,直接centos6安装多版本php其实也不麻烦,反而更简单好维护。

上官网查找下载各个php版本

https://www.php.net/releases/

https://www.php.net/distributions/php-5.3.29.tar.gz

https://www.php.net/distributions/php-5.6.40.tar.gz

https://www.php.net/distributions/php-7.3.21.tar.gz

首先安装php5.3,进入源文件目录

export PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf
export PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader
tar zxvf php-5.3.29.tar.gz
cd php-5.3.29/
./configure –prefix=/usr/local/php53 –with-config-file-path=/usr/local/php53/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-magic-quotes –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –disable-fileinfo

make ZEND_EXTRA_LIBS=’-liconv’
make install

这里不做详细安装出现问题,顺利话就会在/usr/local/php53安装好php5.3.29

这里举例php5.3.29,5.3因为没有自带缓存加速需要另外单独安装个ZendGuardLoader,其它版本不需要,其它同样照做就可以了。

ln -s /usr/local/php/bin/php /usr/bin/php
ln -s /usr/local/php/bin/phpize /usr/bin/phpize
ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm

复制php系统自带管理脚本文件,可以操作启动、停止等一些系列操作。
cp /php-5.3.29/sapi/fpm/init.d.php-fpm /etc/init.d/php53-fpm
chmod +x /etc/init.d/php53-fpm

同时要编辑php53-fpm文件里面对应的调用php文件,应该都不是按默认的安装,有php53 php56 php73路径问题

本地宿主建议使用sock方式启动性能更高效,只要sock文件名称不同即可,其它文件对应修改单独路径即可,如果使用ip方式也可以,只要修改不同端口,就看你喜欢用哪种。

[global]
pid = /usr/local/php53/var/run/php-fpm.pid
error_log = /data/logs/php/php53-fpm.log
log_level = notice

/usr/local/php53/etc/php-fpm.conf
[www]
;listen = 127.0.0.1:9000
listen = /tmp/php53-cgi.sock
user = www
group = www
listen.owner = www
listen.group = www

如果没设置www组,很有可能就会出现和我同样的502问题

cp php.ini-production /usr/local/php/etc/php.ini

如果扩展so路径不同,记得也在php.ini修改成对应的路径。

最后就是启动了[root@hl-qy ~]# /etc/init.d/php53-fpm restart


如上图成功,假如启动过程失败,可以查看对应日志文件,对应的处理即可。

此条目发表在服务器分类目录,贴了标签。将固定链接加入收藏夹。

发表回复