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.****.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图片,没有问题了!