溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

爛泥:php5.6源碼安裝與apache集成

發(fā)布時間:2020-02-25 02:16:30 來源:網(wǎng)絡(luò) 閱讀:1459 作者:爛泥行天下 欄目:web開發(fā)

本文首發(fā)于爛泥行天下。

apache對php的支持是通過apache的mod_php5模塊來支持的,這點與nginx不同。nginx是通過第三方的fastcgi處理器才可以對php進行解析,有關(guān)nginx與php集成,請看《爛泥:php5.6源碼安裝及php-fpm配置與nginx集成》。

如果源碼編譯安裝php的話,需要在編譯時指定--with-apxs2=/usr/local/apache2/bin/apxs表示告訴編譯器通過apache的mod_php5模塊來提供對php的解析。

同時php安裝的最后一步make install時,我們會看到將動態(tài)鏈接庫libphp5.so拷貝到apache2的安裝目錄的modules目錄下,并且還需要在httpd.conf配置文件中添加LoadModule語句來動態(tài)將libphp5.so模塊加載進來,從而實現(xiàn)Apache對php的支持。

php與apache集成需要以下幾個步驟:

1、安裝libiconv庫

2、php源碼安裝

3、配置apache使其支持php

4、測試php

一、安裝libiconv庫

libiconv庫為需要做轉(zhuǎn)換的應(yīng)用程序提供了一個iconv命令,以實現(xiàn)一個字符編碼到另一個字符編碼的轉(zhuǎn)換,比如它可以將UTF8編碼轉(zhuǎn)換成GB18030編碼,反過來也行。

php與apache集成時一定要安裝libiconv庫,否則在make時系統(tǒng)會報錯。報錯信息如下:

make: *** [sapi/cli/php] Error 1

/usr/bin/ld: cannot find -liconv

collect2: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1

爛泥:php5.6源碼安裝與apache集成

現(xiàn)在開始正式安裝libiconv庫,首先下載libiconv庫,如下:

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

爛泥:php5.6源碼安裝與apache集成

解壓libiconv庫,如下:

tar -xf libiconv-1.14.tar.gz

爛泥:php5.6源碼安裝與apache集成

安裝libiconv庫,首先查看安裝幫助信息。如下:

./configure --help

爛泥:php5.6源碼安裝與apache集成

通過上圖的幫助,我們可以看到libiconv庫默認的安裝路徑為/usr/local?,F(xiàn)在開始安裝libiconv庫,如下:

./configure --prefix=/usr/local

make && make install

爛泥:php5.6源碼安裝與apache集成

爛泥:php5.6源碼安裝與apache集成

libiconv庫安裝完畢后,建議把/usr/local/lib庫加入到到/etc/ld.so.conf文件中,然后使用/sbin/ldconfig使其生效。如下:

echo "/usr/local/lib">>/etc/ld.so.conf

/sbin/ldconfig

爛泥:php5.6源碼安裝與apache集成

如果沒有進行此步操作的話,在安裝php執(zhí)行make install,系統(tǒng)就會報錯。報錯信息如下:

/root/php-5.6.2/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

二、php源碼安裝

有關(guān)php源碼安裝可以參照《爛泥:php5.6源碼安裝及php-fpm配置與nginx集成》文章, 下載并編譯php命令如下:

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

wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz

./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs

爛泥:php5.6源碼安裝與apache集成

爛泥:php5.6源碼安裝與apache集成

注意上述命令中--enable-fpm的作用是開啟php的fastcgi功能,即開啟php-fpm功能。

--with-mysql=/usr/local/mysql是啟用php支持mysql的功能,/usr/local/mysql是mysql數(shù)據(jù)庫的安裝路徑。

--enable-mbstring表示啟用mbstring模塊mbstring模塊的主要作用在于檢測和轉(zhuǎn)換編碼,提供對應(yīng)的多字節(jié)操作的字符串函數(shù)。目前php內(nèi)部的編碼只支持ISO-8859-*、EUC-JP、UTF-8,其他的編碼的語言是沒辦法在php程序上正確顯示的,所以我們要啟用mbstring模塊。

--with-iconv-dir=/usr/local指定php存放libiconv庫的位置。

--with-apxs2=/usr/local/apache2/bin/apxs指定php查找apache的位置。

編譯完畢后,我們再來make。在make時,我們注意要加上-liconv參數(shù)。如果不加上-liconv參數(shù),系統(tǒng)在make編譯會報錯。報錯信息如下:

Generating phar.php

php-5.3.16/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

使用命令如下:

make ZEND_EXTRA_LIBS='-liconv'

我們也可以通過修改Makefile文件,在ZEND_EXTRA_LIBS行加入-liconv。如下:

爛泥:php5.6源碼安裝與apache集成

vi Makefile

爛泥:php5.6源碼安裝與apache集成

make install

爛泥:php5.6源碼安裝與apache集成

通過上圖,我們可以很明顯的看到apache配置文件httpd中啟用php支持,同時也把libphp5.so文件復(fù)制到apache的模塊目錄下。

三、配置apache使其支持php

php安裝完畢后,我們就可以通過修改apache的配置文件httpd.conf來使其支持php。

我們只需要在httpd.conf文件中加入如下兩行代碼:

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

注意,其中LoadModule php5_module modules/libphp5.so行,我們查看httpd.conf文件時會發(fā)現(xiàn)該行已經(jīng)存在。那是因為在安裝php時,添加的。現(xiàn)在我們只需要添加AddType application/x-httpd-php .php行即可。

vi /usr/local/apache2/conf/httpd.conf

爛泥:php5.6源碼安裝與apache集成

除此之外,我們還需要修改apache的默認主頁文件,添加index.php。內(nèi)容如下:

echo "<?php phpinfo();?>">/usr/local/apache2/htdocs/index.php

cat /usr/local/apache2/htdocs/index.php

爛泥:php5.6源碼安裝與apache集成

爛泥:php5.6源碼安裝與apache集成

四、測試php

以上修改完畢后,我們重新啟動apache,使用如下命令:

/etc/init.d/httpd graceful

注意該命令可以優(yōu)雅的重啟apache。

爛泥:php5.6源碼安裝與apache集成

打開站點,如下:

爛泥:php5.6源碼安裝與apache集成

通過上圖,我們可以很明顯的看到apache已經(jīng)支持php。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI