最近在用可道云进行在线管理家里的NAS,可以就是默认开启了PHP自带GD扩展是不支持`imagefttext`函数。在管理页面疯狂报错,无法使用缩略图,今天终于抽空出来折腾一下。
安装libjpeg
- 在 http://www.ijg.org/ 下载最新版本
// 下载最新版本
wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz
// 解压文件
tar zxvf jpegsrc.v9d.tar.gz
// 进入目录
cd jpeg-9d
// 检查配置
./configure --enable-shared --prefix=/usr/local/jpeg
// 编译安装
make && make install
配置全局可用,不然PHP编译会报错libjpeg.so.9
找不到
vim /etc/ld.so.conf
加入一行:/usr/local/jpeg
ldconfig -v
安装libpng
yum install libpng
yum install libpng-devel
安装freetype
- 在官网下载最新的安装包:https://download.savannah.gnu.org/releases/freetype/
- 获取最新的安装包
freetype-2.9.1.tar.gz
- 编译安装
// 解压文件
tar -zxvf freetype-2.9.1.tar.gz
// 进入目录
cd freetype-2.9.1
// 检查参数
./configure --enable-shared --with-jpeg=/usr/local/libjpeg/ --with-freetype=/usr/local/ --with-png=/usr/local/include/
// 编译
make & make install
PHP编译freetype GD扩展
在这里我使用的是PHP8.0版本,大家可以根据自己的PHP版本来选择
// PHP源码目录
cd /download/php-8.0
// 进入gd目录
cd /download/php-8.0/ext/gd
// 利用phpize
/download/php-8.0/bin/phpize
// 清理之前的安装配置
make clean
// 检查参数
./configure --with-php-config=/download/php8.1/bin/php-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --with-gd
// 编译安装
make & make install
替换gd.so文件
在PHP目录下的lib/php/extensions/no-debug-non-zts-xxxx
xxx是生成的日期,这个不重要。
找到gd.so
拷贝到你使用的PHP环境的lib/php/extensions
然后修改php.ini
使用extension
来引用gd.so文件
extension=/lib/php/extensions/gd.so
重启php -fpm或者更加直接重启服务器
重新运行phpinfo
查看gd是否包含freetype
我是用宝塔,这样的操作太方便