centos6.5 运行多个PHP版本

背景:

老服务器已经有几个项目在运行,PHP的环境配置是:

系统:CentOS 6.5 64位

nginx:1.0.15

php:5.3

现在要上新项目,又不能影响旧项目的运行,新项目使用PHP7开发,因此要在系统中安装php7,使系统同时支持php5.3和php7。

安装php7

1.下载php7:

wget http://cn2.php.net/distributions/php-7.0.4.tar.gz

2.解压

tar -zxvf php-7.0.4.tat.gz

3.进入解压后的目录

cd php-7.0.4

4.安装依赖包

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

5.编译安装到/usr/local/php7目录下

./configure --prefix=/usr/local/php7 \
 --with-curl \
 --with-freetype-dir \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-xmlrpc \
 --with-xsl \
 --with-zlib \
 --enable-fpm \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip

6.如果有configure error信息则根据error分别安装依赖包,如果没有error信息,就可以执行下边的安装了:

make &&  make install

7.配置php-fpm,分别复制和配置以下

 cp php.ini-development /usr/local/php7/lib/php.ini
 cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
 cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
 cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm7

8.创建软连接,这样以后php-v 显示的是原来的PHP,php7 -v显示的是php7的相关信息

ln -s /usr/local/php7/bin/php /usr/bin/php7

9.配置www.conf,打开在/usr/local/php7/etc/php-fpm.d/www.conf,修改大约36行的listen = 127.0.0.1:9001

171432_4L8Z_2544569.png

10.启动php7

/etc/init.d/php-fpm7

11.查看是否启动成功

ps -aux|grep php

12.修改nginx的配置文件(有的每个项目有一个配置文件),如存放在nginx/conf.d/aaa.conf,       nginx/conf.d/bbb.conf,一般修改fastcgi_pass

#默认使用原来的php运行  
server {  
    listen       80;  
    server_name *.test.com;  
    location / {  
        root  /usr/nginx/html/my_project;  
        index index.php index.html index.htm;  
    }  
    location ~ \.php$ {  
        root           /usr/nginx/html/my_project;  
        fastcgi_pass   127.0.0.1:9000;  
        fastcgi_index  index.php;  
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;   
        include        fastcgi_params;  
    }  
}  
  
#project2使用php7运行  
server {  
    listen       80;  
    server_name project2.test.com;  
    location / {  
        root  /usr/nginx/html/project2;  
        index index.php index.html index.htm;  
    }  
    location ~ \.php$ {  
        root           /usr/nginx/html/project2;  
        fastcgi_pass   127.0.0.1:9001;  
        fastcgi_index  index.php;  
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;   
        include        fastcgi_params;  
    }  
} 

13.重启web服务

service nginx restart

phpinfo

172242_eY2u_2544569.png

 

遇到的问题:

1.下载路径,有的教程是键入这个:wget http://cn2.php.net/get/php-7.0.4.tar.gz/from/this/mirror

但是我看到下载了mirror,下一步解压php-7.0.4.tar.gz的话提示无此文件,所以直接使用wget http://cn2.php.net/distributions/php-7.0.4.tar.gz

2.先安装软件开发依赖包再编译安装,否则可能报错

3.编译命令./configure这一大段直接复制粘贴到命令窗口就行,注意格式,如果粘贴过去不行,先放到一TXT文件再复制粘贴,编译命令解释
configure --prefix=/指定安装路径
不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
指定prefix,直接删掉一个文件夹就够了

--prefix指的是安装路径,--with指的是安装本文件所依赖的库文件。

4.注意/etc/init.d/php-fpm7 的文件权限,可能要修改chmod +x /etc/init.d/php-fpm7

转载于:https://my.oschina.net/u/2544569/blog/1544359

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值