烂泥:centos单独编译安装gd库
这几天一直在弄一个商城系统,该系统的源码及数据库都已经上传并创建完毕。但是在安装该系统时,却提示缺少gd库。如下:

使用php探针查看,发现php确实没有安装gd库。如下:

目前服务器的环境是nginx+php-fpm,php使用源码最小化安装,所以就没有安装gd库。尽管没有安装gd库,但是我们还是可以通过单独编译安装gd库。
下面我们就开始来介绍如何给已经编译好的php环境安装gd库。gd库的安装分以下几个步骤:
1、gd库是什么
2、安装libpng
3、安装freetype
4、安装jpegsrc
5、安装gd库
6、检查gd库安装情况
一、gd库是什么
gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建图表、图形、缩略图以及其他图像的处理操作。
gd库支持JPG、PNG、GIF等常见的图片格式。所以在安装gd库之前,我们需要安装libpng、jpegsrc、freetype这三款软件。
二、安装libpng
libpng软件包包含libpng库,这些库被可以被其它软件用于处理png后缀的图片文件。
下载libpng,如下:
wget http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.16/libpng-1.6.16.tar.gz

安装libpng,libpng的安装我们使用默认的选项。如下:
tar -xf libpng-1.6.16.tar.gz
cd libpng-1.6.16
./configure
make
make install


注意:如果系统中已经安装了zlib,要注意zlib和libpng版本之间的兼容性问题,目前已知zlib-1.2.8和libpng-1.5.20可以正常安装,但是与libpng-1.6.16安装时,就会报如下错误:

对此有篇文章对此问题进行了一些描述,如下:
http://stackoverflow.com/questions/19738464/pngfix-c2151-undefined-reference-to-inflateres
三、安装jpegsrc
jpegsrc软件包包含jpeg库,这些库被可以被其它软件用于处理jpg或jpeg后缀的图片文件。
下载jpegsrc,如下:
wget http://www.ijg.org/files/jpegsrc.v9a.tar.gz


安装jpegsrc,jpegsrc的安装我们使用默认的选项。如下:
tar -xf jpegsrc.v9a.tar.gz
cd jpeg-9a/
./configure
make && make install


四、安装freetype
freetype库是一个完全免费开源的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF等。
下载freeType,如下:
wget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.5.5.tar.gz


安装freetype,freetype的安装我们使用默认的选项。如下:
tar -xf freetype-2.5.5.tar.gz
cd freetype-2.5.5
./configure
make && make install


五、安装gd库
以上三款软件安装完毕后,我们现在来单独编译安装gd库。
单独编译安装gd裤,我们需要切换到php源码包的/ext/gd/目录下,如下:
/root/php-5.6.2/ext/gd

然后在这个目录执行phpize命令。如下:
/usr/local/bin/phpize

为什么要使用phpize命令呢?因为当我们需要再添加一些模块,但是又不想重新编译php时,这时我们就可以使用phpize命令。
注意:phpize命令根据php的安装位置来决定,我这个php安装时使用默认安装位置。
现在可以进行单独编译安装gd库了,如下:
./configure --with-php-config=/usr/local/bin/php-config
make && make install


接着修改php.ini文件,在该文件的Dynamic Extensions模块下添加一行extension=gd.so。如下:
vi /usr/local/lib/php.ini
extension=gd.so

如果不知道php.ini文件的位置,我们可以通过php --ini命令进行查看,如下:
php --ini

六、检查gd库安装情况
gd库安装完毕以及php.ini文件修改完毕后,我们就可以通过php –m命令查看gd模块是否加载成功。如下:
/usr/local/bin/php -m |grep gd

注意:php –m是查看php都是安装了哪些模块的命令。
/usr/local/bin/php -m

通过上图,我们可以很明显的看到gd模块已经被正确加载了。
现在我们来重启nginx和php-fpm,然后再看看gd库是否安装成功,如下:
/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/php-fpm restart


通过上图,我们可以看到gd库已经安装成功。
如果是apache的话,我们也是这样进行安装即可。
烂泥:centos单独编译安装gd库的更多相关文章
- php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库
php5..30环境报错Call to undefined function ImageCreate() 编译安装 gd库 发现php5..30没有加载gd库 [root@cn_vs_web04:/u ...
- 【CentOS】php编译安装gd库
一.准备工作 使用之前服务器按源码最小化安装完nginx.php-fpm,没有安装gd库,下面介绍下gd库的安装. gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建 ...
- PHP 编译安装 gd 库
作者博文地址:https://www.cnblogs.com/liu-shuai/ 安装gd依赖库 freetype wget http://download.savannah.gnu.org/rel ...
- linux centos系统 php安装GD库扩展
yum --enablerepo=remi-php56 install php-gd php-mysql php-mbstring php-xml php-mcrypt //安装GD库扩展 servi ...
- [转载~笔记]CentOS单独编译安装PHP gd库扩展
http://www.nowamagic.net/librarys/veda/detail/2610 安装gd前置库: freetype, jpegsrc, libpng 1. freetypewge ...
- CentOS单独编译安装PHP gd库扩展
注意:如果您已经编译安装过GD库,请重新编译安装php不带gd库成功后,执行以下操作 安装libpng wget http://jaist.dl.sourceforge.net/project/lib ...
- 已安装php 编译安装 gd库拓展模块
参考资料:http://wenku.baidu.com/link?url=EgXFShYxeJOZSYNQ_7RCBC-6X8OcRRCqVm4qCv49uBk57d6vLBoUpfYdQ-KqJRs ...
- Centos安装GD库
tar zxvf ncurses-5.6.tar.gz 进入目录 cd ncurses-5.6 生成 makefile文件,再进一步编译 ./configure --prefix=/usr --wit ...
- Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)
本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录一下. 首先,最权威清晰的安装文档还是官方的: Building the NetCDF-4.2 and later F ...
随机推荐
- JAVA中的输入方法
输入整数(int)类型 导入包 import java.io.*; 输入语句 BufferedReader myIn=new BufferedReader(new inputStreamReader( ...
- 【Effective Java】8、优先考虑类型安全的异构容器
有的时候我们一个容器只有一个类型或几个类型并不能满足我们的要求,比如set中存放的元素类型都是同一种,map也就指定的两种 这里我们可以将键进行参数化,而不是将容器参数化,也就是我们可以给容器传一个键 ...
- 基本I/O模型与Epoll简介
5种基本的I/O模型:1)阻塞I/O ;2)非阻塞I/O; 3)I/O复用(select和poll);4)信号驱动I/O(SIGIO);5)异步I/O(POSIX.1的aio_系列函数). 操作系统中 ...
- 03Mybatis_mybatis框架原理——执行流程
mybatis的框架的原理(执行流程).
- 双重OAuth 2.0架构
OAuth 2.0支持几种grant type,由于安全性不同,所以适用范围也不同.背景知识:<理解OAuth 2.0> grant type 是否需要secret 是否出现授权界面 授权 ...
- reset
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...
- arcgis破解的时候,不能启动license manager的问题
1.防火墙没关:(非常重要) 2.win+R,调出控制台,输入services.msc.然后手动开启ArcGIS license manager服务,关闭其余类似erdas,matlab影响该服务的开 ...
- [SQL] SQL Server 触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删 ...
- 墙内下载DropBox离线安装包的方法
让你的浏览器FQ,然后进入官网,点击下载,你会看到这个网页: 现在,只需要在原下载的链接后加上“&full=1”即可.就像这样: https://www.dropbox.com/downloa ...
- spring.net (2)环境搭建 对(1)例子的解释和扩充
在上文中的例子实现了spring.net 控制反转的简单例子: 但是不免其中会有一些疑问. 例子中的配置文件是什么意思: app.config的配置规则可以参考web.config的配置详情 < ...