ppc64架構(gòu)上源碼編譯php

     公司共有幾十臺(tái)服務(wù)器,已經(jīng)架起了cacti整合nagios架構(gòu)的監(jiān)控系統(tǒng),為了可以對(duì)比監(jiān)控的數(shù)據(jù)的準(zhǔn)確性,準(zhǔn)備搭建zabbix的監(jiān)控平臺(tái)。服務(wù)器已經(jīng)沒(méi)多少空閑的了,就在一臺(tái)IBM的機(jī)器上虛擬化的幾臺(tái)虛擬機(jī),使用其中的一臺(tái)虛擬機(jī)搭建zabbix監(jiān)控平臺(tái)。

成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供服務(wù)器托管德陽(yáng) 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

    按照了搭建zabbix的方法,使用RPM包的方式大家愛(ài)你LAMP平臺(tái),從網(wǎng)上下載php-bcmath和php-mbstring RPM包安裝,出現(xiàn)了錯(cuò)誤的提示,提示是系統(tǒng)架構(gòu)不同,使用命令uname -m 查看機(jī)器的硬件架構(gòu),輸出的不是熟知的x86_64、x64,而是ppc64,由于使用的php-bcmath和php-mbstring都是x86_64平臺(tái)下。網(wǎng)上在各個(gè)RPM包站點(diǎn)中搜查,都沒(méi)有找到適合的版本,決定采用php源碼包的安裝,而apache和MySQL保留使用系統(tǒng)自帶的RPM包。


操作系統(tǒng):RedHat 6.4

PHP版本:php-5.4.19.tar.gz

用到的軟件包:fontconfig-2.4.2.tar.gz、freetype-2.3.5.tar.gz、gd-2.0.33.tar.gz、jpegsrc.v6b.tar.gz、libpng-1.2.18.tar.gz、libxml2-2.6.32.tar.gz、zlib-1.2.3.tar.gz


一、安裝php前置包,支持GD庫(kù)

1、安裝 zlib

tar zlib-1.2.3.tar.gz

cd zlib-1.2.3

CFLAGS="-O3 -fPIC" ./configure        //一行命令,必須加前面的編譯環(huán)境參數(shù)編譯,不然報(bào)錯(cuò)

make

make install

2、安裝 libpng

tar zxvf libpng-1.2.18.tar.tar

cd libpng-1.2.18

./configure --prefix=/usr/local/libpng

make

make install

3、安裝jpeg

mkdir /usr/local/jpeg

mkdir /usr/local/jpeg/bin

mkdir /usr/local/jpeg/lib

mkdir /usr/local/jpeg/include

mkdir /usr/local/jpeg/man

mkdir /usr/local/jpeg/man/man1

tar zxf jpegsrc.v6b.tar.gz 

cd jpeg-6b

./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

make

make install

make可能會(huì)報(bào)錯(cuò)

./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c

make: ./libtool:命令未找到

make: *** [jcapimin.lo] 錯(cuò)誤 127

解決方法:

 首先看有沒(méi)有安裝 及 libtool-ltdl-devel

rpm -qa | grep libtool

有網(wǎng)絡(luò)yum源的直接用yum安裝 yum -y install libtool-ltdl-devel,無(wú)網(wǎng)絡(luò)yum源的,由于系統(tǒng)自帶的rpm包中無(wú)這個(gè)包,使用源碼安裝的方式:

tar zxf libtool-2.2.6a.tar.gz 

cd libtool-2.2.6

./configure

make

make install

 然后進(jìn)入jpeg-6b的源碼目錄,然后執(zhí)行以下步驟,切記!COPY到當(dāng)前目錄注意后面的點(diǎn)(.)

cp /usr/local/share/libtool/config/config.sub .

cp /usr/local/share/libtool/config/config.guess .

也就是把config里面的兩個(gè)配置文件拿來(lái)覆蓋掉jpeg-6b目錄下的對(duì)應(yīng)文件

make clean 再重新configure 

沒(méi)有權(quán)限的時(shí)候先建立對(duì)應(yīng)的文件夾,再次make install就行了

4、 安裝 freetype

tar zxvf freetype-2.3.5.tar.gz

cd freetype-2.3.5

./configure --prefix=/usr/local/freetype

make

make install

5、安裝libxml2

tar –zxvf libxml2-2.6.32.tar.gz 

cd libxml2-2.6.32

./configure

make

make install

6、安裝 Fontconfig

vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile

tar -zxvf fontconfig-2.4.2.tar.gz

cd fontconfig-2.4.2

./configure --with-freetype-config=/usr/local/freetype/bin/freetype-config 

make

make install

6、安裝GD

tar -zxvf gd-2.0.34.tar.gz

cd gd-2.0.34

./configure --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ --with-jpeg=/usr/local/jpeg/

必須是顯示是這些信息:

** Configuration summary for gd 2.0.33:

   Support for PNG library:          yes

   Support for JPEG library:         yes

   Support for Freetype 2.x library: yes

   Support for Fontconfig library:   yes

   Support for Xpm library:          no

   Support for pthreads:             yes

make

make install

make出錯(cuò)顯示沒(méi)有找到libpng.h頭文件

方法:

解決辦法:

vi gd_png.c

#include “png.h”

替換成:

#include “/usr/local/libpng/include/png.h”

然后再make就可以了

二、安裝PHP

1、為了是源碼包安裝的PHP可以適應(yīng)RPM包安裝的apache和mysql,使用了RPM安裝LAMP平臺(tái),然后獲取PHP的編譯參數(shù)的方法。

 yum -y install  httpd  mysql-server  mysql  php php-mysql  php-pdo 

然后啟動(dòng)apache和mysql,在html目錄下創(chuàng)建一個(gè)以.php為后綴文件,寫(xiě)入如下內(nèi)容:

<?php

phpinfo();  

?>

在相應(yīng)的機(jī)器上輸入http://IP地址/文件名,根據(jù)輸出的PHP信息,在configuration欄復(fù)制配置信息,注意去掉但引號(hào)。根據(jù)版本支持的配置命令和自己的需要改寫(xiě)配置參數(shù),由于之前已經(jīng)做了修改,所以直接進(jìn)行下一步。

2、安裝php

yum -y install  httpd  mysql-server  mysql

tar zxf php-5.4.19.tar.gz -C /usr/src/

cd /usr/src/php-5.4.19/

php編譯參數(shù):

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --disable-debug --with-pic --disable-rpath --without-pear --with-bz2 --enable-gd-native-ttf --without-gdbm --with-gettext --with-gmp --with-iconv --with-openssl --with-zlib --enable-exif --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --with-kerberos --enable-shmop --enable-calendar --enable-xml --with-apxs2=/usr/sbin/apxs --without-mysql --without-gd --disable-dom --disable-dba --without-unixODBC --enable-pdo --disable-xmlreader --disable-xmlwriter --disable-phar --disable-fileinfo --disable-json --without-pspell --disable-wddx --without-curl --disable-posix --disable-sysvmsg --disable-sysvshm --disable-sysvsem --enable-mbstring --enable-bcmath --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd  --with-gd=/usr/local/ --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-zlib-dir=/usr/local/ --enable-xmlwriter --enable-xmlreader

配置出現(xiàn)的錯(cuò)誤:

./configure: line 8410: /usr/sbin/apxs: No such file or directory

yum install -y httpd-devel

configure: error: Cannot find OpenSSL's <evp.h>

yum -y install openssl-devel

onfigure: error: Please reinstall the BZip2 distribution

yum install bzip2-devel  

configure: error: Unable to locate gmp.h

yum install gmp-devel

make

make install

make時(shí)5.4版本有一個(gè)BUG:

/usr/src/php-5.4.19/ext/gd/gd_ctx.c: 在函數(shù)‘_php_p_w_picpath_stream_ctxfree’中:

/usr/src/php-5.4.19/ext/gd/gd_ctx.c:67: 錯(cuò)誤:‘struct gdIOCtx’沒(méi)有名為‘data’的成員

/usr/src/php-5.4.19/ext/gd/gd_ctx.c:68: 錯(cuò)誤:‘struct gdIOCtx’沒(méi)有名為‘data’的成員

/usr/src/php-5.4.19/ext/gd/gd_ctx.c:69: 錯(cuò)誤:‘struct gdIOCtx’沒(méi)有名為‘data’的成員

In file included from /usr/src/php-5.4.19/ext/gd/gd.c:103:

/usr/src/php-5.4.19/ext/gd/gd_ctx.c: 在函數(shù)‘_php_p_w_picpath_output_ctx’中:

/usr/src/php-5.4.19/ext/gd/gd_ctx.c:153: 錯(cuò)誤:‘gdIOCtx’沒(méi)有名為‘data’的成員

make: *** [ext/gd/gd.lo] 錯(cuò)誤 1

修復(fù):

vim /usr/local/include/gd_io.h 

  /* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

  int (*seek) (struct gdIOCtx *, const int);

  long (*tell) (struct gdIOCtx *);

  void (*gd_free) (struct gdIOCtx *);

  void (*data);//增加這句

}

gdIOCtx;

安裝PHP后為使用方便增加這個(gè)命令:

ln –s /usr/local/php/bin/* /usr/local/bin/

3、配置apache,并啟動(dòng)apache、mysql

vim /etc/httpd/conf/httpd.conf

AddHandler php5-script .php

AddType text/html .php

DirectoryIndex index.php

service httpd start  

service mysqld start

chkconfig --level 35 httpd on

chkconfig --level 35 mysqld on

4、測(cè)試php

vim /var/www/html/test1.php

<?php

phpinfo();  

?>

輸出php 5.4的信息,表示php 5.4能被apache調(diào)用

vim /var/www/html/test2.php

<?php

$link=mysql_connect('127.0.0.1','test','');    

if($link) echo "恭喜你,數(shù)據(jù)庫(kù)連接成功啦 !!"; 

mysql_close();     

不過(guò)把127.0.0.1替換成localhost后,數(shù)據(jù)庫(kù)就連接失敗,沒(méi)找到解決的方法。

這樣LAMP平臺(tái)就搭建好了,解決的RPM包安裝PHP時(shí)缺少必要的主件,可以放心的安裝zabbix軟件了。

軟件包地址:http://down.51cto.com/data/1905529

文章標(biāo)題:ppc64架構(gòu)上源碼編譯php
瀏覽地址:http://muchs.cn/article4/piosie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、電子商務(wù)網(wǎng)站策劃、網(wǎng)站排名、做網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)