专栏首页服务器安全专线Centos7下PHP安装gd库的实例讲解

Centos7下PHP安装gd库的实例讲解

下面小编就为大家分享一篇Centos7下PHP安装gd库的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Centos7下安装php, 或php的gd库支持,都是很简单的。

一切通过yum搞定。

yum install php-gd

以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了?

可是,如果需要采用不同版本的php时,那就是相当的麻烦,经过摸索,笔者找到了一个较为简单的方式。

由于需要与系统原生版本共存多个php版本,那么你要求的版本必须采用源码编译。(如果有其他办法,请记得回复告知一下我)

那么,编译php-gd的支持,网上大多都是通过编译freetype, libpng, libjpeg…好复杂,笔者通过一一尝试,发现还是不成功!!!!后来发现,自己编译的gd库没有包含jpeg和libpng的支持。

(通过查看自己编译的动态库文件的依赖关系ldd libgd.so.2)

注意:如果通过自己编译源码的方式,你成功的在源码版本的php中看到了gd支持png,那么恭喜你,你太幸运了。

下面来说说我的方法:

尽可能的使用系统的库,或者yum源可以安装的库,比如gd, libpng, libjpeg, libfreetype…一切,centos的源都已经准备好,我们只是希望一个不同版本的php而已。由于我们需要源码编译php,所以需要安装对应的源码版本,及带devel标识的版本。

yum install libpng libpng-devel libjpeg-turbo libjpeg-turbo-devel freetype freetype-devel gd

在php源码目录下:如果出现未定义gdXXX函数错误,需要clean一下编译的结果。

make clean

再重新make一下:

‘./configure' ‘–with-mysql' ‘–with-apxs2=/usr/local/apache2/bin/apxs' ‘–with-curl' ‘–with-gd' ‘–with-jpeg-dir' ‘–with-png-dir' ‘–with-freetype-dir'

注意:这里我们不需要指定具体的gd, jpeg, png, freetype目录的位置,直接采用系统目录下的版本(省时省力哦)。

如此安装后,gd库就按照ok了,新生产的libphp5.so文件已经安装到了指定的apache的moduls目录了。

GD Support enabledGD Version bundled (2.1.0 compatible)FreeType Support enabledFreeType Linkage with freetypeFreeType Version 2.4.11GIF Read Support enabledGIF Create Support enabledJPEG Support enabledlibJPEG Version 6bPNG Support enabledlibPNG Version 1.5.13WBMP Support enabledXBM Support enabled

为什么我们可以省力呢?应为centos安装的gd库已经把jpeg, png等库都已经连接好了。通过ldd liggd.so.2 就可以证明:

[root@iZ25mdbcou0Z ~]# ldd /usr/lib64/libgd.so.2 linux-vdso.so.1 => (0x00007fff591fe000) libXpm.so.4 => /lib64/libXpm.so.4 (0x00007f91ed0c8000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f91ecd8a000) libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f91ecb34000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f91ec8f8000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f91ec652000) libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f91ec426000) libz.so.1 => /lib64/libz.so.1 (0x00007f91ec210000) libm.so.6 => /lib64/libm.so.6 (0x00007f91ebf0e000) libc.so.6 => /lib64/libc.so.6 (0x00007f91ebb4c000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f91eb92b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f91eb727000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f91eb4fc000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f91eb2e0000) /lib64/ld-linux-x86-64.so.2 (0x00007f91ed52b000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f91eb0dc000)

原文链接:http://www.cqgua.com

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深入理解linux下查看进程内存的使用情况

    本篇文章是对linux下查看进程内存的使用情况进行了详细的分析介绍,需要的朋友参考下

    习惯说一说
  • windows 2008 R2 64位服务器中开启php curl扩展的方法

    这篇文章主要介绍了windows 2008 R2 64位服务器中开启php curl扩展的方法,需要的朋友可以参考下

    习惯说一说
  • Win8.1系统下搭建IIS8.5+PHP5.5.4运行环境教程

    这篇文章主要介绍了Win8.1系统下配置IIS8.5+PHP5.5.4运行环境教程,需要的朋友可以参考下

    习惯说一说
  • 程序员需要多个显示器来提高工作效率

    程序员需要多个显示器来提高工作效率 我发现了一篇很有意思的关于研究多个显示器与生产力的博客文章。去年一些开发人员,包括我自己,开始使用多个显示器设置。基于我的经...

    用户1289394
  • MacBook 电脑只使用外界显示器

    一方面因为在自带显示器打开的时候,桌面的文件夹还是在自带显示器上面显示,外接显示器是没有文件夹的,所以用起来不太舒服

    onety码生
  • Golang Leetcode 942. DI String Match.go

    更多内容请移步我的repo:https://github.com/anakin/golang-leetcode

    anakinsun
  • Paloalto 安全和NAT策略简单部署

    首先,写本文的目的想利用简单的LAB拓扑环境,使大家对Paloalto能够有一个简单的印象和记忆,知道它是如何进行策略部署,算是一个扫盲普及吧。当然下文还是需要...

    刘銮奕
  • 如何做招聘完成率的数据预警

    在数据分析里 ,我们经常会听见一个专业术语叫做数据预警,这个功能是指对一些关键指标,我们会有一个最低的预警数据,当你的指标达到或者接近这个值的时候,数据就...

    王佩军
  • 使用insert () 在MongoDB中插入数组

    “insert”命令也可以一次将多个文档插入到集合中。下面我们操作如何一次插入多个文档。

    MongoDB中文社区
  • 解决在/etc/porfile下设置环境变量以后zsh没有起效的问题

    今天在添加java的环境变量的时候,我在/etc/profile添加了环境变量,因为我使用的是zsh,在source /etc/profile以后,zsh的主题...

    kevinfaith

扫码关注云+社区

领取腾讯云代金券