Home > php教程 > php手册 > Call to undefined function imagettftext()解决方法,calltoundefined

Call to undefined function imagettftext()解决方法,calltoundefined

WBOY
Release: 2016-06-13 08:44:20
Original
1042 people have browsed it

Call to undefined function imagettftext()解决方法,calltoundefined

由 老高 发表于 2014-10-03  在 代码人生 分类

老高在一个新环境中装DEDECMS的时候发现后台验证码无法显示。直接搜索一下这个错误,有人说session错误,有的说权限错误等等,这不胡扯么!只能看源代码了,定位到文件/include/vdimgck.php。出错的函数是imagettftext(),由于织梦使用了@将错误隐去,导致这次莫名的错误。将@去掉,错误立马出现:

<p>Fatal error: Call to undefined function imagettftext()</p>
Copy after login

现在我们就明确了,出现错误的原因是PHP编译时没有加上FreeType。

解决办法:

首先编译安装FreeType,以2.4.0为例:

<code class="hljs bash"><span class="hljs-built_in">wget http://download.savannah.gnu.org/releases/freetype/freetype-<span class="hljs-number">2.4.<span class="hljs-number">0.tar.bz2
<span class="hljs-built_in">tar -jxf freetype-<span class="hljs-number">2.4.<span class="hljs-number">0.tar.bz2
<span class="hljs-built_in">cd reetype-<span class="hljs-number">2.4.<span class="hljs-number">0
<span class="hljs-comment"># 安装到/usr/local/freetype
./configure --prefix=/usr/<span class="hljs-built_in">local/freetype
<span class="hljs-built_in">make && <span class="hljs-built_in">make <span class="hljs-built_in">install
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
Copy after login

下面我们重新编译PHP,加上参数--with-freetype-dir=/usr/local/freetype

<code class="hljs python">./configure \
<span class="hljs-prompt">... \
<span class="hljs-prompt">... \
--<span class="hljs-keyword">with-freetype-dir=/usr/local/freetype
</span></span></span></code>
Copy after login

编译完成重启php

<code class="hljs coffeescript">kill -USR2 `<span class="javascript">cat /usr/local/php/<span class="hljs-keyword">var/run/php-fpm.pid`
</span></span></code>
Copy after login

再GD库中找到FreeType Support说明安装成功!

需要注意的是,如果服务器freetype的版本是1.*,那么你可能需要改变编译参数为--with-ttf[=DIR],以下转自ChinaUnix论坛:

<p>字库 配置开关<br />FreeType 1.x 要激活 FreeType 1.x 的支持,加上 --with-ttf[=DIR]。<br />FreeType 2 要激活 FreeType 2 的支持,加上 --with-freetype-dir=DIR。<br />T1lib 要激活 T1lib(Type 1 字体),加上 --with-t1lib[=DIR]。<br />本地 TrueType 字符串函数 要激活本地 TrueType 字符串函数的支持,加上 --enable-gd-native-ttf。</p>

Copy after login

参考:

http://bbs.chinaunix.net/thread-610205-1-1.html

 

 
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template