飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • 解决Call to undefined function imagettftext()方法

解决Call to undefined function imagettftext()方法

vuePress-theme-reco 极客学长    2013 - 2025

解决Call to undefined function imagettftext()方法


极客学长 2016-10-16 0 php imagettftext

前几天系统崩溃了,重装系统之后第一件事情就是编译LNMP开发环境,当编译好php之后执行一个验证码生成的程序,结果报错"function imagettftext() not found". 搞的我一脸懵逼,因为我在编译php的时候明明添加了--enable-gd 这个选项的。

没有办法,那就一步一步排查把,首先打开phpinfo页面,发现gd扩展是确实有安装的。google一下,找到一个答案说是编译的时候没有加上FreeType. 这里顺便介绍下FreeType是个什么东西。

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。

也就是说gd库需要通过它来调用字体绘图。那闲话不多说,看解决办法:

首先安装 FreeType, 我这里安装的是2.4.0:

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2
tar -jxf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype
make && make install

Ok,FreeType 安装搞定!

那么接下来你有2中方案去选择,第一种是直接编译php,在php configure 编译选项中加上

--with-freetype-dir=/usr/local/freetype

第二种方案比较简单些,既然是GD库的扩展有问题,那么直接把gd库的扩展重新编译,为它指定freetype的路径就好了。以下假设 {php_source_dir} 为你下载的php源码的目录, {php_install_dir}

cd {php_source_dir}/ext/gd
phpize
./configure --with-freetype-dir=/usr/local/freetype --with-php-config={php_install_dir}/bin/php-config
make && make install

然后再在你的php配置文档中加上

extension=gd.so

重启php-fpm sudo service php-fpm restart

现在打开验证码页面,一切OK,全部搞定。

本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

Ubuntu 上如何检测某个软件包是否安装 IT团队管理心得