注:文章内部分内容摘抄自公司同事编写的技术文档,在此对他致以衷心的谢意!

Cacti、Nagios、Zabbix都是生产环境常用的监控软件,为了整合资源便于管理一般都将这三种监控软件整合到一台服务器中,下面是工作中总结的适合Cacti、Zabbix、Nagios的编译参数和基本配置方法,希望对大家有帮助。

1. php编译所需依赖包安装(cacti、zabbix需要的编译参数)

 
  
  1. yum -y install "pcre*"  
  2. yum -y install "net-snmp*"  
  3. yum -y install zlib zlib-devel  
  4. yum -y install libpng libpng-devel  
  5. yum -y install freetype freetype-devel  
  6. yum -y install "*jpeg*"  
  7. yum -y install bzip2 bzip2-devel  
  8. yum -y install fontconfig fontconfig-devel  
  9. yum -y install gd gd-devel       
  10. yum -y install "libxml*" 

2. php-fastcgi(php-fpm)编译和安装配置(php-5.3.13)

 
  
  1. ./configure \ 
  2. --prefix=/usr/local/php-5.3.13 \ 
  3. --enable-fpm \ 
  4. --with-fpm-user=daemon \ 
  5. --with-fpm-group=daemon \ 
  6. --with-pdo-mysql=/usr/local/mysql \ 
  7. --with-mysql=/usr/local/mysql \ 
  8. --with-mysqli=/usr/local/mysql/bin/mysql_config \ 
  9. --with-config-file-path=/usr/local/php-5.3.13/etc \ 
  10. --with-iconv \ 
  11. --with-libxml-dir \ 
  12. --with-gd \ 
  13. --with-jpeg-dir \ 
  14. --with-png-dir \ 
  15. --with-bz2 \ 
  16. --with-freetype-dir \ 
  17. --with-zlib \ 
  18. --enable-gd-native-ttf \ 
  19. --enable-mbstring \ 
  20. --enable-sockets \ 
  21. --enable-gd-jis-conv \ 
  22. --with-freetype-dir \ 
  23. --with-curl \ 
  24. --enable-xml \ 
  25. --enable-pdo \ 
  26. --enable-bcmath 
  27.  
  28. make && make install
  29. cd /usr/local; ln -s php-5.3.13 php
  30. mkdir /tmp/sess
  31. chmod -R 777 /tmp/sess

3. php apache模块 编译和安装配置(php-5.3.13)

 
  
  1. ./configure \ 
  2. --prefix=/usr/local/php-5.3.13 \ 
  3. --with-apxs2=/usr/local/apache/bin/apxs \ 
  4. --with-pdo-mysql=/usr/local/mysql \ 
  5. --with-mysql=/usr/local/mysql \ 
  6. --with-mysqli=/usr/local/mysql/bin/mysql_config \ 
  7. --with-config-file-path=/usr/local/php-5.3.13/etc \ 
  8. --with-iconv \ 
  9. --with-libxml-dir \ 
  10. --with-gd \ 
  11. --with-jpeg-dir \ 
  12. --with-png-dir \ 
  13. --with-bz2 \ 
  14. --with-freetype-dir \ 
  15. --with-zlib \ 
  16. --enable-gd-native-ttf \ 
  17. --enable-mbstring \ 
  18. --enable-sockets \ 
  19. --with-pdo-oci=instantclient,/usr,11.2 \ 
  20. --enable-gd-jis-conv \ 
  21. --with-freetype-dir \ 
  22. --with-curl \ 
  23. --enable-xml \ 
  24. --enable-pdo \ 
  25. --enable-bcmath \ 
  26. --with-pear \ 
  27. --with-xmlrpc \ 
  28. --enable-zip 
  29.  
  30. make && make install
  31. cd /usr/local; ln -s php-5.3.13 php
  32. mkdir /tmp/sess
  33. chmod -R 777 /tmp/sess

4. 安装pear日志功能

 
  
  1. cd /usr/local/php/bin; ./pear install log 

5. php-fastcgi(php-fpm) 配置文件包括php.ini和php-fpm.conf 请看附件“php和php-fpm配置文件

6. php apache模块 配置文件包括php.ini 请看附件“php配置文件

7. php-fpm启动脚本配置

 
  
  1. 1. 创建/etc/init.d/php-fpm文件,并将以下代码复制到该文件中
  2.  
  3. #! /bin/sh 
  4. ### BEGIN INIT INFO 
  5. # Provides:          php-fpm 
  6. # Required-Start:    $remote_fs $network 
  7. # Required-Stop:     $remote_fs $network 
  8. Default-Start:     2 3 4 5 
  9. Default-Stop:      0 1 6 
  10. # Short-Description: starts php-fpm 
  11. # Description:       starts the PHP FastCGI Process Manager daemon 
  12. ### END INIT INFO 
  13.  
  14. prefix=/usr/local/php 
  15. exec_prefix=${prefix} 
  16.  
  17. php_fpm_BIN=${exec_prefix}/sbin/php-fpm 
  18. php_fpm_CONF=${prefix}/etc/php-fpm.conf 
  19. php_fpm_PID=${prefix}/var/run/php-fpm.pid 
  20.  
  21. php_opts="--fpm-config $php_fpm_CONF" 
  22.  
  23. wait_for_pid () { 
  24.         try=0 
  25.         while test $try -lt 35 ; do 
  26.                 case "$1" in 
  27.                         'created'
  28.                         if [ -f "$2" ] ; then 
  29.                                 try='' 
  30.                                 break 
  31.                         fi 
  32.                         ;; 
  33.  
  34.                         'removed'
  35.                         if [ ! -f "$2" ] ; then 
  36.                                 try='' 
  37.                                 break 
  38.                         fi 
  39.                         ;; 
  40.                 esac 
  41.                 echo -n . 
  42.                 try=`expr $try + 1` 
  43.                 sleep 1 
  44.         done 

  45.  
  46. case "$1" in 
  47.         start) 
  48.                 echo -n "Starting php-fpm " 
  49.                 $php_fpm_BIN $php_opts 
  50.                 if [ "$?" != 0 ] ; then 
  51.                         echo " failed" 
  52.                         exit 1 
  53.                 fi 
  54.                 wait_for_pid created $php_fpm_PID 
  55.                 if [ -n "$try" ] ; then 
  56.                         echo " failed" 
  57.                         exit 1 
  58.                 else 
  59.                         echo " done" 
  60.                 fi 
  61.         ;; 
  62.         stop) 
  63.                 echo -n "Gracefully shutting down php-fpm " 
  64.                 if [ ! -r $php_fpm_PID ] ; then 
  65.                         echo "warning, no pid file found - php-fpm is not running ?" 
  66.                         exit 1 
  67.                 fi 
  68.                 kill -QUIT `cat $php_fpm_PID` 
  69.                 wait_for_pid removed $php_fpm_PID 
  70.                 if [ -n "$try" ] ; then 
  71.                         echo " failed. Use force-quit" 
  72.                         exit 1 
  73.                 else 
  74.                         echo " done" 
  75.                 fi 
  76.         ;; 
  77.         force-quit) 
  78.                 echo -n "Terminating php-fpm " 
  79.                 if [ ! -r $php_fpm_PID ] ; then 
  80.                         echo "warning, no pid file found - php-fpm is not running ?" 
  81.                         exit 1 
  82.                 fi 
  83.                 kill -TERM `cat $php_fpm_PID` 
  84.                 wait_for_pid removed $php_fpm_PID 
  85.                 if [ -n "$try" ] ; then 
  86.                         echo " failed" 
  87.                         exit 1 
  88.                 else 
  89.                         echo " done" 
  90.                 fi 
  91.         ;; 
  92.         restart) 
  93.                 $0 stop 
  94.                 $0 start 
  95.         ;; 
  96.         reload) 
  97.                 echo -n "Reload service php-fpm " 
  98.                 if [ ! -r $php_fpm_PID ] ; then 
  99.                         echo "warning, no pid file found - php-fpm is not running ?" 
  100.                         exit 1 
  101.                 fi 
  102.                 kill -USR2 `cat $php_fpm_PID` 
  103.                 echo " done" 
  104.         ;; 
  105.         *) 
  106.                 echo "Usage: $0 {start|stop|force-quit|restart|reload}" 
  107.                 exit 1 
  108.         ;; 
  109. esac 
  110.  
  111. 2. 执行以下指令 配置php-fpm为服务及开机启动
  112.  
  113. chmod +x /etc/init.d/php-fpm
  114. chkconfig --add php-fpm
  115. chkconfig php-fpm on
  116. /etc/init.d/php-fpm start
  117.