我的 GD 库 怎么没有 FreeType 扩展 ?

业务需求要用到 imagefttext 函数,发现GD库一开始安装时没有添加 FreeType;

call to undefined function imagettftext

因为我们需要在图片上面加水印;
只是安装 gd 库是不行的,必须安装 FreeType kuozhan扩展类库;
php提供了扩展官网;
支持php所有扩展(连这个网站搜不到的就不是php扩展);
哪里不会点哪里;
首先服务器上面必须安装php
没安装php的小伙伴可以安装PHP
这里我也把FreeType压缩包下载到了本地 点我下载
方便大家下载(活雷锋);
感受飞一般的感觉;
哈哈;
2秒过去了 .....
下载完成之后;
解压压缩包 (压缩包的正确做法);

tar -jxvf freetype-2.4.0.tar.gz
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype --enable-shared
make && make install //编译及安装

10秒过去了 .....
Ok, freetype安装好后;
我们重新编译GD把freetype编译进去;

cd /usr/local/src/php-7.1.20/ext/gd  //这里是我本地的位置

ll 查看一下是否存在 configure 文件夹;

这里我们需要执行一下;

/usr/local/php/bin/phpize //如果存在此文件夹 可以跳过

如果php安装的路径不是我这个路径;
还可以执行这个命令找到 phpize;

which phpize //返回phpize的路径

phpize

该phpize命令是用来为PHP扩展准备构建环境;
想详细了解的 点这里

Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

出现以上的字幕说明成功了;
我们再来执行;

./configure --with-freetype-dir=/usr/local/freetype
make && make install //安装及编译

ok gd库安装成功后;
接下来就可以修改 php.ini文件了;
这里我装作不知道php.ini文件在哪个地方 (其实我真的不知道);
可以执行命令;

[root@VM_0_16_centos curl]# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php/lib
Loaded Configuration File => /usr/local/php/lib/php.ini

编辑php.ini文件

vim /usr/local/php/lib/php.ini

在下面加上;

extension=gd.so

然后在重新启动 php;

pkill php-fpm //杀死php进程
/usr/local/php/sbin/php-fpm //启动php

进入phpinfo 说明 gd安装成功;
phpinfo-gd
离人生巅峰又近了一步;


后面报错补充

Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()

让GD库支持JPEG格式图片扩展;
首先安装jpegsrc;
cd /usr/local/src 目录下

wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
./configure --prefix=/usr/local/jpeg 
make && make instal

接下来开始重新编译gd库;

/usr/local/src/php-7.1.20/ext/gd
make clean //清除上次make产生的文件
rm -rf /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/gd.so  //删除上次产生的gd.so
/usr/local/php/bin/phpize
//开始重新编译 这次增加了 with-jpeg-dir
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype
make && make install

然后产生了新的gd.so;
接下来重启php服务;
你的GD库从此以后就支持jpeg的图片;
phpinfo
感叹:程序员的生活,就是遇到问题解决问题;

史大坨博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论