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

135331494.jpg

   [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成功~~~~!!!!(如果出現警告,那麼也是不成功的)

142708190.jpg


接下來就是漫長的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();

?>

重啟apache服務,在瀏覽器中輸入http://localhost如出現如下結果就是配置正確                

154434113.jpg


到此為止mysql apache php安裝成功了

 

排錯

ERROR 2002 (HY000): Can`t connect to local MySQL server through socket `/var/lib/mysql/mysq

今天在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還不太瞭解,記下來方便查閱