Fatal error: Call to undefined function imagettftext()

服务器环境 centos

php 版本是 5.6.15, 源码编译安装

编译时未把 freetype 编译安装, 造成了如题所示的错误.

解决此问题时, 走了许多错路.

现把解决步骤记录一下

1. 可以使用 yum 安装一些所需的依赖库

    yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel

 

2. 进入 php 源码目录, 我的目录是: /opt/source/php-5.6.15 

    可以先执行 make clean 作用是清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

    编译时添加 --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd

 我的配置参数如下:

'./configure' \
'--prefix=/usr/local/php' \
'--with-mysql=/opt/source/mysql' \
'--with-config-file-path=/usr/local/php/etc' \
'--enable-soap' \
'--enable-pdo' \
'--with-pdo-mysql' \
'--with-snmp' \
'--enable-wddx' \
'--with-openssl' \
'--enable-fpm' \
'--with-mcrypt' \
'--enable-mbstring' \
'--with-curl' \
'--with-mhash' \
'--enable-zip' \
'--with-pcre-regex' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-pcntl' \
'--enable-mbregex' \
'--enable-inline-optimization' \
'--with-bz2' \
'--with-zlib' \
'--enable-sockets' \
'--with-png-dir' \
'--with-freetype-dir' \
'--with-jpeg-dir' \
'--with-gd' \
'--with-mysqli' \

不出意外的话, 此处会成功配置成功, 并生成配置文件, 然后执行 make && make install

3. 编译成功之后, 记得要使用编译之后的 php 替换掉环境变量里的 php 命令(如果你把你本地 php 编译环境放入了环境变量的话, 这步可以忽略)

   比如我这里, 就会执行如下两条命令:

    cp /usr/local/php/bin/php /usr/bin/php

  cp /usr/local/php/sbin/php-fpm /usr/sbin/php-fpm

 

运行 phpinfo() 查看, 如果有如下图中红框中的三行, 即表示安装成功

posted @ 2016-01-06 14:16  Debm.Zhang  阅读(495)  评论(0编辑  收藏  举报