天天看點

php5.6源碼安裝及php-fpm配置與nginx內建

lnmp環境的搭建中,現在隻有php沒有源碼安裝過。這篇文章就把這個介紹下。

注意本篇文章使用的centos 6.5 64bit。

登陸centos下載下傳php5.6的安裝包。php的軟體包可以去國内的souhu鏡像站點去下載下傳。

php5.6源碼安裝及php-fpm配置與nginx內建

在安裝之前,我們需要安裝php5.6編譯時所依賴的軟體包。如下:

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

php5.6源碼安裝及php-fpm配置與nginx內建
php5.6源碼安裝及php-fpm配置與nginx內建

以上軟體包安裝完畢後,我們現在來解壓剛剛下載下傳的php5.6源碼包。使用如下指令:

tar -xf php-5.6.2.tar.gz

php5.6源碼安裝及php-fpm配置與nginx內建

進入php5.6的解壓目錄,現在開始配置php5.6,使用如下指令:

cd php-5.6.2

./configure –enable-fpm –enable-mbstring –with-mysql=/usr/local/mysql

php5.6源碼安裝及php-fpm配置與nginx內建

如果沒有錯誤的情況下,配置完畢後。系統會出現如下的提示資訊:

php5.6源碼安裝及php-fpm配置與nginx內建

注意上述指令中–enable-fpm的作用是開啟php的fastcgi功能即開啟php-fpm功能,–with-mysql=/usr/local/mysql是啟用php支援mysql的功能,/usr/local/mysql是mysql資料庫的安裝路徑。

–enable-mbstring表示啟用mbstring子產品mbstring子產品的主要作用在于檢測和轉換編碼,提供對應的多位元組操作的字元串函數。目前php内部的編碼隻支援iso-8859-*、euc-jp、utf-8,其他的編碼的語言是沒辦法在php程式上正确顯示的,是以我們要啟用mbstring子產品。

同時我們也隻是簡單的開啟和擴充php的一部分功能,其他需要的功能,請自行添加。

配置完畢後,我們現在來編譯php,使用make指令,如下:

make

php5.6源碼安裝及php-fpm配置與nginx內建

php編譯的時間比較長,根據機器的性能不同需要等待10-20分鐘左右。編譯完畢後的截圖,如下:

php5.6源碼安裝及php-fpm配置與nginx內建

編譯完畢後,我們現在開始安裝php,使用如下指令:

make install

php5.6源碼安裝及php-fpm配置與nginx內建

安裝完畢後,我們可以通過php –v指令檢視是否安裝成功。如下:

php –v

php5.6源碼安裝及php-fpm配置與nginx內建

通過這樣安裝完畢後,你會發現在/usr/local/lib目錄下沒有php.ini檔案。在這我們就先複制php安裝檔案提供的模版,如下:

cp php.ini-production /usr/local/lib/php.ini

php5.6源碼安裝及php-fpm配置與nginx內建

注意php.ini檔案一般在/usr/local/lib/和/etc目錄下。有關php安裝完畢後,沒有php.ini檔案的,我們再另外一篇文章再介紹。

不要以為到這php的安裝就完畢了,lnmp環境中的nginx是不支援php的,需要通過fastcgi來處理有關php的請求。而php需要php-fpm這個元件來支援。

在php5.3.3以前的版本php-fpm是以一個更新檔包的形式存在的,而php5.3.3以後的php-fpm隻需要在安裝php-fpm開啟這個功能即可。這個也就是前邊,我們再配置php使用到的那個指令–enable-fpm。

php-fpm功能開啟後,我們還需要配置php-fpm。其實php-fpm的配置檔案在安裝php時,已經為我們提供了一個配置檔案的模版。該模版為/usr/local/etc/php-fpm.conf.default,如下:

more /usr/local/etc/php-fpm.conf.default

php5.6源碼安裝及php-fpm配置與nginx內建

我們現在隻需要複制一份該檔案,并重命名為php-fpm.conf,如下:

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

php5.6源碼安裝及php-fpm配置與nginx內建

為了讓php-fpm已服務的形式啟動。我們需要複制php安裝目錄下/sapi/fpm/init.d.php-fpm檔案。如下:

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

php5.6源碼安裝及php-fpm配置與nginx內建

通過上圖,我們也可以很清楚的看到php-fpm檔案目前沒有執行權限。賦予php-fpm執行權限,并啟動php-fpm,如下:

chmod a+x /etc/init.d/php-fpm

/etc/init.d/php-fpm start

netstat -tunlp |grep 9000

php5.6源碼安裝及php-fpm配置與nginx內建

通過上圖,我們可以很明顯的看到php-fpm已經正常啟動。

注意php-fpm預設監聽的是9000端口。

現在再來配置nginx,使其支援php,如下:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param script_filename $document_root$fastcgi_script_name;

include fastcgi_params;

}

php5.6源碼安裝及php-fpm配置與nginx內建

然後在nginx的網站根目錄下建立index.php檔案内容如下:

vi /usr/local/nginx/html/index.php

<?php phpinfo(); ?>

php5.6源碼安裝及php-fpm配置與nginx內建

現在來啟動nginx,如下:

/usr/local/nginx/sbin/nginx

netstat -tunlp |grep 80

php5.6源碼安裝及php-fpm配置與nginx內建

nginx啟動完畢後,現在來通路網站,如下:

php5.6源碼安裝及php-fpm配置與nginx內建
php5.6源碼安裝及php-fpm配置與nginx內建

通過上圖,我們可以很明顯的看到。php目前已經安裝成功,并且也成功的支援mysql資料庫。同時也與nginx內建完畢。

至此。我們的php5.6的安裝到此結束。