CentOS 7.3(1611)編譯安裝PHP7

在linux環境下php的安裝有很多LNAMP一鍵安裝包,可以自動編譯安裝好完整的環境,這篇文章主要介紹的是手動編譯安裝PHP7的方法。

依賴環境

php本身是c和c++編寫的程序,想要正確運行和編譯安裝php我們是需要php基礎依賴的。所以我們在centos當中打開terminal輸入:

sudo yum install gcc gcc-c++ libxml2-devel

上面這條命令是通過yum安裝c和c++的語言環境,后面libxml2-devel是一個C語言操作xml的庫,這樣PHP也就可以操作xml了。以上三個軟件都是PHP必須的依賴。centos7.3版本當中c和c++默認都是安裝好的。

下載PHP

這里我們想要通過wget通過PHP源碼的鏡像鏈接來下載PHP如果centos里沒有wget我們需要安裝一下:

sudo yum install wget

登陸PHP下載的網址 http://php.net/downloads.php

下載PHP

找到對應的鏡像,右鍵復制鏈接地址這里下載的鏡像是PHP7
http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror

最后通過wget下載這個地址里解析出來的文件就可以了。

wget http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror

下載好以后,我們輸入:

ls

可以在目錄里面看到一個mirror文件,這里面就包含我們剛剛下載的PHP源碼了。

PHP7源碼

注意:如果你用windows下載這個文件的話,文件會保存成名字為php-7.1.0.tar.gz。因為windows需要根據文件的后綴名來判斷這個文件使用什么樣的應用程序打開,但是在linux這就是無所謂的事情了,即便文件的名字的變成了mirror我們仍然可以使用tar軟件來解壓這個文件。這是linux和windows的一個小差異。

解壓

我們在當前目錄輸入:

tar -zvxf mirror

centos就會將我們剛剛下載的PHP7解壓到當前目錄。ls查看我們會看到一個php7的文件夾。

php7目錄

配置

在安裝之前我們需要配置一下編譯時候的參數。這里需要用到configure腳本命令。configure命令是為了方便編譯安裝設置所使用的命令,linux大部分編譯安裝的軟件可能都會用到這個命令,大家可以想象windows下安裝軟件我們要一直點下一步下一步,每一個窗口都要設置一些參數,比如如何安裝,文件安裝到什么地方。configure命令就是做這些事情的,相對的它更加強大一些。編譯安裝PHP的過程當中我們需要使用configure命令配置安裝路徑以及開啟fpm。
cd到php7源碼的根目錄下

./configure --prefix=/usr/local/php7 --enable-fpm

configure命令后面的參數--prefix的意思是指定軟件安裝的目錄,linux用戶自己安裝的軟件一般放到/usr/local/目錄當中,這只是一件約定成俗的事情,你也可以將軟件編譯安裝到你想放的位置。
后面的 --enable-fpm是開啟PHP-fpm功能的一個參數,使用nginx的時候我們會用到這個功能,所以在別的文章里再介紹它。

編譯

還是要在PHP7源碼的根目錄下我們使用make進行編譯

make

然后等系統自動編譯就行了,這個要等好一會。編譯完成會顯示complete字樣。
這里說說make,make是GUN提供的一種方便編譯C語言的工具,如果沒有可以通過

sudo yum install make

來安裝。

安裝

還是在PHP7源碼根目錄當中

sudo make install

之后系統會將PHP安裝在之前configure配置的目錄當中。

測試

我們創建一個test.php文件用于測試我們的PHP是否安裝成功并且可以使用。

vim test.php

test.php當中的代碼

<?php
phpinfo();

然后用PHP執行這個文件

/usr/local/php7/bin/php test.php

/usr/local/php7/bin/php是為了定位PHP程序的位置,如果你在安裝結束以后配置了PHP的環境變量,可以直接使用PHP test.php來運行PHP文件。

測試PHP是否安裝成功

如果出現如圖所示的一堆PHP7環境變量的提示就說明PHP安裝成功了。

總結

在linux環境下編譯安裝PHP的時候沒什么技術難點,本質上和其他編譯安裝的軟件流程基本是一樣的。注意該開啟的參數開啟比如fpm。否則又要重新編譯安裝這樣就很麻煩了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容