登陆使用到验证码死活加载不出来,排查之后发现imagettftext函数执行失败。该函数作用是把文字写入图片当中,常用于做验证码图片。使用该函数需要安装GD库,但是安装之后依然不能使用,报以下错误:
PHP Fatal error: Call to undefined function imagettftext()
原因是由于安装GD库的时候没有安装freetype的支持。freetype不是一个独立的拓展,是依附在GD库上面的一个拓展而已。所以编译的时候要把freetype的支持也安装上。
由于我使用的环境是docker搭建的,故只贴出docker的安装代码
FROM php:fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libmcrypt-dev \
libpng12-dev \
libjpeg-dev \
libpng-dev
&& docker-php-ext-install iconv mcrypt \
&& docker-php-ext-configure gd \
--enable-gd-native-ttf \
--with-freetype-dir=/usr/include/freetype2 \
--with-png-dir=/usr/include \
--with-jpeg-dir=/usr/include \
&& docker-php-ext-install gd \
&& docker-php-ext-install mbstring \
&& docker-php-ext-enable gd
重启下PHP。OK,完美解决。

本文介绍了解决PHP中imagettftext函数无法正常工作的问题,特别是当该函数因缺少freetype支持而无法加载验证码图片时。通过在Docker环境下正确安装GD库及freetype模块来解决此问题。

902

被折叠的 条评论
为什么被折叠?



