<a>環境搭建</a>
Cacit 運作環境需要 PHP + Mysql + rrdtool 以及 snmp 工具的支援。
下邊是本次配置需要用到的軟體。
Catci:
cacti-0.8.6e.tar.gz
rrdtool-1.0.50.tar(rrdtool-1.2.27.tar沒有自帶庫,1.0版本的自帶庫檔案,是以先要編譯好GD環境)
net-snmp-5.0.9-2.30E.15
net-snmp-devel-5.0.9-2.30E.15
net-snmp-libs-5.0.9-2.30E.15
net-snmp-utils-5.0.9-2.30E.15 (net-snmp使用系統rpm安裝包就可以,預設snmp.conf在/etc/snmp/snmp.conf)
PHP:
php-4.3.9.tar.gz
curl-7.15.3.tar.gz
freetype-2.1.9.tar.gz
gettext-0.16.1.tar.gz
gd-2.0.35.tar.gz
jpegsrc.v6b.tar.gz
libart_lgpl-2.3.17.tar.gz
libpng-1.2.18.tar.gz
libxml2-2.6.32.tar.gz
zlib-1.2.3.tar.gz
Apache:
httpd-2.0.52.tar.gz
Mysql:
mysql-4.1.7-rc.tar.gz
開始建構完整的 PHP 運作的環境,我們以全新安裝的 RedHatAs4 updata4 作業系統環境為例。
首先使用“rpm –qa|grep 包名稱”檢查Linux AS4 是否有自帶的Mysql和Apache,如果有則使用“rpm –e 安裝包名稱”解除安裝掉
首先編譯安裝Apache httpd server
# tar zxvf httpd-2.0.52.tar.gz
# cd httpd-2.0.52
# ./configure --prefix=/usr/local/apache2 --enable-so --with-rewrite
# make && make install
第二步安裝 PHP+GD 等所需的支援插件
編譯安裝libxml
# tar zxvf libxml2-2.6.32.tar.gz
# cd libxml2-2.6.32.tar.gz
# ./configure --prefix=/usr/local/libxml2/
編譯安裝zlib
# tar zxvf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
#./configure --prefix=/usr/local/zlib2/
編譯安裝jpeg
# tar -zxf jpegsrc.v6b.tar.gz
# cd jpeg-6b/
mkdir /usr/local/jpeg
mkdir /usr/local/jpeg/include
mkdir /usr/local/jpeg/bin
mkdir /usr/local/jpeg/lib
mkdir /usr/local/jpeg/man
mkdir /usr/local/jpeg/man1
# ./configure --prefix=/usr/local/jpeg
( 該版本的 jpeg 在實際安裝過程中,make install 的時候會出現好幾個找不到目錄,或目錄不存在的 error 。隻需按照提示人手建立缺失目錄,然後再令其 make install 直到無任何錯誤提示且順利完成為止。 )
編譯安裝 libpng
# tar zxvf libpng-1.2.18.tar.gz
# cd libpng-1.2.18.tar.gz
#cp scripts/makefile.linux mskefile
#./configure --disable-shared --prefix=/usr/local/libpng2/
編譯安裝 freetype
# tar zxvf freetype-2.1.9.tar.gz
# cd freetype-2.1.9
#./configure --prefix=/usr/local/freetype2
編譯安裝 libart_lgpl
# tar zxvf libart_lgpl-2.3.17.tar.gz
# cd ibart_lgpl-2.3.17
#./configure --prefix=/usr/local/libart/
編譯安裝fontconfig
#tar –zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
make && make install
編譯安裝 gettext
# tar zxvf gettext-0.16.1.tar.gz
# cd gettext-0.16.1
# ./configure --prefix=/usr/local/gettext/
編譯安裝 gd 庫 :
# tar zxvf gd-2.0.35.tar.gz
# cd gd-2.0.35
# ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype2/ --with-libart=/usr/local/libart/ --with-gettext=/usr/local/gettext/ --with-libxml=/usr/local/libxml2
編譯安裝 Curl 支援
# tar zxvf curl-7.15.3.tar.gz
# cd curl-7.15.3
# ./configure --prefix=/usr/local/curl
編譯安裝 PHP
# tar zxvf php-4.3.9.tar.gz
# cd php-4.3.9
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache26/bin/apxs
--with-mysql=/usr/local/mysql
--with-jpeg-dir=/usr/local/jpeg
--with-png-dir=/usr
--with-gd=/usr/local/gd2/ --enable-gd-native-ttf –-with-ttf –-enable-gd-jis-conv
--with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/
--with-curl=/usr/local/curl
--with-gettext=/usr/local/gettext –-enable-xml –-enable-mbstring –-enable-sockets
以上安裝PHP的時候如果出現提示有的檔案找不到,那麼是路徑設定有問題,隻要重新設定路徑就好了。
# cp php.ini-dist /usr/local/php/lib/php.ini ( 拷貝 PHP 配置檔案至安裝目錄 )
# vi /usr/local/apach26/conf/httpd.conf ( 修改 apache 配置檔案并加載 PHP 支援 )
ln –s /usr/local/php/bin/* /usr/local/bin/
要改的有如下幾處
一般都在 #AddType application/x-gzip .gz .tgz 下加一行 :
AddType application /x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
請把上面的 # 号去掉,還有找到
DirectoryIndex index.html index.html.var
在後面加 index.php 讓它把 index.php 做為預設頁
DirectoryIndex index.php index.html index.html.var
儲存 httpd.conf 檔案 .
如果沒有出錯 , 寫一個測試頁放到你網頁目錄下 . 通路就應該可以看到 php 的版本等資訊了 !
#vi /usr/local/apache2/htdocs/test.php
<?php
Phpinfo();
?>
:wq(儲存退出)
啟動 apache
# /usr/local/apache2/bin/apachectl start
編輯apache開機啟動,
#vi /etc/rc.d/rc.local
添加:/usr/local/apache2/bin/apachectl –k start
對php編譯選項的解釋:
--prefix=/usr/local/php //指定PHP的安裝目錄
--with-apxs2=/usr/local/apache2/bin/apxs //支援Apache子產品
--with-mysql=/usr/local/mysql //支援MySQl
--with-gd=/usr/local/libgd //支援GD庫
--enable-gd-native-ttf //激活對本地 TrueType 字元串函數的支援
--with-ttf //激活對 FreeType 1.x 的支援
--with-freetype-dir=/usr/local/freetype //激活對 FreeType 2.x 的支援
--with-jpeg-dir=/usr/local/libjpeg //激活對 jpeg-6b 的支援
--with-png-dir=/usr //激活對 png 的支援
--with-zlib-dir=/usr/local/zlib //激活對zlib 的支援
--enable-mbstring //激活mbstring子產品
--enable-gd-jis-conv //使JIS-mapped可用,支援日文字型
--with-mail //支援Mail函數
--enable-xml //支援XML
--enable-sockets //支援套接字
安裝MYSQL
# groupadd mysql
# useradd -g mysql mysql
# tar zxvf mysql-5.1.24-rc.tar.gz
# cd mysql-5.1.24-rc
# ./configure --prefix=/usr/local/mysql
--localstatedir=/data/mysql ( 指定資料檔案目錄 )
--without-innodb --without-debug --with-extra-charsets=gbk
--with-extra-charsets=all --enable-assembler --with-pthread
--enable-thread-safe-client --with-client-ldflags=-all-static
# make && make install
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld ( 複制 Mysql 啟動服務至系統 )
#chkconfig –add mysqld
# chmod 777 /etc/init.d/mysql ( 賜予可執行權限 )
# chown mysql:mysql /data/mysql ( 設定資料檔案目錄屬性 )
設定資料檔案目錄屬性這一步相當重要,許多朋友第一次使用 tar 包安裝 Mysql 的時候就因該目錄權限問題導緻 Mysql 無法啟動。相當頭大 .
# /usr/local/mysql/bin/mysql_install_db ( 初始化資料庫 )
# service mysql start ( 啟動 Mysql)
# /usr/local/mysql/bin/mysqladmin -u root -p password 'xxxxx' ( 設定管理者密碼 xxx 預設值為空 )
好了,至此 mysql 安裝完畢 .
以上是編譯安裝的
搭建 mysql 資料庫:
建立 mysql 使用者和使用者組
# groupadd -g 200 mysql
# useradd -u 200 -g mysql -d /usr/local/mysql/data -M mysql
# id mysql
uid=200(mysql) gid=200(mysql) groups=200(mysql)
解壓縮 mysql 資料庫檔案
# tar zxvf mysql-standard-4.1.7-pc-linux-i686.tar.gz -C /usr/local/
# cd /usr/local/
# ls
apache2 etc include libexec sbin src
bin games lib mysql-standard-4.1.7-pc-linux-i686 share
# ln -s mysql-standard-4.1.7-pc-linux-i686 mysql
# cd mysql
bin docs lib scripts tests
configure EXCEPTIONS-CLIENT man share
COPYING include mysql-test sql-bench
data INSTALL-BINARY README support-files
建立用到的庫檔案并更改權限
# mkdir /var/lib/mysql
# chown -R mysql:mysql /var/lib/mysql/
# chown -R mysql:mysql /usr/local/mysql-standard-4.1.7-pc-linux-i686/
建立 mysql 資料庫的配置檔案
# cd /usr/local/mysql
# cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
]# ls
bin docs lib scripts tests
data INSTALL-BINARY README support-files
# ./scripts/mysql_install_db
更改初始化資料庫産生的家目錄檔案
# cd /usr/local/mysql/data/
# ll
-rw-rw---- 1 root root 8835 Jun 24 11:17 cisco-bin.000001
-rw-rw---- 1 root root 69239 Jun 24 11:17 cisco-bin.000002
-rw-rw---- 1 root root 38 Jun 24 11:17 cisco-bin.index
drwxr-x--- 2 mysql mysql 4096 Jun 24 11:17 mysql
drwxr-x--- 2 mysql mysql 4096 Oct 24 2004 test
[root@cisco data]# chown -R mysql:mysql /usr/local/mysql/data/
[root@cisco data]# ll
-rw-rw---- 1 mysql mysql 8835 Jun 24 11:17 cisco-bin.000001
-rw-rw---- 1 mysql mysql 69239 Jun 24 11:17 cisco-bin.000002
-rw-rw---- 1 mysql mysql 38 Jun 24 11:17 cisco-bin.index
啟動 mysql 資料庫
# /usr/local/mysql/bin/safe_mysqld --user=mysql &
# Starting mysqld daemon with databases from /usr/local/mysql/data
給資料庫管理者設定密碼,并登陸資料庫,建立一個新資料庫
# /usr/local/mysql/bin/mysqladmin -u root password '123'
# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.7-standard-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+----------+
| Database |
| mysql |
2 rows in set (0.00 sec)
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
| mysql |
| phpbb |
| test |
3 rows in set (0.00 sec)
mysql> exit
這樣建構 Cacit 運作的 PHP+Mysql 環境就基本上完成了。
下邊開始安裝 Cacit 所需要的 rrdtools 圖形工具以及 snmp 工具
編譯安裝 rrdtool
# tar zxvf rrdtool-1.0.50.tar
# cd rrdtool-1.0.50
# ./configure --prefix=/usr/local/rrdtool
Rrdtool 1.0版本的自帶GD庫檔案,安裝簡單友善,但是1.2版本的就沒有自帶,是以安裝比較複雜
1.2版本的安裝方法稍後介紹
<b>安裝</b><b>net-snmp</b><b>安裝包(使用系統自帶的就</b><b>OK</b><b>)</b>
安裝 net-snmp、snmpwalk 和 snmpget 指令
# rpm -qa | grep net-snmp ( 檢視系統中有否已經裝有所需的軟體 )
net-snmp-5.0.9-2.30E.15
net-snmp-devel-5.0.9-2.30E.15
net-snmp-libs-5.0.9-2.30E.15
net-snmp-utils-5.0.9-2.30E.15
沒有或者缺少的話都需要逐一安裝上。
而且還很有可能會因 rpm 的依存關系無法順利安裝,須使用 - - nodeps 參數。
以上所需的 rpm 安裝包都能在 RedHatAs4 安裝CD光牒上找到 .
<a>安裝配置</a>
至此,Cacti 所需的運作環境都已經準備好了,接下來開始進行安裝以及配置。
稍微修改系統中 snmp 的配置
# vi /etc/snmp/snmpd.conf
com2sec notConfigUser default public
改為:com2sec notConfigUser 127.0.0.1 public
access notConfigGroup "" any noauth exact systemview none none
改為:access notConfigGroup"" any noauth exact all none none
#view all included .1 80
将前面的 # 注釋 去掉。
儲存退出 :wq
重新啟動 snmp 服務
使用ntsysv,讓snmp服務,每次開機自動運作。
# service snmpd restart
安裝 / 配置 cacti
# tar –zxvf cacti-0.8.6j.tar.gz
# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti
# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "123456";
//添加cacti使用者
# useradd cacti
//将rra目錄的所有權給cacti使用者
# chown –R cacti /usr/loca/apache/htdocs/cacti/rra
//修改cacti目錄所屬組
# chgrp –R cacti /usr/loca/apache/htdocs/cacti
//為cacti使用者添加cron任務
# su – cacti
# crontab –e
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
注意:首次執行poller.php時請使用cacti使用者,否則生成的rrd檔案cacti将沒有寫入權限。
安裝Cactid
CACTID 的安裝需要以下支援:
net-snmp-devel (需要編譯安裝net-snmp時添加--enable-developer選項)
mysql
mysql-devel (mysql源檔案編譯安裝後預設支援)
openssl-devel (Redhat預設安裝)
# tar -zxvf cacti-cactid-0.8.6i.tar.gz
# cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
# make
//這時你将在此目錄下看到多出了cactid、cactid.conf兩個檔案
# mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid
# vi /usr/local/cactid/cactid.conf //修改cactid配置檔案
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
5.資料庫配置
#mysql –uroot –p
Password:
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cacti@localhost identified by “cacti”;
mysql> grant all on cacti.* to root;
mysql> grant all on cacti.* to root@localhost;
mysql> grant all on cacti.* to cacti@localhost;
mysql>exit
# cd /usr/local/apache/htdocs/cacti
# mysql –uroot –p cacti < cacti.sql
未完待續........
本文轉自 wqmsl 51CTO部落格,原文連結:http://blog.51cto.com/wqmsl/309756,如需轉載請自行聯系原作者