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源码包。
通过源码安装
# 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 = 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/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
# 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版本监听端口或进程名
相关文章
Linux 出现telnet: 127.0.0.1: Connection refused错误解决办法
这篇文章主要介绍了Linux 出现telnet: connect to address 127.0.0.1: Connection refused错误解决办法的相关资料,需要的朋友可以参考下2017-05-05Linux下安装Python3和django并配置mysql作为django默认服务器方法
下面小编就为大家带来一篇Linux下安装Python3和django并配置mysql作为django默认服务器方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-10-10Windows 配置Apache以便在浏览器中运行Python script的CGI模式
在前面的我的一篇文章中 “Windows XP下的Python 首次安装配置和使用 ”谈到当想在Apache服务器下运行Python script的时候,发现Apache的mod_python版本还不支持Python 2.6更别说3.0.1了,只有2.5之下的,折腾着卸载和安装,最后还没搞定,就先搁一边了。2009-07-07Ubuntu 18.04上安装 phpMyAdmin的详细教程
这篇文章主要介绍了Ubuntu 18.04上安装 phpMyAdmin的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的
VPS(全称Virtual Private Server)是利用最新虚拟化技术在一台物理服务器上创建多个相互隔离的虚拟私有主机。它们以最大化的效率共享硬件、软件许可证以及管理资源。2008-12-12
最新评论