在php項目中,使用到圖片裁切、縮放等功能時,就需要php啟用gd和libjpeg擴展,否則imagecreatefromjpeg 類似函數不可用。可能是因為jpeg的版權問題,yum安裝的gd庫默認不支持jpeg有關操作,需要手工安裝jpeg library(參見php官網:https://www.php.net/manual/en/image.requirements.php)。
php官網關於讓gd支持jpeg的敘述
按照php官網指引,打開http://www.ijg.org/,下載最新版本,當前是 jpegsrc.v9d.tar.gz(下載鏈接:http://www.ijg.org/files/jpegsrc.v9d.tar.gz)。逐條執行以下命令,解壓、安裝:
tar -zxvf jpegsrc.v9d.tar.gz cd jpeg-9d ./configure --enable-shared 官網提示,必須添加此參數 make sudo make install 此時,將libjpeg安裝到了默認目錄:/usr/local/lib
接下來,要使庫libjpeg.so全局可用,否則,從php源碼配置時會報錯,查看日志可見提示libjpeg.so.9找不到。我們這樣操作:
sudo vi /etc/ld.so.conf 加入一行:/usr/local/lib 保存后執行:sudo ldconfig -v
接下來安裝php即可:
cd php-5.6.40 ./configure --prefix=/usr/local/php5_6 --enable-fpm --with-mhash --enable-mbstring --with-curl --disable-rpath --with-pdo-mysql --enable-inline-optimization --with-bz2 --with-zlib --enable-pcntl --without-sqlite3 --without-pdo-sqlite --disable-mbregex --enable-shared --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-zip make -j2 && make install
安裝完成后,在phpinfo中能看到JPEG Support enabled libJPEG Version 9 compatible類似文字,說明gd的jpeg功能安裝成功(如圖)。
gd的jpeg功能安裝成功