PHP GD库添加freetype拓展的方法

yipeiwu_com5年前PHP代码库

背景:业务需求要用到 imagefttext 函数,发现GD库一开始安装时没有添加 FreeType

linux版本 centos 6.6

安装流程(由于服务器为分布式内网服务器,无法使用yum安装,以下均为下载资源包后的编译安装):

安装freetype

解压freetype-2.3.9.tar.gz

编译安装

./configure --enable-static --enable-shared (没有指定prefix, .h文件默认安装到 /usr/local/include, .a|.so文件默认安装到 /usr/local/lib内 其他资源包的安装如果没有指定目录也是一样到这个位置)

make && make install

确认freetype 安装成功后重新编译安装GD库,添加freetype 支持

安装gd库,版本2.0.35

由于之前有安装记录,建议先make clean ,否则可能导致安装失败

./configure --enable-shared --with-jpeg=/usr/local/include/ --with-freetype=/usr/local/ --with-png=/usr/local/include/(这里要注意的是--with-freetype=/usr/local/的路径一开始写的是 /usr/local/lib,结果一直引入freetype失败,估计因为头文件不在这个目录内,改为上一级目录后引入成功)

确认 Support for Freetype 2.x library: yes

make && make install

确认安装成功后重新编译安装PHP的gd拓展

php版本5.5.38

单独安装gd拓展模块需要cd 到 php-5.5.38/ext/gd

执行 phpize 生成编译文件,如果系统没有引入phpize,这个文件在PHP安装目录下的bin中

在这里一定要先执行make clean,这次安装了8台服务器,没有先执行make clean的100%没有安装成功,都没有添加到freetype support

./configure --with-php-config=/opt/php5.5.38/bin/php-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --with-gd

确认freetype 2 在编译中已被添加

make && make install

确认新生成的.so文件是否跟php.ini中原来引入的路径相同,如果不同需要修改php.ini 中的extension

安装成功后重启php-fpm

ps axu |grep php |grep -v 'grep'|awk '{print $2}'|xargs kill -9

/php5.5.38/sbin/php-fpm

重启成功后查看phpinfo中的gd是否包含

FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.9

finished

以上这篇PHP GD库添加freetype拓展的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

PHP以指定字段为索引返回数据库所取的数据数组

很多情况下,我们从接触一个新的项目到开发完成,再回过头来仔细浏览一下自己写的代码,很多都是我们以前用熟练的代码。所以,在完成每个新项目的时 候,适当的做些项目总结、代码总结,或许你会在以...

php 解析xml 的四种方法详细介绍

php 解析xml 的四种方法 XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML,...

php实现的Cookies操作类实例

本文实例讲述了PHP实现的Cookies操作类及其用法,分享给大家供大家参考。具体分析如下: 一、功能: 1.保存,读取,更新,清除cookies数据。 2.可设置前缀。 3.强制超时控...

PHP实现多图片上传类实例

本文所述为一个实用的PHP多图片文件上传类,其支持gif、jpg、jpeg、pjpeg、png格式的多图片上传功能,类中还可限制图片类型、上传图片的大小、设置上传目录、一些提交判断等功能...

php中的单引号、双引号和转义字符详解

PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: <&#...