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();
?>
重启apache服务,在浏览器中输入http://localhost如出现如下结果就是配置正确
到此为止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还不太了解,记下来方便查阅