背景说明自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。现有环境是lnmp - CentOS 6.7 - nginx 1.10.1 - mariadb-10.0.26 - php 5.4.29为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。

背景说明

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

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

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

开始安装

Linux下多版本PHP共存需要自己手工编译安装。

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

wget http://cn2.php.net/get/php-5.3.28.tar.bz2/from/this/mirror -O php-5.3.28.tar.bz2
wget http://cn2.php.net/get/php-5.4.29.tar.bz2/from/this/mirror -O php-5.4.29.tar.bz2
wget http://cn2.php.net/get/php-5.5.38.tar.bz2/from/this/mirror -O php-5.5.38.tar.bz2
...

通过源码安装

tar xzvf php-5.5.38.tar.gz
cd php-5.5.38

./configure --prefix=/usr/local/php5.5.38 --with-config-file-path=/usr/local/php5.5.38/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/php5.5.38/etc/php.ini

php.ini 配置

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 配置

vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php5.5.38/var/run/php-fpm.pid
error_log = /usr/local/php5.5.38/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php5.5.38-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9002
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

cp sapi/fpm/init.d.php-fpm /etc/init.d/php5.5.38-fpm
chmod +x /etc/init.d/php5.5.38-fpm
/etc/init.d/php5.5.38-fpm start

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

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

配置php-5.5.38 的php5.5.38-fpm 开机自动启动

chkconfig --add php5.5.38-fpm
chkconfig php5.5.38-fpm on


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



上一篇:视频播放插件Video.js使用教程API

下一篇:html5 canvas自由拼图

评论列表
发表评论
称呼
邮箱
网址
验证码(*)
热评文章
相关阅读