分类: LINUX
2008-05-26 09:51:20
安装环境及需求:
1.系统:RedHat AS4(update2)
2.软件包需求:cacti-0.8.6j,mysql-5.0.20,php-5.2.0,apache2.0.58(以上均为源码包).
安装配置过程:
1. 安装apache2.0.58
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/apache2 --enable-modules=so
# make;make install
编译选项比较简单,--prefix=你需要把apache安装的位置,--enable-modules=so意思是可以动态加载apache所需
要的.so 的模块
安装完成后,编辑apache的配置文件,使之能正常使用:
# vi /usr/local/apache2/conf/httpd.conf
找到下面这行:
#ServerName
改为:
ServerName yourIP:80
启动apache:
#/usr/local/apache2/bin/apachectl start
在浏览器里输入你的IP或者localhost测试一下,是否能看到apache的测试页,成功的话,说明安装成功
2.安装mysql-5.0.20
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/mysql
# make;make install
# cp support-files/my-medium.cnf /etc/my.cnf (这一步是将配置文件拷贝到/etc下面)
编译选项当中指定安装路径就可以了
配置mysql过程:
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local/mysql
#./bin/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql var
#chogrp -R mysql .
启动mysql
#./bin/mysqld_safe --user=mysql &
如果看到下面的信息,就说明启动成功了
# Starting mysqld daemon with databases from /usr/local/mysql/var
可以测试一下,看看能不能登陆mysql数据库
# /usr/local/mysql/bin/mysqladmin -uroot password '你的密码' (给初始登陆mysql的用户root设置密码,当
然不设置也能登陆,推荐设置密码)
# /usr/local/mysql/bin/mysql -uroot -p你的密码 (注意: -p后面不要带空格)
如果出现下面的欢迎字样,说明连接成功:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9 to server version: 5.0.20a-log
mysql>
3.安装php-5.2.0
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-
mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc
#make;make install
编译选项中--with-apxs2=/usr/local/apache2/bin/apxs 是说将PHP模块编译进apache,--with-
mysql=/usr/local/mysql 是说指定mysql的路径(其实就是告诉PHP我们的mysql的一些头文件信息,如果你的
mysql和PHP不是同一台机器的话,指定mysql的头信息是编译必要的),--with-config-file-
path=/usr/local/php/etc 是说将PHP的主配置文件放在什么地方,这是个人习惯
#cp php.ini-dist /usr/local/php/etc/php.ini
#vi /usr/local/php/etc/php.ini
找到如下内容:
register_globals = Off
改为:
register_globals = On
为了使PHP能够配合apache使用,还需要修改apache的配置文件:
#vi /usr/local/apache2/conf/httpd.conf
找到下面字段:
DirectoryIndex
在iindex.html前面添加index.php
并在配置文件最后加入如下字段:
AddHandler php5-script .php
AddType text/html .php
测试PHP是否正常运行:
#vi /usr/local/apache2/htdocs/index.php
写入下面一行:
<?php phpinfo() ?>
保存退出后重新启动apache
#/usr/local/apache2/bin/apachectl restart
这里需要注意,如果系统的selinux没有关闭的话,我们的php的模块是不能被apache正确找到的,所以在重起apache
之前,请将selinux关闭,具体做法是:
#vi /etc/selinux/config
找到如下字段:
SELINUX=enforcing
改为:
SELINUX=disabled
保存退出后需要重新启动电脑
在浏览器里输入IP,如果能够看到phpinfo的测试页,那么PHP已经正常工作了
4.安装cacti-0.8.6j
安装前的准备:由于cacti需要net-snmp和rrdtool两个工具来配合使用,所以需要安装这两个工具,由于默认完
全安装RedHat AS4的情况下这两的工具是都安装好的,所以我之前没有提到,如果没有安装这两个工具,那么建
议去去找相关的rpm包来安装,这个网站使用起来很方便,只要输入工具的名字,就能把rpm
包匹配的系统版本的所有rpm包列出来,很方便,rpm包的安装,我这里就不赘述了
以下的配置是默认安装好了上述两个工具的配置
解压cacti的软件包,进行如下操作:
#mv cacti-0.8.6j /usr/local/apache2/htdocs/cacti
#cd /usr/local/apache2/htdocs/cacti
#/usr/local/mysql/bin/mysql -uroot -p你的密码
mysql> grant all privileges on *.* to '你的用户名[email=]'@'localhost'[/email] identified by '为这用户添加的密码'
with grant option;
mysql> create database cacti;
mysql> exit
#/usr/local/mysql/bin/mysql -u用户名 -p你的密码 cacti < cacti.sql
#vi include/config.php
修改如下段落:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
改为:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "用户名";
$database_password = "你的密码";
$database_port = "3306";
修改snmp的配置文件:
#vi /etc/snmp/snmpd.conf
修改下面几部分内容:
1.)com2sec notConfigUser default public
改为:com2sec notConfigUser localhost public
2.)access notConfigGroup "" any noauth exact systemview none none
改为:access notConfigGroup "" any noauth exact all none none
3.)#view all included .1 80
去掉注释
保存退
启动snmp
#/etc/init.d/snmpd start
修改计划任务,使CACTI每5分钟获得一次数据:
#crontab -e -u 用户名
添加如下内容:
*/5 * * * * /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php > /dev/null 2>&1
保存退出
#chown -R rra/ log/
这样cacti就基本配置完成了
在浏览器里输入IP/cacti初始进入的时候需要告诉cacti你的PHP的可执行文件的路径,其他默认就可以,默认的
用户名和密码是admin和admin。进去后要马上修改密码,保存后就进入cacti的世界了。