CentOS下安装libjpeg库及编译GD库
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
在php.ini加入extension=gd.so
重启php-fpmservice php-fpm restart
如果提示:Warning: Module 'gd' already loaded
你需要把之前编译的php删除掉,重新编译安装php
- ./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,就完成了