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

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源码包。

通过源码安装

?
1
2
3
4
5
6
7
8
# 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 配置

?
1
2
3
4
5
6
7
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_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 配置

?
1
# vim /usr/local/php/etc/php-fpm.conf
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

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

启动 php-fpm

?
1
2
3
# 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

?
1
2
3
4
5
6
7
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 开机自动启动

?
1
2
# 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版本监听端口或进程名

原文链接:https://blog.csdn.net/gxdvip/article/details/51787476

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Nginx内网单机反向代理的实现

2023-3-22 3:43:41

建站知识

小知识:Linux系统下为Nginx安装多版本PHP

2023-3-22 3:52:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索