df3 发表于 2015-11-22 13:23:47

Cacti在nginx上搭建步骤

  Cacti on nginx + php-fpm
  系统环境:
  centos 5.332位   #(安装好所有的开发工具)
  软件版本:
  Cacti-0.8.7e
  Mysql-5.1.38
  php-5.2.10
  php-5.2.10-fpm-0.5.13.diff.gz
  rrdtool-1.2.28
  nginx-0.8.15
  rpmforge-release.i386
  rpmforge
  yum -y install rpmforge-release         #安装yum的rpmforge仓库
  Mysql-5.1.38
  cd /home
  wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz/from/http://mysql.isu.edu.tw/
  tar -xvf mysql-5.1.38.tar.gz            #从mysql官网下载源码包,解压
  进入mysql解压目录
  cd /home/mysql-5.1.38
  下为mysql 官网提供的编译配置
  -fno-exceptions -fno-rtti" ./configure      --prefix=/usr/local/mysql --enable-assembler      --with-mysqld-ldflags=-all-static建议移除最后1排;CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors      -fno-exceptions -fno-rtti" ./configure       --prefix=/usr/local/mysql --enable-assembler Make
  Make install            #这样mysql就被安装在 /usr/local/mysql 之下
  ====================================================================
  configure: error: No curses/termcap library found 的错误解决方法
  在编译Mysql时
  ./configure –prefix=DIR
  configure: error: No curses/termcap library found
  说明 curses/termcap 库没有安装    apt-cache search curses | grep lib
  安装 libncurses5-dev ,然后重新运行配置
  apt-get install libncurses5-dev
  上边的具体细节还希望先yum list | grep ncurses下看看。
  yum install ncurses-dev
  没有安装gcc的也要yum install gcc下先,不然不会编译。
  ====================================================================
  cp /home/mysql-5.1.38/support-files/my-medium.cnf /etc/my.cnf
  #将预置的配置文件拷贝至/etc下
  cp /usr/local/mysql/bin/* /usr/bin/
  #将mysql所有可执行文件拷贝至/usr/bin/下
  groupadd mysql                                     #系统添加 mysql 组useradd -g mysql mysql                #系统添加 mysql 用户至mysql 组cd /usr/local/mysqlchown -R mysql .#将/usr/local/mysql下所有文件,目录的所有者改mysqlchgrp -R mysql . #将/usr/local/mysql下所有文件,目录的所有者改为 mysql         (后面还有个点哦,看清楚)mysql_install_db --user=mysql                   #安装数据库mysqld_safe --user=mysql &                      #启动mysql服务cp /home/mysql-5.1.38/support-files/mysql.server /etc/init.dchmod 755 /etc/init.d/mysql.serverchkconfig --add mysql.serverchkconfigmysql.server on      #以系统服务的方式启动mysql servermysql -u root                   #以root用户进入mysql命令行在mysql命令行下执行   DROP USER '';                         #移除anonymousSET PASSWORD FOR'root'@'localhost'= PASSWORD('密码');#设置在localhost主机上root帐号的密码SET PASSWORD FOR'root'@'127.0.0.1'= PASSWORD('密码');#设置在localhost主机上root帐号的密码=================================================================ERROR 1045 (28000): Access denied for user'root'@'localhost'(using password: NO)错误的解决方法:方法一:# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlmysql> UPDATE user SET Password=PASSWORD('newpassword')where USER='root';mysql> FLUSH PRIVILEGES;mysql> quit# /etc/init.d/mysql restart# mysql -uroot –pEnter password: <输入新设的密码newpassword>mysql>方法二:
  C:Program FilesMySQLMySQL Server 5.0&#8;in>mysql -u root –p
  Enter password: ******
  Welcome to the MySQL monitor. Commands end with ; or g.
  Your MySQL connection id is 28 to server version: 5.0.24a-community-nt
  Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
  =================================================================php-5.2.10 and php-5.2.10-fpm
  cd /home
  wget http://cn.php.net/get/php-5.2.10.tar.bz2/from/this/mirror
  tar -xvf php-5.2.10.tar.bz2       #从php官网下载源码包,解压
  cd /home
  wget http://php-fpm.org/downloads/php-5.2.10-fpm-0.5.13.diff.gz
  #从php-fpm.org官网下载源码包
  gzip -cd php-5.2.10-fpm-0.5.13.diff.gz | patch -d php-5.2.10 -p1#给php-5.2.10 打上php-fpm补丁yum -y install gd.i386 gd-devel.i386yum -y install libmcrypt.i386 libmcrypt-devel.i386yum -y install libmhash.i386 libmhash-devel.i386#用yum安装php所需要的库cd /homewgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gztar-xvf libiconv-1.13.tar.gzcd /home/libiconv-1.13./configure --prefix=/usr/local/libiconvmakemake install                  #手动下载编译安装libiconv库cd /home/php-5.2.10./configure --prefix=/usr/local/php5--with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml--disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring--with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pearmakemake install                                 #编译安装phpcp /home/php-5.2.10/php.ini-dist/usr/local/php5/etc/php.ini#拷贝预置配置文件至php安装目录vim /usr/local/php5/etc/php.ini查找cgi.fix_pathinfo删除前面的注释 修改为cgi.fix_pathinfo=1注释掉doc_root ==================================================================groupadd nginxuseradd -g nginx nginxvim /usr/local/php5/etc/php-fpm.conf修改第63行,66行 .63   .66         删除注释符,将nobody改为nginx.63    nginx.66    nginx#添加web用户组nginx,用户nginx 将php-fpm的运行用户组和用户修改为nginxcp /usr/local/php5/sbin/php-fpm /sbin/php-fpmphp-fpm start                                  #启动php-fpm=================================================================CentOS5 常见的configure error的解决方法仅限于CentOS 5
  configure: error: No curses/termcap library foundyum -y install ncurses-develdebian: apt-get install libncurses5-devconfigure: error: xml2-config not foundyum -y install libxml2-develdebian:apt-get install libxml2-devconfigure: error: Cannot find OpenSSL'syum-y install openssl-develconfigure: error: libjpeg.(a|so) not foundyum -y install gdyum -y install gd-develdebian:apt-get install libjpeg-devconfigure: error: libpng.(a|so) not found.apt-get install libpng12-devconfigure: error: cannot find output from lex;giving upyum -y install flexconfigure: error: mod_deflate has been requested but can not be built due to prerequisite failuresyum -y install zlib-devel openssl-develdebian:apt-get install zlib1g-devconfigure: error: libXpm.(a|so) not found.apt-get installlibxpm-devonfigure: error: freetype.h not found.apt-get install libfreetype6-devconfigure: error: ...No recognized SSL/TLS toolkit detectedapt-get install libssl-devconfigure: error: Cannot find ldap.hyum install openldap-develconfigure: error: Please reinstalllibmhash - I cannot find mhash.hyum install mhash-devel=================================================================Nginxyum -y install pcre-devel.i386   #安装nginx需要的正则表达式库头cd /homewgethttp://sysoev.ru/nginx/nginx-0.8.15.tar.gztar-xvf nginx-0.8.15.tar.gzcd /home/nginx-0.8.15./configure--user=nginx --group=nginxmakemake installcp /usr/local/nginx/sbin/nginx /sbin/         #安装nginx vim /usr/local/nginx/conf/nginx.conf#编辑nginx.conf加入以下配置    server {      listen 80;            location / {               index    index.html index.htm index.php;             }         location ~* .php {          fastcgi_pass 127.0.0.1:9000;         fastcgi_index index.php;          include fastcgi_params;          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;             } }Cacti &#43; Cacti spinecd /home
  wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
  wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
  tar -xvfcacti-0.8.7e.tar.gz
  tar -xvfcacti-spine-0.8.7e.tar.gz    #从官网下载cacti 及spine 解压yum -y install net-snmp.i386 net-snmp-devel.i386 net-snmp-libs.i386 net-snmp-utils.i386                  #通过yum安装net-snmp相关组件
  mkdir /var/wwwmv /home/cacti-0.8.7e /var/www/cacti#将cacti相关文件移动至新建web目录groupadd cactiuseradd -g cacti cacti                        #新建cacti用户,用户组chown -R cacti:cacti /var/www/cacti/rra/ /var/www/cacti/log/#更改cacti目下 rra/ log/ 2个目录的所有者chmod 777 /var/www/cacti/rra-Rchmod 777 /var/www/cacti/log -R#更改cacti目录下rra/ log/ 2个目录及目录下的读写权限cd /var/www/cacti         mysqladmin --user=root -p create cacti   #创建名为cacti的数据库mysql -p cacti < /var/www/cacti/cacti.sql#将cacti安装目录下的数据库数据导入到系统新建的cacti数据库中mysql --user=root mysql                #以root用户进入mysql数据库
  GRANT ALL ON cacti.* TO cacti@localhostIDENTIFIED BY '密码';
  flush privileges;      #给系统用户cacti 添加cacti数据库的所有权限vi /var/www/cacti/include/config.php
  #将预设配置中的相关选项修改为 上面的相关配置
  如:
  $database_type = &quot;mysql&quot;;
  $database_default = &quot;cacti&quot;;$database_hostname = &quot;localhost&quot;;$database_username = &quot;cactiuser&quot;;$database_password = &quot;cacti&quot;;改为:
  $database_type = &quot;mysql&quot;;$database_default = &quot;cacti&quot;;$database_hostname = &quot;localhost&quot;;$database_username = &quot;cacti数据库的用户名&quot;;$database_password = &quot;cacti数据库的密码&quot;;vi /etc/crontab
  添加
  */5 * * * * 用户名 /usr/local/php5/bin/php /var/www/cacti/poller.php --force > /dev/null 2>&1
  service crond restart               #如果刷不出图可在上面加 --force
  vi /usr/local/nginx/conf/nginx.conf
  root /var/www/cacti;               #修改web根目录至 /var/www/cacti
  修改
  location ~* .php {astcgi_pass 127.0.0.1:9000;   fastcgi_index index.php;          include fastcgi_params;   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;             }改为:
  location ~* .php {fastcgi_pass 127.0.0.1:9000;    fastcgi_index index.php;          include fastcgi_params;   fastcgi_param SCRIPT_FILENAME /var/www/cacti$fastcgi_script_name;             }nginx            
#启动Nginx服务
  =====================================================================
  nginx配置httpd服务遇到问题No input file specified的解决
  首先php.ini的配置中
  cgi.fix_pathinfo=1
  doc_root=
  doc_root曾经被我设置过一个路径,结果php老提示“No input file specified.”,只有一个虚机好使。改掉后就正常了。
  nginx中的配置有些麻烦
  fastcgi_pass 127.0.0.1:1234;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
  每个虚机要根据自己不通的虚机设置不不同的目录,要保证这个路径正确。
  fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;不能在fastcgi_pass 127.0.0.1:1234;的前面。
  跟我的情况很类似 我也尝试改了一下第二个vhost的文件中php部分:
  # .php
  location ~ .*.(php|php5)?$
{
    #fastcgi_pass unix:/tmp/php-cgi.sock;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_paramSCRIPT_FILENAME/data/htdocs/域名/$fastcgi_script_name; 确实是要与第一个域名区分开来
  fastcgi_index index.php;
  #include fcgi.conf;
  }
  =====================================================================
  nginx时常被php的“No input file specified.
  首先php.ini的配置中
  cgi.fix_pathinfo=1
  doc_root=
  doc_root曾经被我设置过一个路径,结果php老提示“No input file specified.”,只有一个虚机好使。改掉后就正常了。
  nginx中的配置有些麻烦
  fastcgi_pass 127.0.0.1:1234;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
  每个虚机要根据自己不通的虚机设置不能的目录,要保证这个路径正确。
  fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;不能在fastcgi_pass 127.0.0.1:1234;的前面。
  记得修改了php.ini要重启fastcgi服务。
  其实都是因为粗心造成的,本来很简单,写出来也给自己提个醒
  =====================================================================
  RRDTool(两种方法):
  1.软件包安装:
  先yum安装所要的库文件:
  yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel
  然后下载rrdtool包,安装:
  wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.1.tar.gz
  tar -zxvf rrdtool-1.3.1.tar.gz
  ./configure --prefix=/usr/local/rrdtool
  make
  make install
  2. 另一种yum安装
  wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum -y install rrdtool*
  配置开机自动启动Nginx &#43; PHP
  vi /etc/rc.local
  在末尾增加以下内容:
  ulimit -SHn 51200
  /usr/local/webserver/php/sbin/php-fpm start
  /usr/local/webserver/nginx/sbin/nginx
  重启服务器
  WEB界面配置Cacti
  之后就可通过访问服务器ip 进去cacti界面
  一路默认配置进入密码验证界面
  Username:admin
  Password:admin
http://www.hxdaxue.com/Image201109/content_img_1316355151.4.jpg
  进入Cacti界面
  单击setting选项
  在General选项卡里将RRDTool Utility Version那一项改为RRDTool 1.3.X
  
在Ppaths选项卡里将所有带红色的路径都全设置一遍,直到没有红色为止
  我的是这两项:
http://www.hxdaxue.com/Image201109/content_img_1316355152.4.jpg
  
PHP Binary Path→/usr/local/php5/bin/phpRRDTool Binary Path→/usr/local/rrdtool/bin/rrdtool好了,点击保存就可以体验自己的千辛万苦做出来的东东了。
页: [1]
查看完整版本: Cacti在nginx上搭建步骤