Fatal error: Call to undefined function imagettftext()_weixin_33871366的博客-程序员宅基地

技术标签: 运维  php  

服务器环境 centos

php 版本是 5.6.15, 源码编译安装

编译时未把 freetype 编译安装, 造成了如题所示的错误.

解决此问题时, 走了许多错路.

现把解决步骤记录一下

1. 可以使用 yum 安装一些所需的依赖库

    yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel

 

2. 进入 php 源码目录, 我的目录是: /opt/source/php-5.6.15 

    可以先执行 make clean 作用是清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

    编译时添加 --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd

 我的配置参数如下:

'./configure' \
'--prefix=/usr/local/php' \
'--with-mysql=/opt/source/mysql' \
'--with-config-file-path=/usr/local/php/etc' \
'--enable-soap' \
'--enable-pdo' \
'--with-pdo-mysql' \
'--with-snmp' \
'--enable-wddx' \
'--with-openssl' \
'--enable-fpm' \
'--with-mcrypt' \
'--enable-mbstring' \
'--with-curl' \
'--with-mhash' \
'--enable-zip' \
'--with-pcre-regex' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-pcntl' \
'--enable-mbregex' \
'--enable-inline-optimization' \
'--with-bz2' \
'--with-zlib' \
'--enable-sockets' \
'--with-png-dir' \
'--with-freetype-dir' \
'--with-jpeg-dir' \
'--with-gd' \
'--with-mysqli' \

不出意外的话, 此处会成功配置成功, 并生成配置文件, 然后执行 make && make install

3. 编译成功之后, 记得要使用编译之后的 php 替换掉环境变量里的 php 命令(如果你把你本地 php 编译环境放入了环境变量的话, 这步可以忽略)

   比如我这里, 就会执行如下两条命令:

    cp /usr/local/php/bin/php /usr/bin/php

  cp /usr/local/php/sbin/php-fpm /usr/sbin/php-fpm

 

运行 phpinfo() 查看, 如果有如下图中红框中的三行, 即表示安装成功

转载于:https://www.cnblogs.com/debmzhang/p/5105412.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33871366/article/details/93524387

智能推荐

Mellotron:Multispeaker expressive voice synthesis by conditioning on rhythm, pitch and global style_林林宋的博客-程序员宅基地

单位:nvidia时间:2019-10abstract在Tacotron-GST的基础上进行改进 ,可以完成多说话人语音合成。可以精确的控制生成各种风格的语音。并且训练的时候只需要read speech data,并且不需要text和audio的对齐。introduction想要语音合成特定风格的语音,必须要有对应的训练数据。但是这样比较难以获得,因此我们提出一种不需要这类数据也能进行风...

怎么无法识别计算机评分,电脑阅卷,多少孩子吃亏在字上?电脑根本识别不了!..._小呀么小花狸的博客-程序员宅基地

原标题:电脑阅卷,多少孩子吃亏在字上?电脑根本识别不了!在小编的印象中,每年高考成绩出来那天,总有人觉得委屈,感觉实际分数不如自己考完对答案得出的分数高。那么,问题到底出在哪儿呢?其中一个重要原因是,电脑阅卷比人工阅卷的要求更高。自从高考采用“电子阅卷”,对考生的书写规范和答题习惯就有了更多的要求。你知道吗,在计算机中阅读扫描后的答题卡,完全没有你亲眼看到的那么清晰。今天,小编就带大家了解一下电脑...

rocketMQ环境普通搭建&&通过docker环境搭建及测试_WoodieWang的博客-程序员宅基地

Producer消息生产者,负责产生消息,一般由业务系统负责产生消息。Consumer消息费者,负责消费消息,一般是后台系统负责异步消费。NameServer集群架构中的组织协调员,收集broker的工作情况,不负责消息的处理Broker(topic存在其中)是RocketMQ的核心负责消息的发送、接收、高可用等(真正干活的)需要定时发送自身情况到NameServer...

django-Vue搭建博客:文章标题图_献伟吖的博客-程序员宅基地

本章是对文章的完善与复习Django知识,即文件的上传与下载。所以本章我们就为文章创建标题图片来巩固Django文件上传与下载即DRF中的文件上传与下载。教程来源 杜塞-django-vue系列博客链接 传送门JSON格式的载体是字符串,不能直接处理文件流。怎么办?很多开发者使用DR处理文件上传还是沿用Django的老路子,即用multipart/form-data表单夹带元数据的文件。这种方法是可行的,但是前端却有点别扭。出上面方法外,还有三种方法:用Base64对文件进行编码(将文件变

不会吧不会吧!不会还有人不知道并发编程的万能钥匙-“管程”-吧!_普通网友的博客-程序员宅基地_c++管程

并发编程这个技术领域已经发展了半个世纪了,相关的理论和技术纷繁复杂。那有没有一种核心技术可以很方便地解决我们的并发问题呢?这个问题如果让我选择,我一定会选择管程技术。Java 语言在 1.5 之前,提供的唯一的并发原语就是管程,而且 1.5 之后提供的 SDK并发包,也是以管程技术为基础的。除此之外,C/C++、C# 等高级语言也都支持管程。可以这么说,管程就是一把解决并发问题的万能钥匙。什么是管程不知道你是否曾思考过这个问题:为什么 Java 在 1.5 之前仅仅提供了 synchronized

谈谈苹果发布新产品_来自小龙的执着的博客-程序员宅基地

-0-苹果发布会已经过去两天了,诸多媒体纷纷开始吐槽,内容五花八门不尽相同,真是八仙过海各显神通,但说来说去总离不开“创新乏力”这句老话。要我说,吐槽的点永恒不变这才是毫无创新。不知道什么时候开始,创新居然是衡量一家公司是否成功必要条件,真是奇怪的逻辑,这不是为博人眼球而胡扯么。-1-新苹果的浴霸摄像头无疑抢占了大众的眼光,但是说他丑的人为数不少人,更甚者频频以乔布斯的名誉痛斥这些设计奇怪...

随便推点

CVE-2021-1675: Windows Print Spooler远程代码执行漏洞_士别三日wyx的博客-程序员宅基地_printspooler漏洞

** 赶紧点击上方话题进行订阅吧!** 报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-29 1 漏洞简述 2021年06月29日,360CERT监测发现安全研究人员在GitHub上...

【如何从DLL中导出C++类及接口】_weixin_34405332的博客-程序员宅基地

HowTo: Export C++ classes from a DLL本文粘贴自 CodeProject - HowTo-Export-C-classes-from-a-DLL 。鉴于国内网上针对“DLL 接口导出”的相关文章众说纷纭,没有一个系统的归纳,因此决定将本文粘贴过来。文章主要阐释了三种从 DLL 中导出 C++ 类及接口的方法,在 DLL...

BOM/DOM 新手必备知识(Java修仙体系结丹境)_烟雨红尘客的博客-程序员宅基地

BOM/DOM 新手必备知识BOM:Browser Object Model 浏览器对象模型就是将浏览器窗口的各个部分封装为对象,并且可以通过脚本语言进行控制。里面有很多的对象windows:窗口对象Navigator:浏览器对象,不讲解Screen:显示器屏幕对象,不讲解History:历史记录对象Location:地址栏对象下面我们进行一一讲解Windows 对象注意,所有的 JS 代码,最好在下面这个方法的方法体中写,这个代表等当前元素加载完后在进行脚本操作,不然有些图片还

java 泛型嵌套泛型_Java泛型的其他应用——泛型接口、泛型方法、泛型数组以及泛型的嵌套设置..._俗世情僧的博客-程序员宅基地

class Info{// 指定上限,只能是数字类型private T var ;// 此类型由外部决定public T getVar(){return this.var ;}public void setVar(T var){this.var = var ;}public String toString(){// 覆写Object类中的toString()方法return this.var.to...

VI配置成多语言IDE(带完整附件)_weixin_34380948的博客-程序员宅基地

vim是一款支持插件、功能无比强大的编辑器,无论你的系统是linux、unix、mac还是windows,都能够选择他来编辑文件或是进行工程级别 的coding。如果能把vim用好了,编程效率能得到大幅度提高,而且vim的通用和轻量,更能让你做各种语言编程时爱不释手。下面就让我来介绍一下怎样一步一步将vim配置成各开发语言通用的IDE。vim有丰富的插件,大家可以去http://www.vim.o...

推荐文章

热门文章

相关标签