centos6.5 運行多個PHP版本

背景:

老服務器已經有幾個項目在運行,PHP的環境配置是:php

系統:CentOS 6.5 64位html

nginx:1.0.15mysql

php:5.3nginx

如今要上新項目,又不能影響舊項目的運行,新項目使用PHP7開發,所以要在系統中安裝php7,使系統同時支持php5.3和php7。web

安裝php7

1.下載php7:sql

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

2.解壓api

tar -zxvf php-7.0.4.tat.gz

3.進入解壓後的目錄服務器

cd php-7.0.4

4.安裝依賴包php7

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目錄下curl

./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

相關文章
相關標籤/搜索