網(wǎng)站的第二臺服務(wù)器跑的的環(huán)境主要是Python/Ruby,有時也需要簡單跑跑PHP腳本,所以也安裝了PHP,環(huán)境是Nginx+php-fpm,PHP是源碼編譯安裝的,所以是最小化安裝,甚至連mysqli擴展都沒有。今天需要用到GD庫,才發(fā)現(xiàn)沒GD庫環(huán)境,所以需要安裝這個擴展。對付單個擴展,單獨編譯動態(tài)加載是比較方便快捷的。安裝過程也比較繁雜,這個記錄一下,方便后來者。
首先說明,我的PHP是源碼編譯安裝的,可以參看 以源碼編譯的方式安裝PHP與php-fpm。
先安裝 gd 前置庫 : freetype ,jpegsrc,libpng。
1. freetype
wget "http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2"
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype make make install
2. jpegsrc
wget "http://www.ijg.org/files/jpegsrc.v9.tar.gz"
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg make make install
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1
3. libpng
wget "http://downloads.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz?r=http%3A%2F%2Fwww.libpng.org%2Fpub%2Fpng%2Flibpng.htmlts=1376631135use_mirror=nchc"
tar zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng make make install
接下來需要cd到php源碼的 gd 目錄,否則會報 cannot find config.m4 之類的錯誤。
cd php-5.3.6
cd ext
cd gd
然后再這個目錄執(zhí)行命令 /usr/local/php/bin/phpize。什么時候需要用到 phpize 呢?當(dāng)我們需要再加些模塊,又不想重新編譯php,這些我們就可以用phpize了。我的PHP安裝在 /usr/local/php/ 這個目錄里,可以根據(jù)個人情況修改。
/usr/local/php/bin/phpize
現(xiàn)在可以進行單獨編譯安裝了:
./configure --with-php-configure=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
或者
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make make install
接著修改php.ini文件 在 ;extension=php_zip.dll 下面添加一行 extension=gd.so
重啟 Nginx 之后再看看是否安裝成功了。再執(zhí)行 /usr/local/php/bin/php -m 查看gd模塊是否加載成功。
service nginx restart
/usr/local/php/bin/php -m
console列出:
[root@nowamagic gd]# /usr/local/php/bin/php -m
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
……
看到gd了,說明gd庫安裝成功。
接下來只要重啟 php-fpm 即可:
killall php-fpm
/usr/local/php/sbin/php-fpm
phpinfo()一下,看看。
OK,安裝成功。