Cacti 是一套基于 PHP、 MySQL、 SNMP、及 RRDTool開發的網絡流量監測圖形分析工具。它通過監測圖形分析工具。它通過監測圖形分析工具。它通過 snmp來擷取資料,使用來擷取資料,使用 RRDtool 繪畫圖形,而且你完全可以不繪畫圖形,而且你完全可以不繪畫圖形,而且你完全可以不需要了解RRDtool 複雜的參數。
我把apache mysql php rrdtool cacti安裝在了test3.wolf.org(192.168.87.130)上面用來監控 test1.test.com(192.168.87.129),是以在test1.test.com上面安裝snmp代理。
1, apache 安裝
tar xvfz httpd-2.2.11.tar.gz
cd httpd-2.2.11
./configure --prefix=/usr/local/apache --enable-so
# --prefix=<Install_Path> 指明編譯後的二進制檔案安裝到<Install_Path>目錄,用實際安裝路徑替換<Install_Path>,如--prefix=/usr/local/apache-2.2.11 ,如果省略此配置參數,預設安裝到/usr/local/apache2目錄。
# --enable-so 指明編譯動态加載子產品(DSO)支援到httpd二進制檔案,此子產品使得Apache的各功能子產品可以與核心分開編譯、運作時動态加載。有了DSO支援,更新和增加子產品時隻需編譯相關的子產品即可,不必重新編譯整個系統。最新版本的Apache預設編譯此子產品到httpd二進制檔案,如果你在使用早期版本的apache并且需要DSO支援,可能要明确指出此選項。
# --enable-mods-shared=<MODULE-LIST> 明确指明要以DSO方式編譯的子產品,<MODULE-LIST>為空格分隔的子產品名清單、all或者most,all表示包含所有子產品,most表示包含大部分子產品,如--enable-mods-share="rewrite deflate",--enable-mods-share=most,效果等同于多個--enable-<FEATURE>=share
make && make install
/usr/local/apache/bin/apachectl restart 啟動 httpd
echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local 加入開機
2 ,mysql安裝
這個版本的mysql安裝比較簡單,建議大家這麼做~~!!!
tar xvfz mysql-5.1.49-linux-i686-glibc23.tar.gz
useradd mysql 添加mysql使用者
mv mysql-5.1.49-linux-i686-glibc23 /usr/local/mysql
chown -R root:mysql /usr/local/mysql/ 修改權限
chown -R mysql:mysql /usr/local/mysql/data/
cd /usr/local/mysql/
cp support-files/my-medium.cnf /etc/my.cnf
./scripts/mysql_install_db --user=mysql 初始化mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql & 背景啟動mysql
./bin/mysqladmin -uroot password 123456 添加root使用者和密碼
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local 開機啟動
echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile 設定環境變量
source /etc/profile 使環境變量生效
3,php 安裝
在安裝php之前需要其他的包的支援,這些包很多,在這裡我就不一一編譯安裝了,最簡單的方法是yum安裝
[root@test3 mysql]# yum install -y libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel gd gd-devel mysql-devel
[root@test3 php-5.2.9]# tar xvfz php-5.2.9.tar.gz
[root@test3 php-5.2.9]# cd php-5.2.9
[root@test3 php-5.2.9]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-sockets
--prefix=/usr/local/php
指定 php 安裝目錄
--with-apxs2=/usr/local/apache/bin/apxs
整合 apache,apxs功能是使用mod_so中的LoadModule指令,加載指定子產品到 apache,要求 apache 要打開SO子產品 如果編譯安裝時不加--options --with -apxs2參數,即使你的電腦上安裝了Apache和PHP,通過Apache是不能通路PHP頁面的,因為Apache本身隻支援靜态html頁面。加入此參數,則能通過Apache通路PHP頁面了。
--with-config-file-path=/usr/local/php/etc
指定php.ini位置
--with-mysql=/usr/local/mysql (切記這裡是--with-mysql而不是--with-mysql-dir要不然的話 你會死的很慘)
mysql安裝目錄,對mysql的支援
--with-mysqli=/usr/local/mysql/bin/mysql_config
mysqli擴充技術不僅可以調用MySQL的存儲過程、處理MySQL事務,而且還可以使通路資料庫工作變得更加穩定。
--enable-safe-mode 打開安全模式
--enable-ftp 打開ftp的支援
--enable-zip 打開對zip的支援
--with-bz2 打開對bz2檔案的支援
--with-jpeg-dir 打開對jpeg圖檔的支援
--with-png-dir 打開對png圖檔的支援
--with-freetype-dir 打開對freetype字型庫的支援
--without-iconv 關閉iconv函數,種字元集間的轉換
--with-libXML-dir 打開libxml2庫的支援
--with-XMLrpc 打開xml-rpc的c語言
--with-zlib-dir 打開zlib庫的支援
--with-gd 打開gd庫的支援
--enable-gd-native-ttf 支援TrueType字元串函數庫
--with-curl 打開curl浏覽工具的支援
--with-curlwrappers 運用curl工具打開url流
--with-ttf 打開freetype1.*的支援,可以不加了
--with-xsl 打開XSLT 檔案支援,擴充了libXML2庫 ,需要libxslt軟體
--with-gettext 打開gnu 的gettext 支援,編碼庫用到
--with-pear 打開pear指令的支援,PHP擴充用的
--enable-calendar 打開月曆擴充功能
--enable-mbstring 多位元組,字元串的支援
--enable-bcmath 打開圖檔大小調整,用到zabbix監控的時候用到了這個子產品
--enable-sockets 打開 sockets 支援
--enable-exif 圖檔的中繼資料支援
--enable-magic-quotes 魔術引用的支援
--disable-rpath 關閉額外的運作庫檔案
--disable-debug 關閉調試模式
--with-mime-magic=/usr/share/file/magic.mime 魔術頭檔案位置
CGI方式安裝才用的參數
--enable-fpm
打上PHP-fpm 更新檔後才有這個參數,CGI方式安裝的啟動程式
--enable-fastCGI
支援fastcgi方式啟動PHP
--enable-force-CGI-redirect
重定向方式啟動PHP
--with-ncurses
支援ncurses 螢幕繪制以及基于文本終端的圖形互動功能的動态庫
--enable-pcntl freeTDS需要用到的,可能是連結mssql 才用到
mhash和mcrypt算法的擴充
--with-mcrypt 算法
--with-mhash 算法
以上函數庫需要安裝
--with-gmp 應該是支援一種規範
--enable-inline-optimization 優化線程
--with-openssl openssl的支援,加密傳輸時用到的
--enable-dbase 建立DBA 作為共享子產品
--with-pcre-dir=/usr/local/bin/pcre-config perl的正則庫案安裝位置
--disable-dmalloc
--with-gdbm dba的gdbm支援
--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte 支援zend的多位元組
--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap
編譯安裝時報錯
configure: error: xml2-config not found. Please check your libxml2 installation.
這是因為 libxml2-devel 沒有安裝 在這裡直接安裝就可以了
[root@test3 php-5.2.9]# yum install libxml2-devel -y
出現如下結果證明configure成功~~~~!!!!(如果出現警告,那麼也是不成功的)
接下來就是漫長的make && make install
[root@test3 php-5.2.9]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@test3 php-5.2.9]# cp php.ini-dist /usr/local/php/lib/php.ini
安裝到這裡還不算完全,我們還要整合apache和php,而且還要測試
在apache的配置檔案httpd.conf添加php支援
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
并且将DirectoyIndex 後面的index.html(在htdoc中)的改成index.php 在這個檔案裡面加上如下的一句話<?php
phpinfo();
?>
到此為止mysql apache php安裝成功了
排錯
今天在linux裡安裝mysql,運作時遇到這樣的錯誤
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
上網查了下:
這種情況大多數是因為你的mysql是使用rpm方式安裝的,它會自動尋找 /var/lib/mysql/mysql.sock 這個檔案,
通過unix socket登入mysql。
常見解決辦法如下:
1、
建立/修改檔案 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在這裡寫上你的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2、
指定IP位址,使用tcp方式連接配接mysql,而不使用本地sock方式
#mysql -h127.0.0.1 -uuser -ppassword
3、
為 mysql.sock 加個連接配接,比如說實際的mysql.sock在 /tmp/ 下,則
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
我用的是3來解決的,由于對linux還不太了解,記下來友善查閱
本文轉自陳仲陽0 51CTO部落格,原文連結:http://blog.51cto.com/wolfword/1203250