首页 > 服务器 > Linux服务器 > 正文

Linux系统下多版本php共存的解决方案(超简单)

2024-09-05 23:05:10
字体:
来源:转载
供稿:网友

自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。

现有环境是lnmp 
- CentOS 6.7 
- nginx 1.10.1 
- mariadb-10.0.26 
- php 7.0.8

为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。

开始安装

首先要下载php-5.4.45.tar.gz源码包。

通过源码安装

 

# tar xzvf php-5.4.45.tar.gz# cd php-5.4.45# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/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=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --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 --with-gettext --disable-fileinfo --enable-intl --with-xsl# make ZEND_EXTRA_LIBS='-liconv'# make install# cp php.ini-production /usr/local/php/etc/php.ini

php.ini 配置

 

post_max_size = 50Mupload_max_filesize = 50Mdate.timezone = PRCshort_open_tag = Oncgi.fix_pathinfo=0max_execution_time = 300disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

php-fpm.conf 配置

# vim /usr/local/php/etc/php-fpm.conf
[global]pid = /usr/local/php54/var/run/php-fpm.piderror_log = /usr/local/php54/var/log/php-fpm.loglog_level = notice[www]listen = /tmp/php54-cgi.socklisten.backlog = -1listen.allowed_clients = 127.0.0.1:9001listen.owner = wwwlisten.group = wwwlisten.mode = 0666user = wwwgroup = wwwpm = dynamicpm.max_children = 40pm.start_servers = 20pm.min_spare_servers = 20pm.max_spare_servers = 40request_terminate_timeout = 100request_slowlog_timeout = 0slowlog = var/log/slow.log

注意:重点是配置监听端口和进程

启动 php-fpm

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm# chmod +x /etc/init.d/php54-fpm# /etc/init.d/php54-fpm start

修改nginx配置,对需要的服务配置使用php-5.4.45

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

配置php-5.4.45 的php54-fpm 开机自动启动

# chkconfig --add php54-fpm# chkconfig php54-fpm on

chkconfig 功能说明:检查,设置系统的各种服务。 
语法:chkconfig [–add][–del][–list][系统服务] 
chkconfig [–level <等级代号>][系统服务][on/off/reset]

本方案的重点是

每个PHP版本都要安装在新的独立的文件夹里

每个PHP版本的php-fpm.conf配置文件都需要设置不同的进程名和监听端口

nginx配置文件中指定要使用的PHP版本监听端口或进程名


注:相关教程知识阅读请移步到服务器教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表