php7.4编译安装后,gd库扩展没有安装
运行 rpm -qa | grep gd
发现没有gd.so
运行 yum list | grep php-gd
yum只有一个非常老的gd,而且不是php7 用的,我以为是国内yum源不行,换了国外的源,还是没有,结果google的时候发现,外国人也遇到了这个问题
看来全球劳动人民是一家啊
没办法,只好rpm安装,去http://www.rpmfind.net/linux/rpm2html/search.php?query=php-gd(x86-64)
下载,rpm安装,然后告诉我依赖不对…
还有个方案了,一个是phpize再编译安装
只有一个方案了,pecl安装,首先……你得先看看有没有pecl,进入到php安装目录的bin文件夹下,发现,果不其然,没有pecl
嗯,只能安装一个pecl了,很慢,下载速度不足10kb每秒
wget http://pear.php.net/go-pear.phar -O go-pear.php
执行安装命令:
php go-pear.php
会出现选择,让你选择1-12或者all,你直接回车就行,然后又让你第二次选,依然回车
安装完了,会出现pecl
然而 pecl是疯了么,gd库只有一个2006年版本的!
yum也没有,pecl也没有
那只有最后一招了,phpize,从源码开始,重新下载安装包,打开安装包,找到ext文件夹,找到gd文件夹
1,安装gd库的需要的东西
zlib,freetype,libpng,libjpeg这四个玩意
-
wget http://www.zlib.net/zlib-1.2.11.tar.gz
-
tar -zxvf zlib-1.2.11.tar.gz
-
cd zlib-1.2.11
-
./configure --prefix=/usr/local/zlib
-
make && make install
-
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz
-
tar -zxvf freetype-2.9.tar.gz
-
cd freetype-2.9
-
./configure --prefix=/usr/local/freetype
-
make && make install
-
wget https://nchc.dl.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.xz
-
tar -zxvf libpng-1.6.37.tar.xz
-
cd libpng-1.6.37
-
./configure --prefix=/usr/local/libpng
-
make && make install
-
wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz
-
tar -zxvf jpegsrc.v9d.tar.gz
-
cd jpeg-9d
-
./configure --prefix=/usr/local/libjpeg --enable-shared
-
make && make install
2,安装GD
进入ext里面的gd
-
phpize
-
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-zlib-dir=/usr/local/zlib
-
make && make install
OK,最后开启gd扩展 。配置php.ini文件,添加扩展,重启
extension=gd.so
不过有的服务器,因为没有配置extension_dir直接这么写没用,得带上go.so文件所在的目录
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/gd.so