Cacti在nginx上搭建步骤

来源:互联网 发布:乌合之众 知乎 版本 编辑:程序博客网 时间:2024/05/16 09:04

Cacti on nginx + php-fpm

系统环境:

centos 5.3  32位     #(安装好所有的开发工具)

软件版本:

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.serverchkconfig mysql.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.0in>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=================================================================CentOS 5 常见的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 install libxpm-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 reinstall libmhash - 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 + 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 -xvf  cacti-0.8.7e.tar.gz

tar -xvf  cacti-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 = "mysql";

$database_default = "cacti";$database_hostname = "localhost";$database_username = "cactiuser";$database_password = "cacti";改为:

$database_type = "mysql";$database_default = "cacti";$database_hostname = "localhost";$database_username = "cacti数据库的用户名";$database_password = "cacti数据库的密码";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_param  SCRIPT_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 + 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

 

进入Cacti界面

单击setting选项

在General选项卡里将RRDTool Utility Version那一项改为RRDTool 1.3.X


在Ppaths选项卡里将所有带红色的路径都全设置一遍,直到没有红色为止

我的是这两项:

 


PHP Binary Path→/usr/local/php5/bin/phpRRDTool Binary Path→/usr/local/rrdtool/bin/rrdtool好了,点击保存就可以体验自己的千辛万苦做出来的东东了。

原创粉丝点击