centos6.5下 GD庫不支援jpeg的問題
1、首先下載以下原始碼包
http://google-desktop-for-linux-mirror.googlecode.com/files/gd-2.0.35.tar.gz
http://down1.chinaunix.net/distfiles/jpegsrc.v6b.tar.gz
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.2.tar.gz
http://google-desktop-for-linux-mirror.googlecode.com/files/zlib-1.2.3.tar.gz
http://down1.chinaunix.net/distfiles/freetype-1.3.1.tar.gz
http://down1.chinaunix.net/distfiles/gettext-0.16.1.tar.gz
2、安裝zlib
# tar xvzf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure
# make && make install
3、安裝freetype
# tar xvzf freetype-1.3.1.tar.gz
# cd freetype-1.3.1
# ./configure –prefix=/usr/local/freetype
# make && make install
有多行錯誤類似:ftdump.c:172:1: error: pasting “.” and “glyph_object” does not give a valid preprocessing token
解決方法:修改 test/ftdump.c 裡面的程式碼:
將 Print_Mem( memory_footprint.##field, string ) 改為: Print_Mem( memory_footprint.field, string )
將 #define FOOTPRINT( field ) Save_Memory( &memory_footprint.##field ) 改為: #define FOOTPRINT( field ) Save_Memory( &memory_footprint.field )
重新make && make instal
或者修改Makefile.in:
1. 去掉all: ttlib tttest ttpo中的tttest
2. 刪除
install:
cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) install
cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) install
cd $(FTPODIR); $(MAKE) install
中的 cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) install
# ./configure –prefix=/usr/local/freetype
# make && make install
4、安裝libpng
# tar xvzf libpng-1.5.2.tar.gz
# cd libpng-1.5.2
# ./configure –prefix=/usr/local/libpng
# make && make install
5、安裝jpegsrc
# tar xvzf jpegsrc.v6b.tar.gz
# cd jpegsrc.v6b
# ./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static
# make && make install
可能的錯誤:提示資料夾不存在,應該是程式不能自動建立資料夾吧,根據提示的錯誤,手動用mkdir建立檔案就可以了。
本次例如:
# mkdir -p /usr/local/jpeg6/include/
# mkdir -p /usr/local/jpeg6/lib/
# mkdir -p /usr/local/jpeg6/bin/cjpeg
# mkdir -p /usr/local/jpeg6/man/man1/
6、安裝gettext(有的直接就有,可以先安裝GD庫,報錯再返回來安裝)
# tar xvzf gettext-0.16.1.tar.gz
# cd gettext-0.16.1
# ./configure –prefix=/usr/local/gettext
# make && make install
7、安裝GD
# tar xvzf gd-2.0.35.tar.gz
# cd gd-2.0.35
# ./configure –prefix=/usr/local/gd –with-jpeg=/usr/local/jpeg6 –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype
# make
# make install
configure…這一步可能的錯誤:configure.ac:64: error: possibly undefined macro: AM_ICONV,這個就必須安裝gettext(步驟6中有講)
8、生成gd.so
# cd ../php-5.2.17/ext/gd/
#/usr/local/php5/bin/phpize
#./configure –with-php-config=/usr/local/php5/bin/php-config –with-jpeg-dir=/usr/local/jpeg6/ –with-png-dir=/usr/local/libpng/ –with-gd=/usr/local/gd/ –with-freetype-dir=/usr/local/freetype/
# make && make install
這時在make install的結尾會有gd庫存放的位置,從那個資料夾中將gd.so複製到擴充套件庫目錄中
9、修改PHP.ini
在php.ini中新增如下內容
extension=gd.so
10、安裝結束,重啟Apache服務
# service httpd restart