最近闲来无事做了个商城,本地测试没问题,移到服务器上发现,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