您的位置:首页 > 运维架构 > Linux

centos6.5 运行多个PHP版本

2017-09-27 00:00 260 查看
摘要: linux 系统安装多个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[/code] 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



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



遇到的问题:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php7 版本