php在linux下call to undefined function imagettftext()

简介:

imagettftext和imagefttext两个函数在生成验证码或需要向图片写入文字时候常用,在linux环境下只开启gd库是不够的。

这两个函数均需要 FreeType 库支持,在函数文档中也可以找到

wKiom1nMgKjhhqD8AAAOcQtCxo0226.png

所以当发现调用时报错提示函数不存在,都是因为编译时没有指定freetype库激活造成的。如果需要则必需重新编译gd库并激活freetype支持。


freetype库是三方库,需要单独安装,如果系统中已经安装则无需安装

查看命令:

1
rpm -ip freetype

1
whereis  freetype

下载地址: https://www.freetype.org/download.html

最好使用.net域名下的,.org很容易造成超时。

这里以:

https://sourceforge.net/projects/freetype/files/freetype2/2.7.1/freetype-2.7.1.tar.gz/download

为例:

1
2
3
4
5
tar  -zxf freetype-2.7.1. tar .gz
cd  freetype-2.7.1 /builds/unix
. /configure  --prefix= /usr/local/freetype/2 .7.1 --without-harfbuzz
make
make  install

说明:如果不进入builds/unix目录下编译会提示:make: Nothing to be done for `unix'. 当然也没有什么影响。

安装freetype需要包:

 external
 bzip2
 libpng
 harfbuzz
可以使用yum安装,但harfbuzz在yum中没有所以需要编译安装,而编译时又需要freetype包,所以可以不安装这个包,然后在freetype编译时增加--without-harfbuzz即可。


安装好freetype后即可编译gd库,官方文档中也有说明:

wKioL1nMf-vwXBb8AADqJkh4X4g573.png

所以编译gd库需要增加--with-freetype-dir=/usr/local/freetype/2.7.1/ --enable-gd-native-ttf

注意:如果freetype时默认安装无需指定目录。


编译前一定要记得 make clean 清除上次的编译内容,尤其是已经编译安装过的。

./configure 配置后可以查看  Configuring extensions 下面是否有相关成功记录:

wKiom1nMhtXRSuZ2AAAqS5jbvwU236.png


然后

1
2
make
make  install

编译好后则可以查看phpinfo()

wKioL1nMhwuD6wXbAABMYou8D8U455.png

出现这个即安装成功,可以使用这两个函数。

本文转自  ttlxihuan    51CTO博客,原文链接:http://blog.51cto.com/php2012web/1969401


相关文章
|
6月前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
83 5
|
6月前
|
数据采集 自然语言处理 Devops
ToolLearning Eval:CodeFuse发布首个中文Function Call的大语言模型评测基准!🚀
CodeFuse发布了首个面向ToolLearning领域的中文评测基准ToolLearning-Eval,以帮助开发者跟踪ToolLearning领域大模型的进展,并了解各个ToolLearning领域大模型的优势与不足。ToolLearning-Eval按照Function Call流程进行划分,包含工具选择、工具调用、工具执行结果总结这三个过程,方便通用模型可以对各个过程进行评测分析。
659 0
|
6月前
|
Linux 应用服务中间件 PHP
Linux下搭建PHP环境-源码编译安装PHP7.2
Linux下搭建PHP环境-源码编译安装PHP7.2
303 0
|
3月前
|
文字识别 Linux Swift
多图理解,更懂中文,支持function call的Phi-3.5来了!
微软继今年4月推出Phi-3系列小型语言模型后,又一鼓作气三连发布并开源其「小而美」系列 Phi-3.5模型!
|
3月前
|
应用服务中间件 Linux 网络安全
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
|
3月前
|
Linux PHP
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
|
3月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】[App Service For Linux(Function) ] Python ModuleNotFoundError: No module named 'MySQLdb'
【Azure 应用服务】[App Service For Linux(Function) ] Python ModuleNotFoundError: No module named 'MySQLdb'
|
5月前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
105 1
|
5月前
|
Ubuntu 中间件 Linux
linux php添加扩展zip libzip ZipArchive功能
linux php添加扩展zip libzip ZipArchive功能
165 1
|
6月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。