Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()

做項目上傳圖片的時候,上傳png的沒有任何問題,已一上傳jpg的就報錯這個錯誤

Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()

看樣子是gd庫的jpeg沒找到的樣子。

看一下服務器配置

        

果然缺少jpeg 和 freetype

這纔回想起來,安裝服務器的時候確實沒裝jpeg

想裝上freetype jpeg 必須重新編譯gd庫

gd依賴包下載地址:https://download.csdn.net/download/u014740338/10441203

1、安裝freetype

tar zxvf  freetype-2.4.0.tar.gz
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype
make && make install

2、安裝jpegsrc

tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
./configure --prefix=/usr/local/jpeg 
make && make install

3、安裝zlib

tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make && make install

4、安裝安裝libpng

tar zxvf libpng-1.6.16.tar.gz
cd libpng-1.6.16
./configure --prefix=/usr/local/libpng
make && make install

5、進入PHP安裝包裏面的ext文件夾,找到gd擴展

我的php安裝源碼的位置:/php-7.0.2

擴展文件的存放地址:/php-7.0.2/ext

cd /php-7.0.2/ext/gd

#清除上次make產生的文件
make clean

#我的編譯文件產生的文件夾路徑
cd /usr/local/php/lib/php/extension/no-debug-zts-20151012

#刪除上次產生的gd.so
rm -rf gd.so

開始重新編譯gd

/usr/local/php/bin/phpize

./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


#這次增加了 with-jpeg-dir  with-png-dir with-freetype-dir


make && make install

        

產生了新的gd.so

因爲我的是重新編譯,所以php.ini中已經有了相關配置,不需要再次添加

如果是第一次安裝的話:

#你的php配置文件
vim /etc/php.ini

#增加這條
extension = gd.so

 

直接重啓服務器

service httpd restart

再次查看配置

        

這次再上傳jpg圖片,沒有問題了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章