phpwithgd
⑴ Centos php 扩展方式安装gd库的方法
网站的第二台服务器跑的的环境主要是Python/Ruby,有时也需要简单跑跑PHP脚本,所以也安装了PHP,环境是Nginx+php-fpm,PHP是源码编译安装的,所以是最小化安装,甚至连mysqli扩展都没有。今天需要用到GD库,才发现没GD库环境,所以需要安装这个扩展。对付单个扩展,单独编译动态加载是比较方便快捷的。安装过程也比较繁杂,这个记录一下,方便后来者。
首先说明,我的PHP是源码编译安装的,可以参看 以源码编译的方式安装PHP与php-fpm。
先安装 gd 前置库 : freetype ,jpegsrc,libpng。
1. freetype
复制代码
代码如下:
wget "http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2"
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./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
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1
3. libpng
复制代码
代码如下:
wget "http://downloads.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz?r=http%3A%2F%2Fwww.libpng.org%2Fpub%2Fpng%2Flibpng.htmlts=1376631135use_mirror=nchc"
tar zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng make make install
接下来需要cd到php源码的 gd 目录,否则会报 cannot find config.m4 之类的错误。
复制代码
代码如下:
cd php-5.3.6
cd ext
cd gd
然后再这个目录执行命令 /usr/local/php/bin/phpize。什么时候需要用到 phpize 呢?当我们需要再加些模块,又不想重新编译php,这些我们就可以用phpize了。我的PHP安装在 /usr/local/php/ 这个目录里,可以根据个人情况修改。
复制代码
代码如下:
/usr/local/php/bin/phpize
现在可以进行单独编译安装了:
复制代码
代码如下:
./configure --with-php-configure=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
或者
./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=php_zip.dll 下面添加一行 extension=gd.so
重启 Nginx 之后再看看是否安装成功了。再执行 /usr/local/php/bin/php -m 查看gd模块是否加载成功。
复制代码
代码如下:
service nginx restart
/usr/local/php/bin/php -m
console列出:
复制代码
代码如下:
[root@nowamagic gd]# /usr/local/php/bin/php -m
[PHP Moles]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
……
看到gd了,说明gd库安装成功。
接下来只要重启 php-fpm 即可:
复制代码
代码如下:
killall php-fpm
/usr/local/php/sbin/php-fpm
phpinfo()一下,看看。
OK,安装成功。
⑵ linux系统如何让php使用GD库函数
linux下为php添加GD库的步骤如下:
一、下载
gd-2.0.33.tar.gz http://www.boutell.com/gd/
jpegsrc.v6b.tar.gz http://www.ijg.org/
libpng-1.2.7.tar.tar http://sourceforge.net/projects/libpng/
zlib-1.2.2.tar.gz http://sourceforge.net/projects/zlib/
freetype-2.1.9.tar.gz http://sourceforge.net/projects/freetype/
php-4.3.9.tar.gz http://www.php.net
二、安装
1.安装zlib
tar zxvf zlib-1.2.2.tar.gz
cd zlib-1.2.2
./configure
make
make install
2.安装libpng
tar zxvf libpng-1.2.7.tar.tar
cd libpng-1.2.7
cd scripts/
mv makefile.linux ../makefile
cd ..
make
make install
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3.安装freetype
tar zxvf freetype-2.1.9.tar.gz
cd freetype-2.1.9
./configure
make
make install
4.安装Jpeg
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-shared
make
make test
make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
5.安装GD
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --with-png --with-freetype --with-jpeg
make install
6.重新编译PHP
tar zxvf php-4.3.9.tar.gz
cd php-4.3.9
./configure (以前的参数) --with-gd --enable-gd-native-ttf --with-zlib --with-png --with-jpeg --with-freetype --enable-sockets
make
make install
<?php
phpinfo();
?>
Ok.....
⑶ 如何检测系统是否支持GD库
开启GD库支持有以下几种方法 检测GD库是否安装命令 php5 -m grep -i gd 或者 php -i grep -i --color gd如未安装GD库,则为服务器安装,方法如下 如果是源码安装,则加入参数 --with-gd 如果是debian系的linux系统,用apt-get安装,如下 apt-get install php5-gd 如果是CentOS系的系统,用yum安装,如下 yum install php-gd 如果是suse系的linux系统,用yast安装,如下 yast -i php5_gd 如果嫌这个世界不够蛋疼呢,可以在原先编译PHP不支持GD的情况下附加 先下zlib源码,libpng源码,gd源码 解压后到源码目录 zlib目录 ./configure --prefix=/usr/local/zlib make ; make install make clean libpng目录 cp scripts/makefile.linux ./makefile ./configure --prefix=/usr/local/libpng make ; make install make clean gd目录 ./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng make ; make install make clean 最后在php.ini中,搜到[gd]后,在下面加一行 extension=/usr/local/libgdgd.so 然后重启php服务,如果不行,试试reboot 所以如果是源码安装,最好还是在编译PHP的时候加参数--with-gd Windows下开启PHP的GD库支持 找到php.ini,打开内容,找到: ;extension=php_gd2.dll 把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。
⑷ Linux 源代码包配置PHP时出错:configure: error: GD build test failed. Please check the config.log
./configure --prefix=/usr/毁侍模悄local/php/ --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/纤码吵usr/local/php/lib/ --with-config-file-scan-dir=/usr/local/etc/ --with-zlib --with-curl --enable-bcmath --with-jpeg-dir --with-png-dir --with-xpm-dir --with-freetype-dir --with-gd --with-mhash --enable-mbstring --with-mcrypt --with-libxml-dir --with-iconv-dir --with-pcre-dir --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd
看一下是不是有库不全?
⑸ linux PHP5.2.5 编译安装gd库 ./configure 应该加什么参数 --enable-gd 或 --with-gd 均无效
如果 gd 是 rpm 安装的, 那就直接 --with-gd
如果 gd 是编译安装的, 那么 --with-gd=/usr/local/gd
后面接 gd 的安装路径, 能看懂吧??
⑹ 如何在PHP中开启GD库支持详解
开启GD库是php中一个重要的参数,常用来处理图像,像图片的任何处理都需要GD库的支持,下面我来介绍各种系统中GD库的开启方法与命令,大家可参考。
Windows下开启PHP的GD库支持
找到php.ini,打开内容,找到:
;extension=php_gd2.dll
把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。
Linux下开启PHP的GD库支持
#开启GD库支持有以下几种方法
##检测GD库是否安装命令
php5 -m | grep -i gd
或者
php -i | grep -i --color gd
##如未安装GD库,则为服务器安装,方法如下
### 如果是源码安装,则加入参数
--with-gd
### 如果是debian系的linux系统,用apt-get安装,如下
apt-get install php5-gd
### 如果是CentOS系的系统,用yum安装,如下
yum install php-gd
### 如果是suse系的linux系统,用yast安装,如下
yast -i php5_gd
### 如果嫌这个世界不够蛋疼呢,可以在原先编译PHP不支持GD的情况下附加
先下zlib源码,libpng源码,gd源码
解压后到源码目录
zlib目录
./configure --prefix=/usr/local/zlib
make ; make install
make clean
libpng目录
cp scripts/makefile.linux ./makefile
./configure --prefix=/usr/local/libpng
make ; make install
make clean
gd目录
./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng
make ; make install
make clean
最后在php.ini中,搜到[gd]后,在下面加一行
extension=/usr/local/libgdgd.so
然后重启php服务,如果不行,试试reboot
好了,不过最后提醒一下,要知道这个世界很多意外的,源码安装,只添加gd库这一个情况下,PHP版本和库的版本各异
,所以:
- 不保证这么付出了这么多后有回报
- 不保证能够成功加载gd.so
- 不保证不怀孕
所以如果是源码安装,最好还是在编译PHP的时候加参数--with-gd
GD库函数
GetImageSize
作用:取得图片的大小[即长与宽] 用法:array GetImageSize(string filename, array [imageinfo]);
ImageArc
作用:画弧线 用法:int ImageArc(int im, int cx, int cy, int w, int h, int s, int e, int col);
ImageChar
作用:写出横向字符 用法:int ImageChar(int im, int font, int x, int y, string c, int col);
ImageCharUp
作用:写出竖式字符 用法:int ImageCharup(int im, int font, int x, int y, string c, int col);
ImageColorAllocate
作用:匹配颜色 用法:int ImageColorAllocate(int im, int red, int green, int blue);
ImageColorTransparent
作用:指定透明背景色 用法:int ImageColorTransparent(int im, int [col]);
ImageCopyResized
作用:复制新图并调整大小 用法:int ImageCopyResized(int dst_im, int src_im, int dstX, int dstY, int srcX,
int srcY, int dstW, int dstH, int srcW, int srcH);
ImageCreate
作用:建立新图 用法:int ImageCreate(int x_size, int y_size);
ImageDashedLine
作用:绘虚线 用法:int ImageDashedLine(int im, int x1, int y1, int x2, int y2, int col);
ImageDestroy 作用:结束图形 用法解释:int ImageDestroy(int im);
ImageFill
作用:图形着色 用法:int ImageFill(int im, int x, int y, int col);
ImageFilledPolygon作用:多边形区域着色 用法:int ImageFilledPolygon(int im, array points, int num_points,
int col);
ImageFilledRectangle作用:矩形区域着色 用法:int ImageFilledRectangle(int im, int x1, int y1, int x2, int
y2, int col);
ImageFillToBorder作用:指定颜色区域内着色 用法:int ImageFillToBorder(int im, int x, int y, int border,
int col);
ImageFontHeight
作用:取得字型的高度 用法:int ImageFontHeight(int font);
ImageFontWidth作用:取得字型的宽度 用法:int ImageFontWidth(int font);
ImageInterlace作用:使用交错式显示与否 用法:int ImageInterlace(int im, int [interlace]);
ImageLine作用:绘实线 用法:int ImageLine(int im, int x1, int y1, int x2, int y2, int col);
ImageLoadFont作用:载入点阵字型 用法:int ImageLoadFont(string file);
ImagePolygon作用:绘多边形 用法:int ImagePolygon(int im, array points, int num_points, int col);
ImageRectangle作用:绘矩形 用法:int ImageRectangle(int im, int x1, int y1, int x2, int y2, int col);
ImageSetPixel作用:绘点 用法:int ImageSetPixel(int im, int x, int y, int col); ImageString 作用:绘横式
字符串 用法:int ImageString(int im, int font, int x, int y, string s, int col);
ImageStringUp作用:绘直式字符串 用法:int ImageStringUp(int im, int font, int x, int y, string s, int
col);
ImageSX
作用:取得图片的宽度 用法:int ImageSX(int im);
ImageSY
作用:取得图片的高度 用法:int ImageSY(int im);
ImageTTFBBox
作用:计算 TTF 文字所占区域 用法:array ImageTTFBBox(int size, int angle, string fontfile, string text);
ImageTTFText作用:写 TTF 文字到图中 用法:array ImageTTFText(int im, int size, int angle, int x, int y,
int col, string fontfile, string text); ImageColorAt 作用:取得图中指定点颜色的索引值 用法:int
ImageColorAt(int im, int x, int y);
ImageColorClosest
作用:计算色表中与指定颜色最接近者 用法:int ImageColorClosest(int im, int red, int green, int blue);
ImageColorExact
作用:计算色表上指定颜色索引值 用法:int ImageColorExact(int im, int red, int green, int blue);
ImageColorResolve
作用:计算色表上指定或最接近颜色的索引值 用法:int ImageColorResolve(int im, int red, int green, int
blue);
ImageColorSet
作用:设定色表上指定索引的颜色 用法:boolean ImageColorSet(int im, int index, int red, int green, int
blue); ImageColorsForIndex 作用:取得色表上指定索引的颜色 用法:array ImageColorsForIndex(int im, int
index);
ImageColorsTotal
作用:计算图的颜色数 用法:int ImageColorsTotal(int im); ImagePSLoadFont 作用:载入 PostScript 字型 用法
:int ImagePSLoadFont(string filename);
ImagePSFreeFont
作用:卸下 PostScript 字型 用法:void ImagePSFreeFont(int fontindex);
ImagePSEncodeFont
作用:PostScript 字型转成向量字 用法:int ImagePSEncodeFont(string encodingfile);
ImagePSText作用:写 PostScript 文字到图中 用法:array ImagePSText(int image, string text, int font, int
size, int foreground, int background, int x, int y, int space, int tightness, float angle, int
antialias_steps);
ImagePSBBox作用:计算 PostScript 文字所占区域 用法: array ImagePSBBox(string text, int font, int size,
int space, int width, float angle);
ImageCreateFromPNG作用:取出 PNG 图型 用法:int ImageCreateFromPng(string filename);
ImagePNG作用:建立 PNG 图型 用法:int ImagePng(int im, string [filename]);
ImageCreateFromGIF作用:取出 GIF 图型 用法:int ImageCreateFromGif(string filename);
ImageGIF作用:建立 GIF 图型 用法:int ImageGif(int im, string [filename]);
⑺ 如何在PHP中开启GD库支持
Windows下开启PHP的GD库支持
找到php.ini,打开内容,找到:
;extension=php_gd2.dll
把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。
Linux下开启PHP的GD库支持
#开启GD库支持有以下几种方法
##检测GD库是否安装命令
php5 -m | grep -i gd
或者
php -i | grep -i --color gd
##如未安装GD库,则为服务器安装,方法如下
### 如果是源码安装,则加入参数
--with-gd
### 如果是debian系的linux系统,用apt-get安装,如下
apt-get install php5-gd
### 如果是CentOS系的系统,用yum安装,如下
yum install php-gd
### 如果是suse系的linux系统,用yast安装,如下
yast -i php5_gd
### 如果嫌这个世界不够蛋疼呢,可以在原先编译PHP不支持GD的情况下附加
先下zlib源码,libpng源码,gd源码
解压后到源码目录
zlib目录
./configure --prefix=/usr/local/zlib
make ; make install
make clean
libpng目录
cp scripts/makefile.linux ./makefile
./configure --prefix=/usr/local/libpng
make ; make install
make clean
如果还有不明白的话咱俩可以一起去后盾人,找找看相关教材看看不就会了,希望能帮到你,给个采纳吧谢谢