今天将一个网站迁移到另一台服务器上,登录时发现不显示验证码图片,检查配置文件是正确的,也不存在文件编码的问题。打开浏览器控制台发现报错Fatal error: Call to undefined function imagettftext(),检查是freetype没有正确安装。
解决: 确保php-gd和freestyle正确安装,而且确保是先安装了freestyle,然后是php-gd;如果是先安装了php-gd,那么在安装完freestyle后,需要make clean 然后重新configure php with freestyle option,我的如下:
./configure \
--with-mysql \
--with-apxs2=/app/deploy/apache/bin/apxs \
--with-gd \
--enable-exif \
--enable-gd-native-ttf \
--enable-inline-optimization \
--with-zlib \
--with-png-dir \
--with-jpeg-dir=/usr/local/jpeg6 \
--with-freetype-dir=/usr/local/lib \
--with-ttf \
--enable-mbstring \
--with-gettext \
--enable-gd-jis-conv
我的问题是php编译安装时指定了gd的目录,其实不用指定。另外,php-gd可以通过 yum install php-gd
安装。
最后通过 phpinfo()
看到的gd信息应该如下:
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.4.5
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
JIS-mapped Japanese Font Support enabled
评论
本文评论功能已关闭。