2019独角兽企业重金招聘Python工程师标准>>>
背景:
老服务器已经有几个项目在运行,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
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