php安装gd扩展

做php开发经常需要用到gd库,但是也遇到几次部署环境默认没有安装gd的情况,遂在此做下总结,以备不时之需.

通过yum,apt-get等包式管理安装方式安装的php直接运行对应命令即可,故不在此赘述。本文主要记录在linux环境下编译gd扩展及其所需依赖。

gd扩展主要依赖zlib,freetype,libpng,libjpeg这4个库,所以我们先编译这四个库。

  • 安装zlib

在zlib项目主页下载最新版本

解压后进入源码目录,进行配置、编译和安装操作

./configure --prefix=/user/local/zlib #指定安装目录,这里是因为不方便安装在默认目录下的特殊操作

make && make install

设置临时环境变量以便后续编译libpng和gd(因为我编译png时提示找不到zlib.h,所以加上了这个)

export LDFLAGS="-L/user/local/zlib/lib"
export CPPFLAGS="-I/user/local/zlib/include"
  • 安装freetype

在freetype的项目主页下载稳定版本源码

解压并进入源码目录

./configure --prefix=/user/local/freetype #同上,指定安装目录
make && make install
  • 安装libpng

在libpng项目主页上下载源码

解压并进入源码目录

./configure --prefix=/user/local/libpng
make && make install
  • 安装libjpeg

在libjpeg项目主页上下载源码

解压并进入源码目录

./configure
--prefix=/user/local/libjpeg
--enable-shared #libjpeg默认不会以共享方式安装,所以需要打开

make && make install

如果一切顺利的话,我们就可以开始安装gd扩展了,php-gd的源码貌似在pecl上找不到,所以我直接在php的源码包里面找了一份,拷贝到临时目录,使用phpize生成configure文件

然后进行配置和编译:

./configure
--with-php-config=/user/local/php/bin/php-config
--with-jpeg-dir=/user/local/libjpeg
--with-png-dir=/user/local/libpng
--with-freetype-dir=/user/local/freetype
--with-zlib-dir=/user/local/zlib

make && make install

其中--with-php-config是指向安装php后生成的一个配置工具,主要用于扩展的编译配置

其他的参数对应指向先前安装依赖的位置

没有出错的话,编译器会提示生成的gd.so已经拷贝到php的扩展目录,我们只需要在php.ini中加入一行

extension=gd.so

重启或者重新加载apache(apache handler运行方式)/php-fpm(cgi运行方式)后生效

至此,php的gd扩展安装完成.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux系统运维

安装PHP5,安装PHP7

2548
来自专栏Java开发

搭建 ElasticSearch 6.1.3分布式集群

先启动mac上的master,再启动Ubuntu上的slave节点,观察输出,会有一个node-102探测到master节点的提示:

1111
来自专栏章鱼的慢慢技术路

Linux命令_磁盘管理_查看磁盘或目录的容量

1925
来自专栏Youngxj

linux更新内核版本

3593
来自专栏Golang语言社区

【Go 语言社区】删除redis所有KEY

批量删除Key Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这...

4248
来自专栏守候书阁

.gitignore文件规则不起效的解决办法

在一个项目里面,多少会有一些文件是不需要上传到git上面的,比如node的依赖模块node_modules,这个文件夹超过10000个文件,大小也超过80M。所...

671
来自专栏nummy

python安装私有包

你想要安装一个第三方包,但是没有权限将它安装到系统Python库中去。 或者,你可能想要安装一个供自己使用的包,而不是系统上面所有用户。

1063
来自专栏谈补锅

iOS项目groups和folder的区别(组和文件夹)

   在引用一个第三方框架的时候,已经拖进去了,但是引用框架里面的文件时,竟然报错说找不到.......查了一下,原来在拖进去时没有注意group和folder...

1033
来自专栏企鹅号快讯

基于python3.5+的web框架sanic中文入门

sanic是一款用 python3.5+ 写的 web framework,用法和 flask 类似,特点是非常快。 Github 官网:https://git...

2567
来自专栏小狼的世界

Mac环境下配置Tomcat+Eclipse

首先在 Tomcat官方网站 找到自己合适的版本,下载 tar.gz 版本的,下载完成后解压缩到一个目录,进入这个目录下的 bin 执行 startup.sh,...

1062

扫码关注云+社区