在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
找到對應的鏡像,右鍵復制鏈接地址這里下載的鏡像是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源碼了。
注意:如果你用windows下載這個文件的話,文件會保存成名字為php-7.1.0.tar.gz。因為windows需要根據文件的后綴名來判斷這個文件使用什么樣的應用程序打開,但是在linux這就是無所謂的事情了,即便文件的名字的變成了mirror我們仍然可以使用tar軟件來解壓這個文件。這是linux和windows的一個小差異。
解壓
我們在當前目錄輸入:
tar -zvxf mirror
centos就會將我們剛剛下載的PHP7解壓到當前目錄。ls查看我們會看到一個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文件。
如果出現如圖所示的一堆PHP7環境變量的提示就說明PHP安裝成功了。
總結
在linux環境下編譯安裝PHP的時候沒什么技術難點,本質上和其他編譯安裝的軟件流程基本是一樣的。注意該開啟的參數開啟比如fpm。否則又要重新編譯安裝這樣就很麻煩了。