記一次安裝多版本php的四個雷區,你踩着了嗎

                     記一次安裝多版本的php的四個雷區,你踩着了嗎php

 

需求:公司須要在同一臺服務器上安裝不一樣版本的php,而這一臺的服務上已經安裝了php.7.1,現須要同時存在兩個版本,而另外一個版本爲php5.六、mysql

 

原版本的php是使用一鍵安裝工具oneinstack來裝的 工具下載可參考官網:https://oneinstack.com/install/nginx

 

(如下安裝都是以oneinstack來安裝)sql

1、安裝另外一個版本php5.6vim

注意如下是正確的安裝,遇到的坑下面再說bash

1、 安裝php5.6服務器

由於之前的php也是使用oneinstack安裝的因此啓動文件是是php-fpm,咱們須要修改php-fpm文件名,防止再次安裝被覆蓋。php7

中止本地的php7.1composer

#service php-fpm stop

                   

更改php-fpm啓動文件名ide

#mv /etc/init.d/php-fpm   /etc/init.d/php-fpm.bk


 

2、修改oneinstack的options.conf文件

使用oneinstack工具安裝,每次都會讀取options.conf這跟文件,而後再安裝,因此須要修改該文件的php路徑,不然會提示,已經安裝

進入options.conf文件

#vim /root/oneinstack/options.conf


php_install_dir=/usr/local/php 改成

php_install_dir=/usr/local/php56

 

3、執行安裝腳本安裝

#./install.sh


1.png

而後是漫長的等待

4、修改php配置文件

咱們須要先中止剛剛安裝php-fpm由於使用oneinstack默認安裝完自動啓動

中止php5.6

#service php-fpm stop


把php-fpm更改爲php5-fpm ,變成php5.6的啓動文件                                     

#mv /etc/init.d/php-fpm /etc/init.d/php5-fpm


恢復本地php7.1啓動腳本             

mv /etc/init.d/php-fpm.bk /etc/init.d/php-fpm

             

5、設置php5.六、php7.1開機自啓動:

 

#chkconfig --add php5-fpm
#chkconfig --add php-fpm


#chkconfig php5-fpm on
#chkconfig php-fpm on


 

6、修改sock的衝突文件,防止啓動衝突

更改php5.6的配置文件就好

#vim /usr/local/php56/etc/php-fpm.conf
:


listen = /dev/shm/php-cgi.sock


修改成:                

listen = /dev/shm/php5-cgi.sock

             

 

7、修改php的環境變量

vim /etc/profile


去到最後一行

export PATH=/usr/local/php56/bin:/usr/local/php/bin:$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:$PATH


改成

export PATH=/usr/local/php/bin:/usr/local/php/bin:$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:$PATH


這個爲何要改呢,由於php5.6版本,在我執行一些命令的時候,出現錯誤(原項目一直用的是php7.1的,就須要改,這是一個大坑,下面再說)

8、重啓php服務

啓動php7.1

#service php-fpm start


啓動php5.6

#service php5-fpm start


9、查看多版本運行狀況

以下圖:

 2.png

安裝完成

2、容易的踩到的雷區及解決辦法

雷區1、沒有備份php-fpm文件,直接安裝

    過程緣由:

    第一安裝的時候,可把我給害慘了,沒有對oneinstack用的很熟練而後就直接安裝了,致使一會兒忘記把php-fpm備份

    結果:

    安裝完後,發現,原來的php-fpm文件給覆蓋了,致使把原來的php7.1重裝。

雷區2、沒有修改php-fpm.conf文件就啓動php

    過程緣由:

直接啓動php7.1,再啓動5.6,發現啓動不了,搞了好久,才發現原來是php-cgi.sock文件佔用問題

    結果:

    把php56目錄下的的php-fpm.conf文件的php-cgi.sock配置改爲php5-cgi.sock後,重啓,完畢。

雷區3、沒有修改環境變量

過程緣由

    由於安裝php5.6或,隨着就會更改環境變量的文件/etc/profile的變量環境目錄,會把原來的/usr/local/php改成/usr/local/php56,這個更改,致使個人一些命令執行出錯,好比composer,php等等。

  結果:

    把/etc/profile的/usr/local/php56改成/usr/local/php,執行php -v,發現版本回來了,命令執行也能夠了。

 

 

雷區4、 修改nginx虛擬主機應用php版本

   過程緣由

   oneinstack執行./vhost.sh腳本建立虛擬主機是,默認是默認調用php的接口是的php-cgi.sock文件,而個人新的項目上,是調用php5.6。

   結果:

把新建完的虛擬主機所調用的php接口改成fastcgi_pass unix:/dev/shm/php-cgi.sock; 改成fastcgi_pass unix:/dev/shm/php5-cgi.sock;從新新加載nginx,項目部署成功。

3、總結

    一個服務的多版本問題,主要考慮的是的兼容性,當咱們在一臺服務器上安裝多個版本的服務,咱們須要有足夠的把握,纔去部署,你能夠在本地安裝測試完再部署到線上的環境,另外,對一些熱門的軟件,須要要熟練的掌握才行,避免操做出錯。

相關文章
相關標籤/搜索