php安装gd扩展
做php开发经常需要用到gd库,但是也遇到几次部署环境默认没有安装gd的情况,遂在此做下总结,以备不时之需.
通过yum,apt-get等包式管理安装方式安装的php直接运行对应命令即可,故不在此赘述。本文主要记录在linux环境下编译gd扩展及其所需依赖。
gd扩展主要依赖zlib,freetype,libpng,libjpeg这4个库,所以我们先编译这四个库。
- 安装zlib
在zlib项目主页下载最新版本
解压后进入源码目录,进行配置、编译和安装操作
./configure --prefix=/user/local/zlib #指定安装目录,这里是因为不方便安装在默认目录下的特殊操作
make && make install
设置临时环境变量以便后续编译libpng和gd(因为我编译png时提示找不到zlib.h,所以加上了这个)
export LDFLAGS="-L/user/local/zlib/lib"
export CPPFLAGS="-I/user/local/zlib/include"
- 安装freetype
在freetype的项目主页下载稳定版本源码
解压并进入源码目录
./configure --prefix=/user/local/freetype #同上,指定安装目录
make && make install
- 安装libpng
在libpng项目主页上下载源码
解压并进入源码目录
./configure --prefix=/user/local/libpng
make && make install
- 安装libjpeg
在libjpeg项目主页上下载源码
解压并进入源码目录
./configure
--prefix=/user/local/libjpeg
--enable-shared #libjpeg默认不会以共享方式安装,所以需要打开
make && make install
如果一切顺利的话,我们就可以开始安装gd扩展了,php-gd的源码貌似在pecl上找不到,所以我直接在php的源码包里面找了一份,拷贝到临时目录,使用phpize生成configure文件
然后进行配置和编译:
./configure
--with-php-config=/user/local/php/bin/php-config
--with-jpeg-dir=/user/local/libjpeg
--with-png-dir=/user/local/libpng
--with-freetype-dir=/user/local/freetype
--with-zlib-dir=/user/local/zlib
make && make install
其中--with-php-config是指向安装php后生成的一个配置工具,主要用于扩展的编译配置
其他的参数对应指向先前安装依赖的位置
没有出错的话,编译器会提示生成的gd.so已经拷贝到php的扩展目录,我们只需要在php.ini中加入一行
extension=gd.so
重启或者重新加载apache(apache handler运行方式)/php-fpm(cgi运行方式)后生效
至此,php的gd扩展安装完成.