本地虛擬機已安裝了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)