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还不太了解,记下来方便查阅