关于thinkphp提示 Call to undefined function Think\imagettftext()的解决办法

报错,如图

这个imagettftext()方法是在php的gd扩展中,因此先去php.ini 开启了gd扩展

用phpinfo探针定位到gd扩展:如图

有了gd扩展还是报错,原因是因为在gd扩展中还应该有个freeType,因此我们需要安装freeType,最好重新编译php, 因为我试着网上很多教程安装gd,很容易出现莫名其妙的错误

如下步骤:

楼主先下载了jpeg, libpng, fretype, 如图:

#  wget ftp://ftp.usa.openbsd.org/pub/OpenBSD/distfiles/sha256/dcPsJB6ZllBP4Cqe1NEvFrdK3nE5cvPbnmXOlc0n410%3D/jpegsrc.v6b.tar.gz

#  wget ftp://ftp-osl.osuosl.org/pub/libpng/src/libpng16/libpng-1.6.34.tar.gz

#  wget https://sourceforge.net/projects/freetype/files/freetype2/2.4.0/freetype-2.4.0.tar.gz

#  tar  zxf  jpegsrc.v6b.tar.gz
#  tar  zxf  libpng-1.6.34.tar.gz
#  tar  zxf freetype-2.4.0.tar.gz

 

1.安装 jpeg

# cd  jpeg-6b/

# ./configure --prefix=/usr/local/webserver/jpeg

# make && make install

 

有报错,如图:

如下操作解决:

 

再执行前面操作,

# cd  jpeg-6b/

# ./configure --prefix=/usr/local/webserver/jpeg

# make && make install

如图, jpeg安装成功

 

2.安装 libpng

# cd ../libpng-1.6.34/

# ./configure --prefix=/usr/local/webserver/libpng

# make && make install

 

 

3.安装 freetype

cd ../freetype-2.4.0/

./configure --prefix=/usr/local/webserver/freetype

#  make && make install

 

3.编译php

# ./configure --prefix=/usr/local/webserver/php5 --with-gd --enable-gd-native-ttf --enable-mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --with-jpeg-dir=/usr/local/webserver/jpeg --with-png-dir=/usr/local/webserver/libpng --with-freetype-dir=/usr/local/webserver/freetype --enable-fpm

#  make && make install

 

运行 phpinfo(), 结果如图,成功

 

重启php-fpm,验证码可以正常显示。

 

0 条评论
发表一条评论