發現一個讓人無語的事,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的時候發現,外國人也遇到了這個問題
看來全球勞動人民是一家啊
沒辦法,只好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文件夾
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
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
不過有的服務器,直接這麼寫沒用,得帶上go.so文件所在的目錄
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/gd.so