在windows下,jpgraph只需要下载后,改下配置文件就可以很方便的使用。

但没想到在linux下还得这么麻烦,今天弄了半天,终于成功了。

今天实现的分为两个部分:

1,linux下编译GD库,以使php能够使用jpgraph。

2,更改jpgraph配置,解决jpgraph error:25049,还有中文显示的问题。

 

* 首先是编译GD库,在网上搜了很多资料,主要参考:

   http://www.2cto.com/os/201203/124094.html

   http://hi.baidu.com/mallor/item/08b481136055e18f89a9560e

   http://daigong.iteye.com/blog/1101176

下面把内容也贴一下:

1、安装 zlib 
百度一下即可下载   zlib-1.2.3.tar.gz 
tar -zxf zlib-1.2.3.tar.gz 
cd zlib-1.2.3 
./configure –prefix=/home/work/xxl/zlib
make 
make install 
后面有可能找不到zlib.a,如果出现这种情况则需要重新编译(一般是64 位 电脑才会出现)。解决方法:
cd zlib-1.2.3 //进入zlib目录

CFLAGS="-O3 -fPIC" ./configure   //使用64位元的方法进行编译

make

make install

 
 
2、安装libtool-1.X.tar.gz  
 
./configure 
make 
make install 
 
3、安装 jpeg 
jpeg-6b.tar.gz 
 
mkdir -p /usr/local/jpeg6 
mkdir -p /usr/local/jpeg6/bin 
mkdir -p /usr/local/jpeg6/lib 
mkdir -p /usr/local/jpeg6/include 
mkdir -p /usr/local/jpeg6/man 
mkdir -p /usr/local/jpeg6/man1 
mkdir -p /usr/local/jpeg6/man/man1 
tar -zxf jpeg-6b.tar.gz 
cd jpeg-6b 
./configure –prefix=/home/work/xxl/jpeg6  –enable-shared –enable-static 
make 
make install 
 
若出现错误:
make: ./libtool:命令未找到 
make: *** [jcapimin.lo] 错误 127 
./libtool --mode=compile gcc -O2  -I. -c ./cjpeg.c 
make: ./libtool:命令未找到 
make: *** [cjpeg.lo] 错误 127 
 
解决方法 
 
cp /home/work/xxl/libtool/share/libtool/config/config.guess . 
cp /home/work/xxl/libtool/share/libtool/config/config.sub .
 
4、安装 libpng 
libpng-1.2.16.tar.gz 
tar -zxf libpng-1.2.16.tar.gz 
cd libpng-1.2.16 
./configure –prefix=/home/work/xxl/libpng 
make 
make install 
 
5、安装 freetype 
freetype-2.3.4.tar.gz 
tar -zxf freetype-2.3.4.tar.gz 
cd freetype-2.3.4 
mkdir -p /usr/local/freetype 
./configure –prefix=/home/work/xxl/freetype 
make 
make install 
 
6、安装 GD 
wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/gd-2.0.33.tar.gz 
tar -zxf gd-2.0.33.tar.gz 
cd gd-2.0.33 
mkdir -p /usr/local/gd
./configure –prefix=/home/work/xxl/gd2 –with-jpeg=/home/work/xxl/jpeg6/ –with-png=/home/work/xxl/libpng/ –with-zlib=/home/work/xxl/zlib/ –with-freetype=/home/work/xxl/freetype/ 
 
make 
make install 

 

7、

[php安装目录]/bin/phpize 
Java代码  
./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-gettext=[gettext安装目录] --with-gd=[gd安装目录]  
make  
make install
 
修改php.ini文件加载gd组件,向extension_dir指向的路径里面添加gd.so,并且增加一行代码 extension=gd.so
 
8、重启apache。  
 
 
然后通过phpinfo()就可以看到支持gd了。
 

linux下GD库的安装 以及jpgraph的配置_jpgraph配置

 

然后是第二件事,由于linux下没有字符集,还需要下载:

1、添加linux的字库。拷贝simsun.ttc simhei.ttf(可以网上下载)两个文件到linux的指定目录下,如: ~/xxl//share/fonts/TrueType/

2、修改/jpgraph/src/目录下面的jpg-config.inc.php

linux下GD库的安装 以及jpgraph的配置_jpgraph配置_02

3、上面完成后就可以支持中文了(解决了jpgraph error 25409)。

4、画曲线图

 

linux下GD库的安装 以及jpgraph的配置_GD库编译_03

效果如下:

 

linux下GD库的安装 以及jpgraph的配置_jpgraph配置_04

 另外,要想在背景图上面显示节点的坐标,需要将$graph-> Add($lineplot);写在 $lineplot=new LinePlot($ydata);下面,如果写在最下面 就不会显示坐标。。这个原因还不知道。