CentOS7 安裝多版本php

本地虛擬機已安裝了php7.2版本,現在想再安裝個php7.0,操作如下:

一.php7.0編譯安裝

  1.1 首先下載並解壓php安裝包 php下載地址           

//首先,進入/var/lnmp 目錄, 沒有的 mkdir lnmp 創建
cd /var/lnmp

//下載: 
wget http://php.net/get/php-7.0.29.tar.gz/from/a/mirror 

//解壓:(tar 解壓命令 -x 解壓 -v 顯示所有過程 -f 使用檔案名字)    
tar -xvf mirror

  1.2  安裝

   這個時候你已經得到了解壓後的php安裝包, 可以 使用命令: ll 查看 進入解壓後的文件夾:

cd php-7.0.29/

  1.3安裝常用的依賴: 

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

  1.4配置php (現在只是安裝一下必要的擴展,等你需要額外的擴展完全可以以後再安裝): 

./configure --prefix=/usr/local/php70 --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo -enable-tokenizer --enable-zip


  注意 這個地方會很容易出現錯誤,你只要注意configure error並百度安裝相對應的環境就可以了

--prefix=/usr/local/php70 這個是你的安裝目錄

--with-mysqli 這個是mysqli擴展

--with-fpm-user=nginx fpm用戶

--with-fpm-group-nginx fpm用戶組

當你看到如下頁面就代表php7.0可以安裝了:

1.5執行命令:

make && make install

1.6生成php.ini配置

cp /var/lnmp/php-7.0.29/php.ini-development /usr/local/php70/lib/php.ini

//測試php7.0版本
vim /etc/profile
 
//在結尾添加
PATH=$PATH:/usr/local/php70/bin
export PATH
 
//保存後運行
source /etc/profile
 
//執行命令
php -v

//測試完畢!

1.7生成配置

 將啓動文件加入systemctl,複製到系統文件夾中:

cp /var/lnmp/php-7.0.29/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm70.service
//1.生成 php-fpm.conf 配置
cd /usr/local/php70/etc/

//複製默認文件
cp php-fpm.conf.default php-fpm.conf

//2.生成 www.conf 配置
cd /usr/local/php70/etc/php-fpm.d

//複製默認文件
cp www.conf.default www.conf

//編輯文件,將其中user = nginx group = nginx 改爲 user = nobody group = nobody
vim www.conf
//修改user,group
user = nobody
group = nobody

1.8把php-fpm70加入init.d

cp -R /var/lnmp/php-7.0.29/sapi/fpm/php-fpm /etc/init.d/php-fpm70

1.9修改php-fpm.conf的偵聽端口爲9001,因爲主版本7.2是偵聽9000

//進入php-fpm.d目錄
cd /usr/local/php70/etc/php-fpm.d

//進入www.conf
vim www.conf

//把listen = 127.0.0.1:9000的端口號改爲9001
listen = 127.0.0.1:9001

如圖:

2.1啓動php-fpm70: 

/etc/init.d/php-fpm70 或者 systemctl start php-fpm70.service

2.2此時可以通過ps -aux|grep php查看進程是否啓動成功:

2.3把服務加入開機自啓:

systemctl enable php-fpm70

二.配置nginx: 

1.配置/etc/nginx/conf.d/default.conf

vim /etc/nginx/conf.d/default.conf


server{
        listen       81;
        server_name  www.tester-lnmp70.com.cn tester-lnmp70.com.cn;
        root   /var/www/html/php70;
        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
        }   
        location ~ \.php(.*)$ {
            root /var/www/html/php70;
            fastcgi_pass   127.0.0.1:9001;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;  
        }   
}

2.開放81,9001端口,如下類似:

//查看81端口是否開啓
firewall-cmd --query-port=81/tcp
 
//查看80端口被誰佔用:
netstat -lnp|grep 81
 
//開啓81端口
firewall-cmd --add-port=81/tcp --permanent   # --permanent 永久生效,沒有此參數重啓後失效
 
//關閉81端口
firewall-cmd --remove-port=81/tcp --permanent   # --permanent 永久生效,沒有此參數重啓後失效
 
// firewalld 基本使用
啓動: systemctl start firewalld
查看狀態: systemctl status firewalld
停止: systemctl disable firewalld

 3.重啓nginx,php-fpm,php-fpm70:

systemctl restart nginx.service
systemctl restart php-fpm.service
systemctl restart php-fpm70.service

4.查看:

netstat -ntlp
ps -aux| grep php
ps -aux| grep php-fpm

三.訪問

1.訪問php7.0版本, www.tester-lnmp70.com.cn(你的域名):

配置站點:

//進入/var/www/html/php70,沒有目錄的自行創建mkdir
cd /var/www/html/php70

// 生成index.php
vim index.php

//編輯index.php
<?php

echo phpinfo();

//Esc鍵 :wq 退出

訪問,如圖:

注意: 如果出現502錯誤:

 

 

查看錯誤日誌:

//找到nginx錯誤日誌, 我的在/var/log/nginx/error.log,查看:
cd /var/log/nginx
tail -f error.log

// 發現錯誤如下:
*61 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.3.119, server: www.tester-lnmp70.com.cn, request:

 

經過一番檢查以及google,應該是SeLinux的導致的,處理方法: 

一.關閉SeLinux:

查看SELinux狀態:

//查看SELinux狀態
/usr/sbin/sestatus -v 

// 或者也可以用這個命令檢查
getenforce 

//如果SELinux status參數爲enabled即爲開啓狀態

關閉SELinux:

1.臨時關閉(不用重啓機器):

//設置SELinux 成爲permissive模式: setenforce 0 
setenforce 0               
   
//setenforce 1 設置SELinux 成爲enforcing模式

2.永久關閉(修改配置文件需要重啓機器):

//修改/etc/selinux/config 文件,將SELINUX=enforcing改爲SELINUX=disabled,重啓機器即可
vim /etc/selinux/config

SELINUX=disabled

//Esc :wq  編輯後,退出

//重啓
reboot

二.運行以下的命令

setsebool -P httpd_can_network_connect 1

至此,安裝多版本php完畢!

上一篇: CentOS7搭建Lnmp環境 (php7.2 + mysql5.7 +nginx1.8)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章