文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>在RedHat AS 4下安装支持中文的Cacti

在RedHat AS 4下安装支持中文的Cacti

时间:2006-06-19  来源:zqli

 

安装RedHat AS 4原始系统,不要选择Web服务器的所有包,选择Mysql开头的所有包,选择开发工具上面的所有包.

 

安装Apache

tar -zvxf httpd-2.2.tar.gz

cd httpd-2.2

./configure --prefix=/usr/local/apache --enable-so

make

make install

 

安装Net-snmp

在disk 2上执行

# rpm -ivh lm_sensors-2.8.7-2.i386.rpm

在disk 2,disk 4上执行

# rpm -ivh net-snmp*

# rpm -qa | grep net-snmp

net-snmp-libs-5.1.2-11

net-snmp-perl-5.1.2-11

net-snmp-5.1.2-11

net-snmp-devel-5.1.2-11

net-snmp-utils-5.1.2-11

# vi /etc/snmp/snmpd.conf

更改 1、com2sec notConfigUser default     public

    改为:com2sec notConfigUser   127.0.0.1     public

    2、access notConfigGroup ""     any     noauth   exact systemview none none

    改为:access notConfigGroup ""     any     noauth   exact all none none

    3、#view all   included .1       80

    将前面的 # 注释 去掉。

保存退出 :wq

# service snmpd restart

# service mysqld start

/usr/local/apache/bin/apachectl start

chkconfig --level 345 snmpd on

chkconfig --level 345 mysqld on

 

* 设置环境变量

[root@leo ~]# mkdir /tmp/rrdbuild

[root@leo ~]# mkdir /usr/local/rrdtool-1.2.12

BUILD_DIR=/tmp/rrdbuild

INSTALL_DIR=/usr/local/rrdtool-1.2.12

* zlib

cd $BUILD_DIR

wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gz

tar  zxf zlib-1.2.2.tar.gz

cd zlib-1.2.2

env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb

make

make install

* libpng

cd $BUILD_DIR

wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gz

tar zxvf libpng-1.2.8-config.tar.gz

cd libpng-1.2.8-config

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib"  CFLAGS="-O3 -fPIC" \

./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

* freetype

cd $BUILD_DIR

wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gz

tar zxvf freetype-2.1.9.tar.gz

cd freetype-2.1.9

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \

./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

* libart_lgpl

cd $BUILD_DIR

wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz

tar zxvf libart_lgpl-2.3.17.tar.gz

cd libart_lgpl-2.3.17

env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

* 再次设置环境变量

IR=-I$BUILD_DIR/lb/include

CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"

LDFLAGS="-L$BUILD_DIR/lb/lib"

CFLAGS=-O3

export CPPFLAGS LDFLAGS CFLAGS

* rrdtool

mkdir $BUILD_DIR/rrdtool-1.2.12

cd $BUILD_DIR/rrdtool-1.2.12

wget http://211.155.16.55/linux_soft/rrdtool-1.2.12.tar.gz

tar zxvf rrdtool-1.2.12.tar.gz

cd rrdtool-1.2.12/src/

 

rrdtool 1.2.12 中文化 Patch , 若不懂 patch 请先研究用法

(建议手动修改源代码)

新版的 rrd (1.2.x) 调用 FT (freetype2) 做 TTF 输出

所以程序用 1.0.x 版完全不能适用哦,切记

 

# diff -u rrd_gfx.c.bak rrd_gfx.c

--- rrd_gfx.c.bak       2005-12-19 04:30:45.000000000 +0800

+++ rrd_gfx.c   2006-04-23 11:05:47.000000000 +0800

@@ -384,6 +384,7 @@

   int          n;

   int           error;

   int        gottab = 0;

+  wchar_t* w_text;

 

 #ifdef HAVE_MBSTOWCS

   wchar_t      *cstr;

@@ -414,6 +415,8 @@

   string->transform.xy = (FT_Fixed)(-sin(M_PI*(rotation)/180.0)*0x10000);

   string->transform.yx = (FT_Fixed)( sin(M_PI*(rotation)/180.0)*0x10000);

   string->transform.yy = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);

+  w_text = (wchar_t) calloc (string->count,sizeof(wchar_t));

+  mbstowcs(w_text,text,string->count);

 

   use_kerning = FT_HAS_KERNING(face);

   previous    = 0;

@@ -443,7 +446,7 @@

     glyph->pos.x = 0;

     glyph->pos.y = 0;

     glyph->image = NULL;

-    glyph->index = FT_Get_Char_Index( face, letter );

+    glyph->index = FT_Get_Char_Index( face, w_text[n]);

 

     /* compute glyph origin */

     if ( use_kerning && previous && glyph->index ) {

@@ -516,6 +519,7 @@

       string->width = string->bbox.xMax - string->bbox.xMin;

   } */

   string->height = string->bbox.yMax - string->bbox.yMin;

+  free(w_text);

   return string;

 }

 

diff -u rrd_graph.c.bak rrd_graph.c

--- rrd_graph.c.bak     2005-12-19 04:30:45.000000000 +0800

+++ rrd_graph.c 2006-04-23 11:05:53.000000000 +0800

@@ -2871,7 +2871,8 @@

     tzset();

 #endif

 #ifdef HAVE_SETLOCALE

-    setlocale(LC_TIME,"");

+    //setlocale(LC_TIME,"");

+    setlocale(LC_ALL,"zh_CN.GB2312");

 #endif

     im->yorigin=0;

     im->xorigin=0;

 

打完补丁后,继续

cd /tmp/rrdbuild/rrdtool-1.2.12/rrdtool-1.2.12

./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl

make clean

make

make install

* GD

cd $BUILD_DIR

wget http://211.155.16.55/linux_soft/linux%20web%20server/gd-2.0.33.tar.gz

tar zxvf gd-2.0.33.tar.gz

cd gd-2.0.33

./configure --prefix=/usr/local/gd --with-freetype=/usr/local/freetype --

with-libpng=/usr/local/libpng

make

make install

 

PHP:

cd $BUILD_DIR

wget http://211.155.16.55/linux_soft/php-5.1.2.tar.gz

tar zxvf php-5.1.2.tar.gz

cd php-5.1.2

./configure --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/lib/mysql --with-gd=/usr/local/gd --with-zlib --with-png=/usr/local/libpng --with-jpeg --with-freetype=/usr/local/freetype --enable-sockets

make

make install

cp ./php.ini-dist /usr/local/lib/php.ini

 

修改httpd.conf

#vi /usr/local/apache/conf/httpd.conf

加载php模块,去掉注释“#”,如没有此行,请加上。

LoadModule php5_module        modules/libphp5.so

加上此两行

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

 

DirectoryIndex index.html

在后面加上 index.php

如下:

DirectoryIndex index.html index.php

重启Apache生效

 

Cacti:

cp cacti-0.8.6g.tar.gz /usr/local/apache/htdocs

cd /usr/local/apache/htdocs

tar zxvf cacti-0.8.6g.tar.gz

mv cacti-0.8.6g cacti

cd cacti

mysqladmin -uroot create cacti

mysql -uroot cacti < cacti.sql

创建帐号:

mysql -uroot

grant all privileges on cacti.* to cactiuser@localhost identified by 'cacti';

flush privileges;

exit

useradd cactiuser

chown –R cactiuser rra/ log/

vi ./include/config.php

$database_type = “mysql”;

$database_default = “cacti”;

$database_hostname = “localhost”;

$database_username = “cactiuser”;

$database_password = “cacti”;

vi /etc/crontab

*/5 * * * * cactiuser /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php >  /dev/null 2>&1

 

我们发现,如果将一个device以中文命名,会在devices页面出现乱码,而且图像也会出现乱码。为了解决这些问题,实现使用中文的目的,我们需要修改cacti和rrdtool的代码,以让其支持中文。

注意:我这里所说的“支持中文”只是让cacti能显示中文,而不是将cacti全部汉化。如果有朋友有兴趣想要为cacti的汉化出一份力的话,可以联系其作者。

 

软件版本:

cacti-0.8.6g

rrdtool-1.2.12

支持中文环境的linux

 

首先我们要解决“Devices”的页面的中文乱码的问题。

编辑host.php文件,查找"eregi_replace”(大概在766行左右),将下面的代码:

 

 

CODE:[Copy to clipboard]<a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php prin

t eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["descripti

on"]);?></a>

改为:

 

CODE:[Copy to clipboard]<a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php prin

t  $host["description"];?></a>

注意:我并没有仔细研究作者究竟要用"eregi_replace“过滤什么东西,而只是简单的将其删除以达到显示中文的目的。如果有朋友可以通过修改该代码实现中文显示而又能继续进行过滤的话,麻烦告诉我。

 

最后在cacti的“setting”-》“Paths”-》“RRDTool Default Font Path”中填上中文的fonts,比如:“/usr/share/fonts/zh_CN/TrueType/gbsn00lp.ttf”。

 

在支持中文环境的linux上能成功实现中文显示。

 

输入下面地址测试:

http://127.0.0.1/cacti/

默认的用户名和密码都是admin.

 

500)this.width=500;" border=0>

 

 

500)this.width=500;" border=0>

 

500)this.width=500;" border=0>

 

500)this.width=500;" border=0>
相关阅读 更多 +
排行榜 更多 +
虚拟战警

虚拟战警

飞行射击 下载
反恐射击英雄最新版

反恐射击英雄最新版

飞行射击 下载
坦克交火

坦克交火

飞行射击 下载