GD库明明安装了,可处理图片的时候还是报错 Fatal error: Call to undefined function imagecreatefromjpeg()
。PHP安装后,默认的gd库不支持jpg,只支持gif、png、bmp。让PHP的GD库支持处理jpg图片,需要安装libjpeg库。
第一步、安装libjpeg
库
- wget http://www.ijg.org/jpegsrc.v8c.tar.gz
- tar zxvf jpegsrc.v8c.tar.gz
- cd jpeg-8c
- ./configure --enable-shared
- make && make install
如果上面的http://www.ijg.org/jpegsrc.v8c.tar.gz
失效了,可以到 http://www.ijg.org 找最新的下载地址。
注意:这里的configure一定要带--enable-shared
参数,不然不会生成共享库libjpeg.so
第二步、重新编译GD
库
下载PHP的完整源码包,源码包里包含有Mcrypt扩展源码
http://cn.php.net/releases/ 里找到自己服务器PHP版本的源码包,使用PHP -v
,可以直接查看自己的PHP版本
- wget http://museum.PHP.net/PHP5/PHP-5.3.3.tar.bz2
- tar -xjvf PHP-5.3.3.tar.bz2
- cd PHP-5.3.3/ext/gd
- PHPize
- ./configure --with-PHP-config=/usr/bin/PHP-config --with-jpeg-dir=/usr/local/lib
- make && make install
/usr/local/lib
是libjpeg.so的位置
如果报configure: error: png.h not found.
,请尝试
- yum install libpng
- yum install libpng-devel
注意:with-PHP-config
填写你的服务器的PHP-config
的路径,一般在/usr/bin/PHP-config
执行 whereis PHP-config
或 which PHP-config
查找 PHP-config
的位置
在PHP.ini加入extension=gd.so
重启PHP-fpmservice PHP-fpm restart
如果提示:Warning: Module ‘gd‘ already loaded
- ./configure --enable-fpm --prefix=/usr/local/services/PHP --with-MysqL=/usr/local/services/MysqL --with-config-file-path=/usr/local/services/PHP/etc
- --with-curl --with-pdo-MysqL=MysqLnd --enable-mbstring --enable-sockets --with-mcrypt
- make && make install
注意: 如果你的configure
出现--with-gd
参数,你要把--with-gd参数去掉(重要:这行要特别注意)
最后启动PHP-fpm,就完成了