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

(0)

相关推荐

  • vmware linux系统安装最新的php7图解

    php7比旧版本的性能提高了好多倍,linux通过yum安装php7. 首先我们先检查一下我们之前的php版本,通过yum list installed | grep php,如果没有输出信息说明是没有安装php 如果有安装php,首先卸载之前的php版本,通过命令yum remove php*,卸载php所有的依赖 过yum list |grep php  查看一下php版本,发现现在是5.4的版本. 现在php5.4,如果我们单独安装需要解决一些依赖问题,通过yum来解决依赖问题,通过命令我

  • php中如何执行linux命令详解

    前言 本文主要给大家介绍了关于在php中如何执行linux命令的相关内容,下面话不多说了,来一起看看详细的介绍吧 php如何执行某个命令 ,官方手册在这里 我们先从shell_exec来说 如何使用shell_exec在php里面执行shell命令 先来试一下,使用php执行某个shell命令,该命令是mkdir testdir. <?php $cmd = 'mkdir testdir'; shell_exec($cmd); 在这个php脚本执行之前,目录里面是这样子的: 执行之后,目录里面是如

  • Linux下PHP网站服务器安全配置加固防护方法【推荐】

    PHP被广泛用于各种Web开发.而当服务器端脚本配置错误时会出现各种问题.现今,大部分Web服务器是基于Linux环境下运行(比如:Ubuntu,Debian等). 本文详细总结了PHP网站在Linux服务器上面的安全配置,包含PHP安全.mysql数据库安全.web服务器安全.木马查杀和防范等,很好很强大很安全.(如果需要深入的安全部署建议找专业做安全的国内公司如:Sinesafe,绿盟,启明星辰等等都是比较不错的专业做网站安全的公司) PHP安全配置 1. 确保运行php的用户为一般用户,如

  • Linux基于php-fpm模式的lamp搭建phpmyadmin的方法

    一. 名词简介 1.linux Linux 是免费开源软件,这意味着源代码可用的操作系统. 2. lamp lamp指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台. 3.mysql mysql 是多线程.多用户的SQL数据库管理系统. mysql 已由Oracle公司自 2010 年 1 月 27 日通过SUN购买.SUN 最初于 2008 年 2

  • Linux下 php7安装redis的方法

    安装redis服务 1 下载redis cd /usr/local/ 进入安装目录 wget http://download.redis.io/redis-stable.tar.gz 2 解压安装 tar xvzf redis-stable.tar.gz cd redis-stable make && make install 3 配置redis 拷贝配置文件到/etc/redis/redis.conf cp redis.conf /etc/redis/6379redis.conf vim

  • 将phpstudy中的mysql迁移至Linux教程

    项目目的 将原来windows环境中使用phpstudy搭建的mysql 5.5.53 中的数据迁移至新主机Linux环境中 环境情况 新主机 系统平台: CentOS release 7.4 (Final)             内核  3.10.0-693.el7.x86_64 mysql环境: mysql> status Server version:     5.6.39-log MySQL Community Server (GPL) Server characterset:   

  • Linux系统下为Nginx安装多版本PHP

    我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 & php5.4.44 注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可. 安装PHP # wget http://cn2.php.net/get/php-5.4.44.tar.

  • 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

  • Linux系统下安装PHP7.3版本

    请先安装依赖包 $ yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-

  • 在linux系统下安装redis的方法

    去官网找到合适的版本,可以直接下载下来,再用fxp上传,也可以直接以下面这种方式下载: $ wget http://download.redis.io/releases/redis-3.2.9.tar.gz $ tar xzf redis-3.2.9.tar.gz $ cd redis-3.2.9 $ make 启动服务: $ src/redis-server 测试是否成功: $ src/redis-cli redis> set foo bar OK redis> get foo "

  • 浅析Linux系统下安装wetty和使用说明

    以下内容从wetty简介.环境准备.wetty安装.以及验证方面给大家分析,具体详情请看下文吧. 1. Wetty简介 Wetty是使用Node.js和websockets开发的一个开源Web-based SSH.关于Web-based SSH的更多资料请参考https://en.wikipedia.org/wiki/Web-based_SSH. 而wetty的资料请参考https://github.com/krishnasrinivas/wetty. 2. 环境准备 因为wetty是使用Nod

  • Linux系统下Mysql使用简单教程(一)

    如果你会查询这些相关的问题,说明你是一个正在或者准备从事IT的程序猿,对于一个程序猿而言,不会使用linux系统的程序猿不是一好的程序猿哦!因为windows有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的.so以下都是在linux系统中的使用: 安装mysql命令 :$ sudo apt-get install -y mysql-server 查看mysql的版本命令(注意-V是大写,不然会出现如下错误):$ mysql -V 启动mysql命令(其它关闭,重启等功能只需将star

  • linux系统下hosts文件详解及配置

    hosts文件 hosts -- the static table lookup for host name(主机名查询静态表). hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下.hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名.在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决.通过可以将常用的域名和ip地址映射加入到hosts文件中

  • Linux系统下安装jdbc与tomcat的图文教程

    一.下载Linux版本的jdbc与tomcat 1.1 下载Linux版本的jdbc: 1.1.1 1.1.2 1.1.3 在进行1.1.3操作之前得先勾选我同意协议 1.1.4 下载完成 1.2下载Linux版本的tomcat 1.2.1 1.2.2 1.2.3 下载完成 二.将下载好的两个压缩包解压 如果遇到一些不能操作的问题,得给文件夹或者文件设置权限2.1在Linux 的root根目录下创建software 指令为: 在root目录下会多出 2.2把两个包导入到software中,然后解

  • Linux系统下部署项目的设置方法

    一.修改防火墙设置,开放对应的端口 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 就可以了,其中 8080 是要开放的端口号,然后重新启动linux的防火墙服务 二.安装jdk 1.检查一下系统中的jdk版本 [root@localhost softw

  • 详解linux系统下pid的取值范围

    一般PID_MAX=0x8000(可改),因此进程号的最大值为0x7fff,即32767. 进程号0-299保留给daemon进程. 现在的内核好像没有这个限制了,<linux内核设计与实现>上说为了与老版本的unix和linux兼容,pid的最大值默认是32767(short int的最大值),如果你需要的话还可以不考虑和老版本兼容,修改/proc/sys/kernel/pid_max来提高上限用echo重新写入一个数值到这个文件即可. 由于一般机器不可能同时跑那么多进程+线程,所以3276

随机推荐