发现一个让人无语的事,php7.4编译安装后,gd库扩展没有安装(不知道为啥,可能是编译的时候7.4已经把编译参数 --with-gd 改成了 --enable-gd,大概率我没改?)
运行 rpm -qa | grep gd
发现没有gd.so
郁闷
运行 yum list | grep php-gd
尴尬,yum只有一个非常老的gd,而且不是php7 用的,我以为是国内yum源不行,换了国外的源,还是没有,结果google的时候发现,外国人也遇到了这个问题
https://www.digitalocean.com/community/questions/can-t-figure-out-how-to-install-php-gd-for-php7-with-yum
看来全球劳动人民是一家啊
没办法,只好rpm安装,去http://www.rpmfind.net/linux/rpm2html/search.php?query=php-gd(x86-64)
下载,rpm安装,然后告诉我依赖不对……你个gd库要啥依赖……
还有个方案了,一个是phpize再编译安装,额,这个方案说实在的有点麻烦,他需要gd源码,然后编译进去,我上哪找匹配的gd源码(安装包早就删了……)
只有一个方案了,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文件夹
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
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