灌溉梦想,记录脚步

RRD TOOL安装

  1.下载
  wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
  下载完毕,解压缩:
  tar zxf rrdtool.tar.gz
  cd rrdtool
  2.安装必要的软件
  看看你的机器有没有这些包,cgilib、zlib、libpng、freetype、libart_lgpl,没有就装吧。
  设定环境变量:
  set BUILD_DIR=/tmp/rrdbuild
  set INSTALL_DIR=/usr/local/rrdtool
  开始安装
  安装cgilib
  cd $BUILD_DIR
  wget http://down1.chinaunix.net/distfiles/cgilib-0.5.tar.gz
  tar zxf cgilib-0.5.tar.gz
  cd cgilib-0.5
  make CC=gcc CFLAGS="-O3 -fPIC -I."
  mkdir -p $BUILD_DIR/lb/include
  cp *.h $BUILD_DIR/lb/include
  mkdir -p $BUILD_DIR/lb/lib
  cp libcgi* $BUILD_DIR/lb/lib
  安装zllib
  cd $BUILD_DIR
  wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
  zlib-1.2.3.tar.gz
  cd zlib-1.2.3
  env CFLAGS="-O3 -fPIC" ./configure –prefix=$BUILD_DIR/lb
  make
  make install
  安装libpng
  cd $BUILD_DIR
  wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
  tar zxvf libpng-1.2.8-config.tar.gz
  cd libpng-1.2.8-config
  env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC"
  ./configure –disable-shared –prefix=$BUILD_DIR/lb
  make
  make install
  安装freetype
  cd $BUILD_DIR
  wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.bz2
  tar zxvf freetype-2.3.5.tar.bz2
  cd freetype-2.3.5
  env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC"
  ./configure –disable-shared –prefix=$BUILD_DIR/lb
  make
  make install
  安装libart_lgpl
  cd $BUILD_DIR
  wget http://oss.oetiker.ch/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz
  tar zxvf libart_lgpl-2.3.17.tar.gz
  cd libart_lgpl-2.3.17
  env CFLAGS="-O3 -fPIC" ./configure –disable-shared –prefix=$BUILD_DIR/lb
  make
  make install
  如果你用bash/sh/ash/ksh/zsh,就执行下面的:
  IR=-I$BUILD_DIR/lb/include
  CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
  LDFLAGS="-L$BUILD_DIR/lb/lib"
  CFLAGS=-O3
  export CPPFLAGS LDFLAGS CFLAGS
  真的开始安装rrd了
  cd $BUILD_DIR/rrdtool
  ./configure –prefix=$INSTALL_DIR –disable-python && make clean && make && make install
  安装完毕啦。(详细参见rrd安装包中的doc/rrdbuild.txt)

Centos5.2下Cacti安装配置

  一、编译安装基本环境
  使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
  #rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  #yum -y install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison utoconf automake bzip2-devel curses-devel zlib-devel ibjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel kernel
  二、 编译安装软件包
  源码编译安装所需包(Source)
  1) GD2
  # cd /usr/local/src
  # tar xvf gd-2.0.35.tar.gz
  # cd gd-2.0.35
  # ./configure –prefix=/usr/local/gd2
  # make
  # make install
  2) LibXML2
  # cd /usr/local/src
  # tar xvf libxml2-2.6.29.tar.bz2
  # cd libxml2-2.6.29
  # ./configure –prefix=/usr/local/libxml2
  # make
  # make install
  3) LibMcrypt
  # cd /usr/local/src
  # tar xvf libmcrypt-2.5.8.tar.bz2
  # cd libmcrypt-2.5.8
  # ./configure –prefix=/usr/local/libmcrypt
  # make
  # make install
  4). OpenSSL和OpenSSH
  # cd /usr/local/src
  # tar xvf openssl-0.9.8g.tar.gz
  # cd openssl-0.9.8g
  # ./config –prefix=/usr/local/openssl
  # make
  # make test
  # make install
  # cd ..
  # tar xvf openssh-5.0p1.tar.gz
  # cd openssh-5.0p1
  # ./configure \
  ”–prefix=/usr” \
  ”–with-pam” \
  ”–with-zlib” \
  ”–sysconfdir=/etc/ssh” \
  ”–with-ssl-dir=/usr/local/openssl” \
  ”–with-md5-passwords”
  # make
  # make install
  配置:
  1) 禁用 SSH V1 协议
  # vi /etc/ssh/ssh_config
  找到#Protocol 2,1改为:Protocol 2
  2) 禁用服务器端GSSAPI
  找到以下两行,并将它们注释:
  GSSAPIAuthentication yes
  GSSAPICleanupCredentials yes
  3) 禁用 DNS 名称解析
  找到:#UseDNS yeas改为:UseDNS no
  4)禁用客户端 GSSAPI
  # vi /etc/ssh/ssh_config 找到:
  GSSAPIAuthentication yes
  将这行注释掉。
  最后,确认修改正确后重新启动 SSH 服务
  # service sshd restart
  # ssh -v
  确认 OpenSSH 以及 OpenSSL 版本正确。
  三、编译安装A.M.P环境
  1.下载软件编译安装
  1)下载软件
  # cd /usr/local/src
  httpd-2.2.8.tar.gz
  mysql-5.0.51b.tar.gz
  php-5.2.6.tar.bz2
  2) 安装MySQL
  查看分析你的CPU型号:
  http://gentoo-wiki.com/Safe_Cflags 查找您的GCC编译参数.
  确定系统CPU类型:
  # cat /proc/cpuinfo | grep “model name”
  执行后会看到系统中CPU的具体型号,记下CPU型号。
  # tar xvf mysql-5.0.51b.tar.gz
  # cd mysql-5.0.51b
  # vi mysql.sh
  CHOST=”i686-pc-linux-gnu”
  CFLAGS=”-march=prescott -O2 -pipe -fomit-frame-pointer”
  CXXFLAGS=”${CFLAGS}”
  ./configure \
  ”–prefix=/usr/local/mysql” \
  ”–localstatedir=/data/mysql/data” \
  ”–with-comment=Source” \
  ”–with-server-suffix=-LinuxTone” \
  ”–with-mysqld-user=mysql” \
  ”–without-debug” \
  ”–with-big-tables” \
  ”–with-charset=gbk” \
  ”–with-collation=gbk_chinese_ci” \
  ”–with-extra-charsets=all” \
  ”–with-pthread” \
  ”–enable-static” \
  ”–enable-thread-safe-client” \
  ”–with-client-ldflags=-all-static” \
  ”–with-mysqld-ldflags=-all-static” \
  ”–enable-assembler” \
  ”–without-isam” \
  ”–without-innodb” \
  ”–without-ndb-debug”
  make && make install
  mkdir -p /data/mysql/data
  useradd mysql -d /data/mysql -s /sbin/nologin
  /usr/local/mysql/bin/mysql_install_db –user=mysql
  cd /usr/local/mysql
  chown -R root:mysql .
  chown -R mysql /data/mysql/data
  cp share/mysql/my-huge.cnf /etc/my.cnf
  cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld
  chmod 755 /etc/rc.d/init.d/mysqld
  chkconfig –add mysqld
  /etc/rc.d/init.d/mysqld start
  cd /usr/local/mysql/bin
  for i in *; do ln -s /usr/local/mysql/bin/$i /usr/bin/$i; done
  #sh mysql.sh 即可开始编译.
  3) 编译安装Apache
  # cd /usr/local/src
  # tar xvf httpd-2.2.8.tar.gz
  # cd httpd-2.2.8
  ./configure \
  ”–prefix=/usr/local/apache2″ \
  ”–with-included-apr” \
  ”–enable-so” \
  ”–enable-deflate=shared” \
  ”–enable-expires=shared” \
  ”–enable-rewrite=shared” \
  ”–enable-static-support” \
  ”–disable-userdir”
  make
  make install
  echo ‘/usr/local/apache2/bin/apachectl start ‘ >> /etc/rc.local
  4).编译安装PHP
  # cd /usr/local/src
  # tar xjvf php-5.2.6.tar.bz2
  # cd php-5.2.6
  ./configure \
  ”–prefix=/usr/local/php” \
  ”–enable-discard-path” \
  ”–enable-force-cgi-redirect” \
  ”–with-config-file-path=/usr/local/php/etc” \
  ”–enable-zend-multibyte” \
  ”–with-mysql=/usr/local/mysql” \
  ”–with-mysqli=/usr/local/mysql/bin/mysql_config” \
  ”–with-libxml-dir=/usr/local/libxml2/bin” \
  ”–with-xmlrpc” \
  ”–with-gd=/usr/local/gd2″ \
  ”–with-jpeg-dir” \
  ”–with-png-dir” \
  ”–with-bz2″ \
  ”–with-freetype-dir” \
  ”–with-zlib-dir ” \
  ”–with-openssl=/usr/local/openssl” \
  ”–with-mcrypt=/usr/local/libmcrypt” \
  ”–enable-sysvsem” \
  ”–enable-inline-optimization” \
  ”–enable-soap” \
  ”–enable-gd-native-ttf” \
  ”–enable-ftp” \
  ”–enable-mbstring” \
  ”–enable-exif” \
  ”–disable-debug” \
  ”–disable-ipv6″ \
  ”–enable-sockets” \
  ”–with-snmp”
  make
  make install
  mkdir /usr/local/php/etc
  cp php.ini-dist /usr/local/php/etc/php.ini
  2、整合Apache与PHP及系统初化配置.
  1)整合Apache与PHP
  # vi /usr/local/apache2/conf/httpd.conf
  找到:
  AddType application/x-gzip .gz .tgz
  在该行下面添加
  AddType application/x-httpd-php .php
  找到:
  <IfModule dir_module>
  DirectoryIndex index.html
  </IfModule>
  将该行改为
  <IfModule dir_module>
  DirectoryIndex index.html index.htm index.php
  </IfModule>
  找到:
  #Include conf/extra/httpd-mpm.conf
  #Include conf/extra/httpd-info.conf
  #Include conf/extra/httpd-vhosts.conf (虚拟主机配置文件存放目录.)
  #Include conf/extra/httpd-default.conf
  去掉前面的”#”号,取消注释。
  注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置!
  修改完成后保存退出。
  # /usr/local/apache2/bin/apachectl restart
  2)查看确认L.A.M.P环境信息
  在网站根目录放置 info.php 脚本,检查phpinfo中的各项信息是否正确。
  <?php
  phpinfo();
  ?>
  3)配置虚拟主机:
  #vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
  NameVirtualHost *:80
  <VirtualHost *:80>
  ServerAdmin hamgua@gmail.com
  DocumentRoot “/data/www/wwwroot”
  ServerName cacti.test.comServer
  Alias cacti.test.cn
  # ErrorLog “logs/dummy-host.example.com-error_log”
  # CustomLog “|/usr/sbin/cronolog /data/logaccess_www.linuxtone.org.%Y%m%d” combined
  </VirtualHost>
  四、安装采集工具
  SNMP全名是简单网络管理协议,几乎所有的网络设备(交换机、路由器等)和操作系统默认安装了认都安装了snmp服务。
  Cacti 系统所在的服务器并不一定要安装SNMP服务,但是Cacti系统采集数据要用到Net-SNMP包里面的几个工具,所以最好也在Cacti服务器上安装 SNMP服务。我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则无需安装了。
  如果操作系统没有安装SNMP,可以到本文最后的资源里的Net-SNMP官方网站上下载源码或二进制包进行安装。
  #yum -y install net-snmp*
  #rpm -qa|grep snmp
  net-snmp-libs-5.3.1-24.el5_2.2
  net-snmp-perl-5.3.1-24.el5_2.2
  net-snmp-utils-5.3.1-24.el5_2.2
  net-snmp-5.3.1-24.el5_2.2
  net-snmp-devel-5.3.1-24.el5_2.2
  五、安装rrdtool
  我这里使用的是rpm包安装
  #wget
  ftp://rpmfind.net/linux/fedora/updates/9/i386.newkey/rrdtool-1.3.4-2.fc9.i386.rpm
  #rpm -ivh rrdtool-1.3.4-2.fc9.i386.rpm
  warning: rrdtool-1.3.4-2.fc9.i386.rpm:
  Header V3 DSA signature: NOKEY, key ID 6df2196f
  error: Failed dependencies:
  dejavu-lgc-fonts is needed by rrdtool-.3.4-2.fc9.i386
  #yum -y install dejavu-lgc-fonts
  #rpm -ivh rrdtool-1.3.4-2.fc9.i386.rpm
  warning: rrdtool-1.3.4-2.fc9.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6df2196f
  Preparing… ###########################################[100%]
  1:rrdtool ########################################### [100%]
  六、安装配置cacti
  下载cacti的源码包
  #wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz
  #tar zvxf cacti-0.8.7b.tar.gz
  #mv cacti-0.8.7b /data/www/wwwroot/cacti
  #cd /data/www/wwwroot/cacti
  配置帐号及mysql:
  groupadd cactiuser
  add -g cacti cactiuser
  mysql -uroot -p
  mysql> create database cactidb;
  mysql> grant all on cactidb.* to root;
  mysql> grant all on cactidb.* to root@localhost;
  mysql> grant all on cactidb.* to cactiuser;
  mysql> grant all on cactidb.* to cactiuser@localhost identified by ‘123456’;
  mysql> flush privileges;
  mysql> exit
  Catci配置:
  # mysql cactidb -uroot -p < cacti.sql
  # chown -R cactiuser rra/ log/
  # chmod -R 777 rra/ log/
  # vi include/config.php
  $database_type = “mysql”;
  $database_default = “cactidb”;
  $database_hostname = “localhost”;
  $database_username = “cactiuser”;
  $database_password = “123456”;
  $database_port = “3306”;
  配置让系统每五分钟去取一次snmp数据:
  #crontab -u cactiuser -e //注意要用cactiuser就是你刚刚建立的那个帐号去运行crontab
  */5 * * * * /usr/local/php/bin/php /data/www/wwwroot/cacti/poller.php > /dev/null 2>&1
  七、客户端snmp配置
  #yum -y install net-snmp*
  #vi /etc/snmp/snmpd.conf
  # SNMP configfile for Linux servers
  com2sec local 127.0.0.1 public
  com2sec local 192.168.22.0/24 public
  group MyROGroup v1 local
  group MyROGroup v2c local
  group MyROGroup usm local
  view all included .1 80
  access MyROGroup “” any noauth exact all none nones
  yslocation (/etc/snmpd/snmpd.conf)
  syscontact Me <hamgua@gmail.com>
  #service snmpd restart
  八、配置完成
  打开浏览器输入
  http://ip/cacti
  输入用户名密码,默认的是admin,admin
  然后提示修改密码
  好了配置结束
  尽情的去享受cacti吧!

Nginx+MySQL+PHP+phpmyadmin+memcache+eaccelerator

在CentOS 5.2和CentOS 4.7 Server版本中测试均无任何错误,

一,首先升级更新系统各种库(基本完整)

yum -y install patch make gcc gcc-c++ autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel
yum -y install fonts-chinese scim-chewing scim-pinyin scim-tables-chinese

二,下载所需软件:

wget http://leoz.googlecode.com/files/nginx-0.7.19.tar.gz
wget http://leoz.googlecode.com/files/php-5.2.6.tar.gz
wget http://leoz.googlecode.com/files/php-5.2.6-fpm-0.5.9.diff.gz
wget http://leoz.googlecode.com/files/libiconv-1.12.tar.gz
wget http://leoz.googlecode.com/files/libmcrypt-2.5.8.tar.gz
wget http://leoz.googlecode.com/files/mcrypt-2.6.7.tar.gz
wget http://leoz.googlecode.com/files/memcache-2.2.3.tgz
wget http://leoz.googlecode.com/files/mhash-0.9.9.tar.gz
wget http://leoz.googlecode.com/files/pcre-7.7.tar.gz
wget http://leoz.googlecode.com/files/eaccelerator-0.9.5.3.tar.bz2
wget http://leoz.googlecode.com/files/mysql-5.0.22.tar.gz
wget http://leoz.googlecode.com/files/phpMyAdmin-3.1.1-all-languages.tar.gz

三,安装PHP环境支持包(就是上面的包)

tar zxvf libiconv-1.12.tar.gz
cd libiconv-1.12/
./configure –prefix=/usr/local
make
make install
cd ../

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure –enable-ltdl-install
make
make install
cd ../../

tar zxvf mhash-0.9.9.tar.gz
cd mhash-0.9.9/
./configure
make
make install
cd ../

cp /usr/local/lib/libmcrypt.* /usr/lib
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

tar zxvf mcrypt-2.6.7.tar.gz
cd mcrypt-2.6.7/
./configure
make
make install
cd ../

四,安装Mysql

tar -zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
./configure –prefix=/usr/local/webserver/mysql –enable-assembler –with-charset=utf8 –enable-thread-safe-client –with-extra-charsets=all –without-innodb –without-isam
make;make install
cd ../
groupadd mysql
useradd -g mysql mysql
cp /usr/local/webserver/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/webserver/mysql/bin/mysql_install_db –user=mysql
chown -R mysql /usr/local/webserver/mysql/var
chgrp -R mysql /usr/local/webserver/mysql/.
cp /usr/local/webserver/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig –level 345 mysql on
echo “/usr/local/mysql/lib/mysql” >> /etc/ld.so.conf
echo “/usr/local/lib” >>/etc/ld.so.conf
ldconfig
ln -s /usr/local/webserver/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/webserver/mysql/include/mysql /usr/include/mysql
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password root
service mysql restart
service mysql stop

五,安装PHP

tar zxvf php-5.2.8.tar.gz
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1
cd php-5.2.8/
./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –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
make ZEND_EXTRA_LIBS=’-liconv’
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../

make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../

六,安装配置eaccelerator+memcache

tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/php/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

sed -i ‘s#extension_dir = “./”#extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”\nextension = “memcache.so”\n#’ /usr/local/php/etc/php.ini
sed -i ‘s#output_buffering = Off#output_buffering = On#’ /usr/local/php/etc/php.ini

mkdir -p /usr/local/eaccelerator_cache
cat >>/usr/local/php/etc/php.ini<<EOF
[eaccelerator]
zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
eaccelerator.shm_size=”1″
eaccelerator.cache_dir=”/usr/local/eaccelerator_cache”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”3600″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
eaccelerator.keys = “disk_only”
eaccelerator.sessions = “disk_only”
eaccelerator.content = “disk_only”
#[eaccelerator]
#zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
#eaccelerator.shm_size=”128″
#eaccelerator.cache_dir=”/usr/local/eaccelerator_cache”
#eaccelerator.enable=”1″
#eaccelerator.optimizer=”1″
#eaccelerator.check_mtime=”1″
#eaccelerator.debug=”0″
#eaccelerator.filter=””
#eaccelerator.shm_max=”0″
#eaccelerator.shm_ttl=”300″
#eaccelerator.shm_prune_period=”120″
#eaccelerator.shm_only=”0″
#eaccelerator.compress=”1″
#eaccelerator.compress_level=”9″

七,创建www用户和用户组,

groupadd www
useradd -g www www
mkdir -p /web/www
chmod +w /web/www
mkdir -p /web/logs
chmod 777 /web/logs

chown -R www:www /web/www
rm -f /usr/local/php/etc/php-fpm.conf
cp conf/php-fpm.conf /usr/local/php/etc/php-fpm.conf

echo “ulimit -SHn 51200” >/root/run.sh
echo “/usr/local/php/sbin/php-fpm start” >>/root/run.sh

八,安装Nginx

tar zxvf pcre-7.7.tar.gz
cd pcre-7.7/
./configure
make && make install
cd ../
tar zxvf nginx-0.7.19.tar.gz
cd nginx-0.7.19/
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module
make && make install
cd ../
rm -f /usr/local/nginx/conf/nginx.conf
cp conf/nginx.conf /usr/local/nginx/conf/nginx.conf
sed -i ‘s/www.xxxx.com/’$domain’/g’ /usr/local/nginx/conf/nginx.conf

rm -f /usr/local/nginx/conf/fcgi.conf
cp conf/fcgi.conf /usr/local/nginx/conf/fcgi.conf

echo “/usr/local/nginx/sbin/nginx” >>/root/run.sh
chmod 777 /root/run.sh
service mysql start
/root/run.sh

九,安装phpmyadmin

tar zxvf phpMyAdmin-3.1.1-all-languages.tar.gz
mv phpMyAdmin-3.1.1-all-languages /web/www/phpmyadmin

十,加入开机自启动

echo “ulimit -SHn 51200” >>/etc/rc.local
echo “/usr/local/php/sbin/php-fpm start” >>/etc/rc.local
echo “/usr/local/nginx/sbin/nginx” >>/etc/rc.local

MySql集群(经验证)

  一、整体环境

系统环境:CentOS 5.2 64位 MySql-Max-5.1.5
  IP分配:
  Server1: db1 10.0.50.141
  Server2: mgm 10.0.50.142
  Server3: db2 10.0.50.143
  Servers1和Server3作为实际配置MySQL集群的服务器。
  节点分配:
  [ndbd(NDB)] 2 node(s)
  id=2 @10.0.50.141 (Version: 5.1.5, Nodegroup: 0)
  id=3 @10.0.50.143 (Version: 5.1.5, Nodegroup: 0, Master)
  [ndb_mgmd(MGM)] 1 node(s)
  id=1 @10.0.50.142 (Version: 5.1.5)
  [mysqld(API)] 2 node(s)
  id=4 @10.0.50.143 (Version: 5.1.5)
  id=5 @10.0.50.141 (Version: 5.1.5)
  Server2是作为管理端。

  二、在Server1和Server3上安装MySQL

  从http://www.mysql.com上下载mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
  以下步骤需要在Server1和Server3上各做一次
  # mv mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz /usr/local/
  # cd /usr/local/
  # groupadd mysql
  # useradd -g mysql mysql
  # tar zxvf mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
  # rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
  # mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
  # cd mysql
  # scripts/mysql_install_db –user=mysql
  # chown -R root .
  # chown -R mysql data
  # chgrp -R mysql .
  # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
  # chmod +x /etc/rc.d/init.d/mysqld
  # chkconfig –add mysqld
  此时不要启动MySQL!

  三、安装并配置管理节点服务器(Server2)

  作为管理节点服务器,Server2需要ndb_mgm和ndb_mgmd两个文件:
  从http://www.mysql.com上下载mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
  # mkdir /usr/src/mysql-mgm
  # cd /usr/src/mysql-mgm
  # tar -zxvf mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
  # rm mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
  # cd mysql-max-4.1.9-pc-linux-gnu-i686
  # mv bin/ndb_mgm .
  # mv bin/ndb_mgmd .
  # chmod +x ndb_mg*
  # mv ndb_mg* /usr/bin/
  # rm -rf /usr/src/mysql-mgm
  现在开始为这台管理节点服务器建立配置文件:
  # mkdir /var/lib/mysql-cluster
  # cd /var/lib/mysql-cluster
  # vi config.ini
  在config.ini中添加如下内容:
  [NDBD DEFAULT]
  NoOfReplicas=2
  [MYSQLD DEFAULT]
  [NDB_MGMD DEFAULT]
  [TCP DEFAULT]
  # Managment Server
  [NDB_MGMD]
  HostName=10.0.50.142 #管理节点服务器Server2的IP地址
  # Storage Engines
  [NDBD]
  HostName=10.0.50.141 #MySQL集群Server1的IP地址
  DataDir= /var/lib/mysql-cluster
  [NDBD]
  HostName=10.0.50.143 #MySQL集群Server3的IP地址
  DataDir=/var/lib/mysql-cluster
  # 以下2个[MYSQLD]可以填写Server1和Server3的主机名。
  # 但为了能够更快的更换集群中的服务器,推荐留空,否则更换服务器后必须对这个配置进行更改。
  [MYSQLD]
  [MYSQLD]
  保存退出后,启动管理节点服务器Server2:
  # ndb_mgmd #这命令这样只能在/var/lib/mysql-cluster下执行. 因为config.ini在这个目录下
  建完后会产生几个文件如下:
  ndb_1_cluster.log ndb_1_out.log ndb_1.pi
  启动管理节点后应该注意,这只是管理节点服务,并不是管理终端。因而你看不到任何关于启动后的输出信息。
 

  四、配置集群服务器并启动MySQL

  在Server1和Server3中都需要进行如下改动:
  # vi /etc/my.cnf
  [mysqld]
  ndbcluster
  ndb-connectstring=10.0.50.142 #Server2的IP地址
  [mysql_cluster]
  ndb-connectstring=10.0.50.142 #Server2的IP地址
  保存退出后,建立数据目录并启动MySQL:
  # mkdir /var/lib/mysql-cluster
  # cd /var/lib/mysql-cluster
  # /usr/local/mysql/bin/ndbd –initial
  # 生成:ndb_2_fs ndb_2_out.log ndb_2.pid 文件
  # /etc/rc.d/init.d/mysqld start
  可以把/usr/local/mysql/bin/ndbd加到/etc/rc.local中实现开机启动。
  注意:只有在第一次启动ndbd时或者对Server3的config.ini进行改动后才需要使用–initial参数!

  五、检查工作状态

  回到管理节点服务器Server2上,并启动管理终端:
  # /usr/bin/ndb_mgm
  键入show命令查看当前工作状态:(下面是一个状态输出示例)
  [root@mysql3 root]# /usr/bin/ndb_mgm
  – NDB Cluster — Management Client —
  ndb_mgm> show
  Connected to Management Server at: localhost:1186
  Cluster Configuration
  ———————
  [ndbd(NDB)] 2 node(s)
  id=2 @10.0.50.141 (Version: 5.1.5, Nodegroup: 0)
  id=3 @10.0.50.143 (Version: 5.1.5, Nodegroup: 0, Master)
  [ndb_mgmd(MGM)] 1 node(s)
  id=1 @10.0.50.142 (Version: 5.1.5)
  [mysqld(API)] 2 node(s)
  id=4 @10.0.50.143 (Version: 5.1.5)
  id=5 @10.0.50.141 (Version: 5.1.5)
  ndb_mgm>
  如果上面没有问题,现在开始测试MySQL:
  注意,这文档对于MySQL并没有设置root密码,推荐你自己设置Server1和Server2的MySQL root密码。
  在Server1中:
  # /usr/local/mysql/bin/mysql -u root -p
  > use test;
  > Create TABLE atest (i INT) ENGINE=NDBCLUSTER;
  > Insert INTO atest () VALUES (1);
  > Select * FROM atest;
  应该可以看到1 row returned信息(返回数值1)。
  如果上述正常,则换到Server2上重复上面的测试,观察效果。如果成功,则在Server2中执行Insert再换回到Server1观察是否工作正常。

  六、破坏性测试

  将Server1或Server3的网线拔掉,观察另外一台集群服务器工作是否正常(可以使用Select查询测试)。测试完毕后,重新插入网线即可。
  如果你接触不到物理服务器,也就是说不能拔掉网线,那也可以这样测试:
  在Server1或Server3上:
  # ps aux | grep ndbd
  将会看到所有ndbd进程信息:
  root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
  root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
  root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd
  然后杀掉一个ndbd进程以达到破坏MySQL集群服务器的目的:
  # kill -9 5578 5579
  之后在另一台集群服务器上使用Select查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。
  测试完成后,只需要重新启动被破坏服务器的ndbd进程即可:
  # ndbd
  注意!前面说过了,此时是不用加–inital参数的!至此,MySQL集群就配置完成了!

ILO 远程被占用的解决办法

  在网页中打开ILO远程时候,出现如下信息
  The Integrated Remote Console is unavailable, it is already in use by a different client.
  解决办法如下:
  选择Remote console TAB
  选择Settings.
  设置Shared Remote Console: 为Enabled
  点击Apply
  之后就可以打开远程窗口了

Crontab实例

  cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
  /sbin/service crond start //启动服务
  /sbin/service crond stop //关闭服务
  /sbin/service crond restart //重启服务
  /sbin/service crond reload //重新载入配置
  你也可以将这个服务在系统启动的时候自动启动:
  在/etc/rc.d/rc.local这个脚本的末尾加上:
  /sbin/service crond start
  现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
  1、直接用crontab命令编辑
  cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
  crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
  crontab -l //列出某个用户cron服务的详细内容
  crontab -r //删除某个用户的cron服务
  crontab -e //编辑某个用户的cron服务
  比如说root查看自己的cron设置:crontab -u root -l
  再例如,root想删除fred的cron设置:crontab -u fred -r
  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
  这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
  分钟 (0-59)
  小時 (0-23)
  日期 (1-31)
  月份 (1-12)
  星期 (0-6)//0代表星期天
  除了数字还有几个个特殊的符号就是”*”、”/”和”-“、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。以下举几个例子说明问题:
  每天早上6点
  0 6 * * * echo “Good morning.” >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
  每两个小时
  0 */2 * * * echo “Have a break now.” >> /tmp/test.txt
  晚上11点到早上8点之间每两个小时,早上八点
  0 23-7/2,8 * * * echo “Have a good dream:)” >> /tmp/test.txt
  每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
  0 11 4 * 1-3 command line
  1月1日早上4点
  0 4 1 1 * command line
  每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
  2、编辑/etc/crontab 文件配置cron
  cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
  SHELL=/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
  HOME=/ //使用者运行的路径,这里是根目录
  # run-parts
  01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
  02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
  22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
  42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
  大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
  ————————————–
  基本格式 :
  *  *  *  *  *  command
  分 时 日 月 周 命令
  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令
  crontab文件的一些例子:
  30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每晚的21:30重启lighttpd 。
  45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
  10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每周六、周日的1 : 10重启lighttpd 。
  0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
  0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
  * */1 * * * /usr/local/etc/rc.d/lighttpd restart
  每一小时重启lighttpd
  * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  晚上11点到早上7点之间,每隔一小时重启lighttpd
  0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  每月的4号与每周一到周三的11点重启lighttpd
  0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
  一月一号的4点重启lighttpd

umount,device is busy解决办法

  在Centos 5.2上我挂着一个新硬盘,命令如下:
  #mount /dev/sdb1 /home/soft
  之后想卸载掉,但在输入:
  #umount /home/soft
  提示device is busy,无法卸载,在网上查找,方法如下
  #fuser -m /home/soft
  提示出进程号码 4573,之后执行如下命令:
  #kill -9 4573 成功后就可以卸载掉了