最近閑來無事做了個商城,本地測試沒問題,移到服務器上發現,php沒裝gd庫
好吧,那就裝個, linux 下安裝PHP拓展的方法大同小異,注意有些庫要依賴別的庫,所以我們要先裝依賴包
gd庫主要是用來圖像渲染的。gd庫依賴以下libjpeg、libpng、freetype2、xpm等安裝庫。在php中啟用gd擴展有兩種方式一個是動態編譯方式,一個是靜態編譯方式。動態編譯方式不需要重新編譯php,靜態編譯方式必須重新編譯php。但是無論是動態編譯還是靜態編譯都要先安裝gd的相關依賴庫文件,並且在編譯gd時加到configure參數中。
1、安裝xpm
yum install libXpm-devel
2、安裝zlib
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install
make clean && make distclean
cd ../
3、安裝libjpeg jpeg-9b
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
tar -xzvf jpegsrc.v9b.tar.gz
cd jpegsrc.v9b
./configure --prefix=/usr/lib64 --enable-shared --enable-static
make && make instll
make clean && make distclean
libtool --finish /usr/local/jpeg/lib
cd ../
4、安裝libpng
wget https://nchc.dl.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.gz
tar -xzvf libpng-1.6.37.tar.gz
cd libpng-1.6.37
./configure --enable-shared --enable-static
make && make install
make clean && make && make distclean
cd ../
5、安裝freetype2
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz
tar -xzvf freetype-2.7.tar.gz
cd freetype-2.7
./configure --prefix=/usr/lib64
make && make install
make clean && make distclean
cd ../
6、gd安裝
php安裝時使用--with-gd必須要執行以下命令,在直接安裝gd庫是不需要試用-dir,但是在php安裝的時候需要-dir
wget https://github.com/libgd/libgd/releases/download/gd-2.2.3/libgd-2.2.3.tar.gz
tar -xzvf libgd-2.2.3.tar.gz
cd libgd-2.2.3
./configure --prefix=/usr/lib64 --with-jpeg=/usr/lib64 --with-png=/usr.lib64 --with-zlib --with-freetype=/usr/lib64
make && make install
make clean && make distclean
cd ../
7、php安裝gd庫
靜態編譯
./configure \
--prefix=/usr/local/cp-php-5.6.19 \
--with-apxs2=/usr/local/cp-httpd-2.4.18/bin/apxs \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-png-dir=/usr/lib64 \
--with-jpeg-dir=/usr/lib64 \
--with-freetype-dir=/usr/lib64 \
--with-zlib-dir==/usr/lib64 \
--with-xpm-dir=/usr/lib64/ \
--with-gd=/usr/lib64 \
--with-openssl \
--with-curl \
--with-config-file-path=/usr/local/cp-php-5.6.19/lib \
--enable-calendar \
--enable-mbstring \
--enable-sockets \
--enable-xml \
--enable-json \
--enable-pdo \
--enable-libxml \
--enable-simplexml \
--enable-xmlreader \
--enable-xmlwriter
動態編譯
cd php-5.6.19/ext/gd/
phpize
./configure \
--prefix=/usr/lib64 \
--with-jpeg=/usr/lib64 \
--with-png=/usr.lib64 \
--with-zlib \
--with-freetype=/usr/lib64
make && make install
make clean && make distclean
cd ../
這里我使用的是動態編譯
編譯完后,重啟nginx 發現gd庫並沒有加上
繼續查,發現還要修改php.ini文件
查找gd文件路徑 gd路徑在你的PHP安裝包的/ext文件下 也可以使用 find / -name gd 查找
打開php.ini文件。
源碼是 ;extension_dir = "./"此處我們將前面的分號去掉。 即 ;extension_dir = "/usr/local/php/php-5.4.9/ext/" 同上訴的路徑
接着要在php.ini文件中找到extension的擴展文件區域,增加一句 extension = gd.so,此處前面沒有分號。
重啟nginx 后 發現gd擴展還沒加上。。。。。
發現之前的 extension = gd.so 的改改,,gd.so的改為文件的路徑, 使用 find / -name gd.so 查找 gd.so的路徑后,將
extension = gd.so 改為 extension = 你查到的完整路徑
重啟nginx 后 發現gd擴展還沒加上。。。。。
繼續查,發現 ,,重啟nginx 是沒用的,,,的重啟php-fpm 。
killall php-fpm
php-fpm
如果你輸入php-fpm 提示沒有這個命令,說明你沒有把它加入命名空間,如果你不想加的話。 find / -name php-fpm 找到文件路徑,執行以下是一樣的
刷新頁面,,,,ok了。
參考資料:
https://blog.csdn.net/zouqingfang/article/details/52524379
https://blog.csdn.net/cymen/article/details/72885545
https://www.imooc.com/article/35796
https://www.xuebuyuan.com/3280770.html