本文首發(fā)于爛泥行天下。
在嘉黎等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),嘉黎網(wǎng)站建設(shè)費(fèi)用合理。apache對(duì)php的支持是通過(guò)apache的mod_php5模塊來(lái)支持的,這點(diǎn)與nginx不同。nginx是通過(guò)第三方的fastcgi處理器才可以對(duì)php進(jìn)行解析,有關(guān)nginx與php集成,請(qǐng)看《爛泥:php5.6源碼安裝及php-fpm配置與nginx集成》。
如果源碼編譯安裝php的話,需要在編譯時(shí)指定--with-apxs2=/usr/local/apache2/bin/apxs表示告訴編譯器通過(guò)apache的mod_php5模塊來(lái)提供對(duì)php的解析。
同時(shí)php安裝的最后一步make install時(shí),我們會(huì)看到將動(dòng)態(tài)鏈接庫(kù)libphp5.so拷貝到apache2的安裝目錄的modules目錄下,并且還需要在httpd.conf配置文件中添加LoadModule語(yǔ)句來(lái)動(dòng)態(tài)將libphp5.so模塊加載進(jìn)來(lái),從而實(shí)現(xiàn)Apache對(duì)php的支持。
php與apache集成需要以下幾個(gè)步驟:
1、安裝libiconv庫(kù)
2、php源碼安裝
3、配置apache使其支持php
4、測(cè)試php
一、安裝libiconv庫(kù)
libiconv庫(kù)為需要做轉(zhuǎn)換的應(yīng)用程序提供了一個(gè)iconv命令,以實(shí)現(xiàn)一個(gè)字符編碼到另一個(gè)字符編碼的轉(zhuǎn)換,比如它可以將UTF8編碼轉(zhuǎn)換成GB18030編碼,反過(guò)來(lái)也行。
php與apache集成時(shí)一定要安裝libiconv庫(kù),否則在make時(shí)系統(tǒng)會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)信息如下:
make: *** [sapi/cli/php] Error 1
/usr/bin/ld: cannot find -liconv
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
現(xiàn)在開(kāi)始正式安裝libiconv庫(kù),首先下載libiconv庫(kù),如下:
wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
解壓libiconv庫(kù),如下:
tar -xf libiconv-1.14.tar.gz
安裝libiconv庫(kù),首先查看安裝幫助信息。如下:
./configure --help
通過(guò)上圖的幫助,我們可以看到libiconv庫(kù)默認(rèn)的安裝路徑為/usr/local?,F(xiàn)在開(kāi)始安裝libiconv庫(kù),如下:
./configure --prefix=/usr/local
make && make install
libiconv庫(kù)安裝完畢后,建議把/usr/local/lib庫(kù)加入到到/etc/ld.so.conf文件中,然后使用/sbin/ldconfig使其生效。如下:
echo "/usr/local/lib">>/etc/ld.so.conf
/sbin/ldconfig
如果沒(méi)有進(jìn)行此步操作的話,在安裝php執(zhí)行make install,系統(tǒng)就會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)信息如下:
/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
wgethttp://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
注意上述命令中--enable-fpm的作用是開(kāi)啟php的fastcgi功能,即開(kāi)啟php-fpm功能。
--with-mysql=/usr/local/mysql是啟用php支持mysql的功能,/usr/local/mysql是mysql數(shù)據(jù)庫(kù)的安裝路徑。
--enable-mbstring表示啟用mbstring模塊mbstring模塊的主要作用在于檢測(cè)和轉(zhuǎn)換編碼,提供對(duì)應(yīng)的多字節(jié)操作的字符串函數(shù)。目前php內(nèi)部的編碼只支持ISO-8859-*、EUC-JP、UTF-8,其他的編碼的語(yǔ)言是沒(méi)辦法在php程序上正確顯示的,所以我們要啟用mbstring模塊。
--with-iconv-dir=/usr/local指定php存放libiconv庫(kù)的位置。
--with-apxs2=/usr/local/apache2/bin/apxs指定php查找apache的位置。
編譯完畢后,我們?cè)賮?lái)make。在make時(shí),我們注意要加上-liconv參數(shù)。如果不加上-liconv參數(shù),系統(tǒng)在make編譯會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)信息如下:
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'
我們也可以通過(guò)修改Makefile文件,在ZEND_EXTRA_LIBS行加入-liconv。如下:
vi Makefile
make install
通過(guò)上圖,我們可以很明顯的看到apache配置文件httpd中啟用php支持,同時(shí)也把libphp5.so文件復(fù)制到apache的模塊目錄下。
三、配置apache使其支持php
php安裝完畢后,我們就可以通過(guò)修改apache的配置文件httpd.conf來(lái)使其支持php。
我們只需要在httpd.conf文件中加入如下兩行代碼:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
注意,其中LoadModule php5_module modules/libphp5.so行,我們查看httpd.conf文件時(shí)會(huì)發(fā)現(xiàn)該行已經(jīng)存在。那是因?yàn)樵诎惭bphp時(shí),添加的?,F(xiàn)在我們只需要添加AddType application/x-httpd-php .php行即可。
vi /usr/local/apache2/conf/httpd.conf
除此之外,我們還需要修改apache的默認(rèn)主頁(yè)文件,添加index.php。內(nèi)容如下:
echo "">/usr/local/apache2/htdocs/index.php
cat /usr/local/apache2/htdocs/index.php
四、測(cè)試php
以上修改完畢后,我們重新啟動(dòng)apache,使用如下命令:
/etc/init.d/httpd graceful
注意該命令可以優(yōu)雅的重啟apache。
打開(kāi)站點(diǎn),如下:
通過(guò)上圖,我們可以很明顯的看到apache已經(jīng)支持php。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。