如何正确配置GD对PHP的支持?我在调用imagettfbbox()时遇到错误 [英] How can I correctly configure GD support for PHP? I am getting an error calling imagettfbbox()
问题描述
将Symfony2.0和Gregwar Captcha捆绑软件用于Symfony 2.0
操作系统:Mac OS 10.10(Yosemite)
Using Symfony2.0 and Gregwar Captcha Bundle for Symfony 2.0 Operating System: Mac OS 10.10 (Yosemite)
按照说明安装CaptchaBundle后,我第一次使用它,会遇到以下错误:
After having installed the CaptchaBundle following the instructions, the first time I use it, I get the following error:
致命错误:调用未定义函数
Gregwarreg
中的CaptchaBundle\Generator\imagettfbbox()/Users/pgbonino/Sites/preparatest/vendor/bundles/Gregwar/CaptchaBundle/Generator/CaptchaGenerator.php
在第176行
Fatal error: Call to undefined function Gregwar\CaptchaBundle\Generator\imagettfbbox() in /Users/pgbonino/Sites/preparatest/vendor/bundles/Gregwar/CaptchaBundle/Generator/CaptchaGenerator.php on line 176
我的phpinfo告知:
My phpinfo informs this:
<h2><a name="module_gd">gd</a></h2>
<table border="0" cellpadding="3" width="600">
<tbody><tr><td class="e">GD Support </td><td class="v">enabled </td></tr>
<tr><td class="e">GD Version </td><td class="v">bundled (2.1.0 compatible) </td></tr>
<tr><td class="e">GIF Read Support </td><td class="v">enabled </td></tr>
<tr><td class="e">GIF Create Support </td><td class="v">enabled </td></tr>
<tr><td class="e">JPEG Support </td><td class="v">enabled </td></tr>
<tr><td class="e">libJPEG Version </td><td class="v">9 compatible </td></tr>
<tr><td class="e">WBMP Support </td><td class="v">enabled </td></tr>
<tr><td class="e">XBM Support </td><td class="v">enabled </td></tr>
</tbody></table>
显然,GD模块已正确加载。
So, apparently the GD module is correctly loaded.
对我得到的错误有任何想法吗?
Any idea on the error I am getting?
推荐答案
比较您的phpinfo()输出给我我发现尽管GD处于活动状态,但您的帽子没有安装FreeType。 imagettfbbox()上的PHP文档表示该功能需要GD库和FreeType库。
Comparing your phpinfo() output to mine I find that although GD is active FreeType is missing in your PHP installation. The PHP docs on imagettfbbox() say that "This function requires both the GD library and the FreeType library."
这是我的phpinfo()的相应部分:
Here is the corresponding section of my phpinfo():
gd
GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.5.3
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.6.13
WBMP Support enabled
XBM Support enabled
在phpinfo开头的 Configure Command 块也应该列出自由类型:
The Configure Command block at the beginning of phpinfo should list freetype too:
'./ configure' '--prefix = / usr / local / Cellar / php55 / 5.5.18''--localstatedir = / usr / local / var''--sysconfdir = / usr / local / etc / php / 5。 5''--with-config-file-path = / usr / local / etc / php / 5.5''--with-config-file-scan-dir = / usr / local / etc / php / 5.5 / conf。 d''--with-iconv-dir = / usr''--enable-dba''--with-ndbm = / usr''--enable-exif''--enable-intl''--enable- soap''--enable-wddx''--enable-ftp''--enable-sockets''--enable-zip''--enable-shmop''--enable-sysvsem''--enable-sysvshm ''--enable-sysvmsg''--enable-mbstring''--enable-mbregex''--enable-bcmath''--enable-calendar''--with-zlib = / usr / local / opt / zlib''--with-ldap''--with-ldap-sasl = / usr''--with-xmlrpc''--with-kerberos = / usr''--with-gd''-启用- gd-native-ttf''-with-freetype-dir = / usr / local / opt / freetype''--with-icu-dir = / usr / local / opt / icu4c'' --with-jpeg-dir = / usr / local / opt / jpeg''--with-png-dir = / usr / local / opt / libpng''--with-gettext = / usr / local / opt / gettext ''--with-libedit''--with-unixODBC = / usr / local / opt / unixodbc''--with-pdo-odbc = unixODBC,/ usr / local / opt / unixodbc''--mandir = / usr / local / Cellar / php55 / 5.5.18 / share / man''--with-mhash''--with-curl''--with-s nmp = / usr''--with-bz2 = / usr''--disable-debug''--with-openssl = / usr''--with-xsl = / usr''--with-apxs2 = / usr / sbin / apxs''--libexecdir = / usr / local / Cellar / php55 / 5.5.18 / libexec''--with-mysql-sock = / tmp / mysql.sock''--with-mysqli = mysqlnd ''--with-mysql = mysqlnd''--with-pdo-mysql = mysqlnd''--enable-pcntl''--enable-zend-signals''--enable-dtrace''--enable-opcache '
'./configure' '--prefix=/usr/local/Cellar/php55/5.5.18' '--localstatedir=/usr/local/var' '--sysconfdir=/usr/local/etc/php/5.5' '--with-config-file-path=/usr/local/etc/php/5.5' '--with-config-file-scan-dir=/usr/local/etc/php/5.5/conf.d' '--with-iconv-dir=/usr' '--enable-dba' '--with-ndbm=/usr' '--enable-exif' '--enable-intl' '--enable-soap' '--enable-wddx' '--enable-ftp' '--enable-sockets' '--enable-zip' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-mbstring' '--enable-mbregex' '--enable-bcmath' '--enable-calendar' '--with-zlib=/usr/local/opt/zlib' '--with-ldap' '--with-ldap-sasl=/usr' '--with-xmlrpc' '--with-kerberos=/usr' '--with-gd' '--enable-gd-native-ttf' '--with-freetype-dir=/usr/local/opt/freetype' '--with-icu-dir=/usr/local/opt/icu4c' '--with-jpeg-dir=/usr/local/opt/jpeg' '--with-png-dir=/usr/local/opt/libpng' '--with-gettext=/usr/local/opt/gettext' '--with-libedit' '--with-unixODBC=/usr/local/opt/unixodbc' '--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc' '--mandir=/usr/local/Cellar/php55/5.5.18/share/man' '--with-mhash' '--with-curl' '--with-snmp=/usr' '--with-bz2=/usr' '--disable-debug' '--with-openssl=/usr' '--with-xsl=/usr' '--with-apxs2=/usr/sbin/apxs' '--libexecdir=/usr/local/Cellar/php55/5.5.18/libexec' '--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=mysqlnd' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--enable-pcntl' '--enable-zend-signals' '--enable-dtrace' '--enable-opcache'
可能的解决方案
从您的在我的在OSX Yosemite上安装完整PHP的说明上进行评论,我知道您已经使用Homebrew软件包管理器安装了PHP。因此,您可能想尝试使用此方法来解决您的问题:
From your comment on my instructions to install a full PHP on OSX Yosemite I know that you have installed PHP using the Homebrew package manager. So you might want to try this to solve your problem:
brew install freetype
这篇关于如何正确配置GD对PHP的支持?我在调用imagettfbbox()时遇到错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!