1. 程式人生 > >PHP多版本共存:php5.6與php5.5共存

PHP多版本共存:php5.6與php5.5共存

續:
php多版本共存,需要使用php-fpm來執行php方便,這樣更方便配置和管理
準備工作:
建立PHP5.6的相關目錄,不要與已安裝的php5.5的目錄相同

mkdir /usr/local/php56  安裝目錄 
mkdir /etc/php56      配置檔案存放目錄

原始碼包下載:

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

解壓,編譯安裝php

tar xvf php-5.6.30.tar.gz
cd php-5.6.30
所有配置引數與上一個php5.5的完全相同,只有安裝的目錄和配置檔案目錄不同。
./configure \
--prefix=/usr/local
/php56 \
--with-config-file-path=/etc/php56 \ --with-apxs2=/usr/local/apache/bin/apxs \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-opcache \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \
--with-gettext \ --enable-mbstring \ --with-iconv \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl \ --with-zlib \ --enable-zip \ --with-bz2 \
--with-readline \ --without-sqlite3 \ --without-pdo-sqlite \ --with-pear make && make install

以上都順利安裝完成
配置php-fpm

拷貝配置檔案,在安裝目錄裡
cd /usr/local/php56
cp etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf 
修改配置檔案
vim php-fpm.conf
將listen = 127.0.0.1:9000 改為listen = 127.0.0.1:9056
與php5.59000埠區別開,防止埠衝突

拷貝服務指令碼,在原始碼包裡
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php56-fpm
# chmod +x /etc/init.d/php56-fpm

啟動php-fpm

 service php-fpm start
 監聽埠為:9056

nginx 切換php版本只需修改nginx.conf即可
php5.5 php-fpm 監聽埠為:9000
php5.6 php-fpm監聽埠為:9056

vim /etc/nginx/nginx.conf
將fastcgi_pass   127.0.0.1:9000;修改為
  fastcgi_pass   127.0.0.1:9056;
  重啟nginx,開啟phpinfo

這裡寫圖片描述
已經成功切換為php5.6

apache切換PHP版本:
由於之前是用php mod來執行php,php作為apache的一個模組來執行。如果想要使用多版本切換,就不能再用php mod來運行了,必須要用php-fpm執行,然後和Apache關聯。

修改配置檔案

vim /etc/httpd/httpd.conf

首先註釋掉以下內容(這是用php mod與PHP關聯的)

#LoadModule php5_module modules/libphp5.so
#<FilesMatch \.php$> 
   #SetHandler application/x-httpd-php
#</FilesMatch>

然後去掉以下兩行的註釋,開啟代理功能

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

再新增下面內容,使用php-fpm與PHP關聯

<FilesMatch \.php$>
         SetHandler "proxy:fcgi://127.0.0.1:9056"
</FilesMatch>

重啟apache服務,開啟phpinfo
這裡寫圖片描述
成功切換為php5.6
致此全部完成,nginx和apache全都可以正常切換PHP版本