在做公司項目的過程中,發現在本地的驗證碼沒有問題,在linux上死活加載不出來,對着一張驗證碼圖片看了一天,才發現是php的GD庫沒安裝,折騰了好久,安裝GD庫也出現了好多問題!
我的php是源碼安裝的,
先安裝 gd 前置庫 : freetype ,jpegsrc,libpng。
1.freetype
wget http://downloads.sourceforge.net/freetype/freetype-2.7.1.tar.bz2
tar jxvf freetype-2.7.1.tar.bz2
-----------------------------------------我是分割線----------------------------------------------------
如果解壓的時候出現以下錯誤,你可以嘗試着安裝bzip2,因爲可能是你解壓縮軟件沒安裝
tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
解決方法: yum install bzip2
-----------------------------------------我是分割線----------------------------------------------------
cd freetype-2.7.1
./configure --prefix=/usr/local/freetype
make && make install
2.jpegsrc
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg
make && make install
3.libpng
wget https://downloads.sourceforge.net/project/libpng/libpng16/1.6.34/libpng-1.6.34.tar.gz
tar zxvf libpng-1.6.34.tar.gz
cd libpng-1.6.34
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng
make && make install
接下來切換到php源碼的ext的gd目錄
cd /php-7.1.2/ext/gd
然後運行:/usr/local/bin/phpize
接着運行:./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make && make install
最後修改php.ini文件,添加一行 extension=gd.so
然後重啓apache:
cd /usr/local/apache/bin/
./apachectl stop
./apachectl start
netstat -tnlp #查看apache是否已經開啓
如果出現下面的就表示apache重啓成功
至此,GD庫安裝結束,驗證碼應該能看到了~