本文由秀依林枫提供友情赞助,首发于烂泥行天下。

这几天一直在弄一个商城系统,该系统的源码及数据库都已经上传并创建完毕。但是在安装该系统时,却提示缺少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库的更多相关文章

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

  2. 【CentOS】php编译安装gd库

    一.准备工作 使用之前服务器按源码最小化安装完nginx.php-fpm,没有安装gd库,下面介绍下gd库的安装. gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建 ...

  3. PHP 编译安装 gd 库

    作者博文地址:https://www.cnblogs.com/liu-shuai/ 安装gd依赖库 freetype wget http://download.savannah.gnu.org/rel ...

  4. linux centos系统 php安装GD库扩展

    yum --enablerepo=remi-php56 install php-gd php-mysql php-mbstring php-xml php-mcrypt //安装GD库扩展 servi ...

  5. [转载~笔记]CentOS单独编译安装PHP gd库扩展

    http://www.nowamagic.net/librarys/veda/detail/2610 安装gd前置库: freetype, jpegsrc, libpng 1. freetypewge ...

  6. CentOS单独编译安装PHP gd库扩展

    注意:如果您已经编译安装过GD库,请重新编译安装php不带gd库成功后,执行以下操作 安装libpng wget http://jaist.dl.sourceforge.net/project/lib ...

  7. 已安装php 编译安装 gd库拓展模块

    参考资料:http://wenku.baidu.com/link?url=EgXFShYxeJOZSYNQ_7RCBC-6X8OcRRCqVm4qCv49uBk57d6vLBoUpfYdQ-KqJRs ...

  8. Centos安装GD库

    tar zxvf ncurses-5.6.tar.gz 进入目录 cd ncurses-5.6 生成 makefile文件,再进一步编译 ./configure --prefix=/usr --wit ...

  9. Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)

    本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录一下. 首先,最权威清晰的安装文档还是官方的: Building the NetCDF-4.2 and later F ...

随机推荐

  1. windows上安装使用mySql

    一直都使用MSSQL,这两天学习了下Mysql,感觉是这样的--->如果你会MSSQL那么你只需花很少的量时间就能上手MYSQL,如果你会MSSQL,什么MYSQL语法这些对你来说都不是麻烦事了 ...

  2. Lucene.net站内搜索—1、SEO优化

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  3. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  4. CSS中的margin、border、padding区别

    CSS padding margin border属性详解 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来 ...

  5. ae_datagridview显示属性

    public partial class FrmAttributeTable : Form { private AxMapControl m_MapCtl; public FrmAttributeTa ...

  6. Java学习心得之 Linux下搭建Java环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...

  7. Android压力测试工具——Monkey

    Android压力测试工具——Monkey Monkey是运行在模拟器上和真机设备上的一段程序,它会产生用户事件的一系列伪随机流,比如点击.触摸.手势,还有很多系统级别的事件.Monkey通常是用来做 ...

  8. iOS端项目注释规范附统一代码块

    代码的注释经常被人忽略,以至于在后期维护的时候较为困难.我们准备在XX项目开始之前制定一套规范的注释体系,致力于达到就算维护人员改变也能快速上手的效果. 1.属性注释 属性注释 使用 /** 注释*/ ...

  9. Android Handler机制(四)---Handler源码解析

    Handler的主要用途有两个:(1).在将来的某个时刻执行消息或一个runnable,(2)把消息发送到消息队列. 主要依靠post(Runnable).postAtTime(Runnable, l ...

  10. 转 java中static{}语句块详解

    原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430     感谢原作者! static{}(即static块),会在类被加载的时候执 ...