• 首页
  • IT技术
  • 生活
  • ISSUE
  • SVN
Bernie Yu

复刻生活

nginx + awstats 7.3 + GeoIP + PHP-FPM 全记录

Posted on 2015年4月16日

nginx + awstats 7.3 + GeoIP + PHP-FPM 全记录

VPS上已经部署好了nginx+php-fpm,此次为添加awstats的过程全记录,以备后查。

  1. 下载awstats 7.3
    • wget http://prdownloads.sourceforge.net/awstats/awstats-7.3.zip
      
      unzip awstats-7.3.zip
      mv awstats-7.3 /usr/local/awstats
  2. 运行awstats配置向导,生成配置文件
    • cd /usr/local/awstats
      perl tools/awstats_configure.pl
    • 根据屏幕提示输入
    • #-----> Check for web server install 
      #Enter full config file path of your Web server. 
      #Example: /etc/httpd/httpd.conf 
      #Example: /usr/local/apache2/conf/httpd.conf 
      #Example: c:\Program files\apache #group\apache\conf\httpd.conf 
      #Config file path ('none' to skip web server setup): 
      > none    #不用apache,输入none
      
      #-----> Need to create a new config file ? 
      #Do you want me to build a new AWStats config/profile 
      #file (required if first install) [y/N] ? 
      >y        #创建新的配置文件
      
      #What is the name of your web site or profile analysis ? 
      #Example: www.mysite.com 
      #Example: demo 
      #Your web site, virtual server or profile name: 
      > www  #配置文件名称
      
      #Default: /etc/awstats 
      #Directory path to store config file(s) (Enter for default): 
      >(enter) #保存在默认位置,直接回车
      
      
    • 再几次回车后,结束配置向导
  3. 下载GeoIP库
    • wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
      wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
      wget http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
      
      gunzip GeoIP.dat.gz
      gunzip GeoLiteCity.dat.gz
      gunzip GeoIPASNum.dat.gz
      
      mv *.dat /usr/local/awstats/wwwroot/cgi-bin/
      chown -R www-data:www-data /usr/local/awstats/wwwroot/
  4. 下载并安装GeoIP API(C和Perl)
    • wget https://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
      
      wget https://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.40.tar.gz
      
      tar xf GeoIP-1.4.8.tar.gz
      cd GeoIP-1.4.8
      ./configure
      make && make install 
      
      #检查是否生成c库文件
      ls /usr/local/lib
      
      rm -rf GeoIP-1.4.8
      
      tar xf Geo-IP-1.40.tar.gz
      cd Geo-IP-1.40
      perl Makefile.PL LIBS='-L/usr/local/lib' 
      make && make install
      
  5. 建立awstats数据库文件夹,并调整权限
    • mkdir /usr/local/awstats/wwwroot/output
      chown -R www-data:www-data /usr/local/awstats/wwwroot
  6. 修改awstats配置文件
    • vi /etc/awstats/awstats.www.conf
      
      #日志文件位置
      #使用logresolvemerge.pl 可以解析多个日志文件,并且可以直接解析.gz这样已经压缩的日志
      LogFile="/usr/local/awstats/tools/logresolvemerge.pl /var/log/nginx/www.bernieyu.com.access.log* |"
      
      #站点域名
      SiteDomain="bernieyu.com"
      HostAliases="bernieyu.com www.bernieyu.com 127.0.0.1 localhost"
      
      #数据输出文件夹
      DirData="/usr/local/awstats/wwwroot/output"
      
      #解决搜索关键字乱码
      LoadPlugin="decodeutfkeys"  
      
      #IP解析插件
      LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIP.dat"
      LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"
      LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIPASNum.dat"
      
    • 注意:在网上搜到的文章,大部分都说GeoIPASNum.dat是机构数据,对应的插件是geoip_org_maxmind,这个是错误的,应该是geoip_asn_maxmind
      
      
  7. 生成数据,测试配置
    • chmod +x /usr/local/awstats/wwwroot/cgi-bin/awstats.pl 
      /usr/local/awstats/wwwroot/cgi-bin/awstats.pl  -config=www
  8. 生成密码文件
    • htpasswd -c /etc/awstats/awstats.pwd username
  9. 配置nginx,使其支持awstats
    • 在网上查到的文件大部分都说nginx对perl支持不好,因此需要生成静态文件,再由nginx访问。而事实上awstats本身已经提供了nginx的支持
    • 复制awstats提供的模板到对应位置
    • cp /usr/local/awstats/tools/nginx/awstats-fcgi.php /usr/local/awstats/wwwroot/cgi-bin/fcgi.php
      cp /usr/local/awstats/tools/nginx/awstats-nginx.php /etc/nginx/conf.d/awstats.conf
      ln -s /etc/nginx/conf.d/awstats.conf /etc/nginx/site-available/awstats.conf
    • 编辑awstats.conf
    • vi /etc/nginx/conf.d/awstats.conf
      
      server {
              #去掉127.0.0.1,否则只能本地访问
              listen 80;
              server_name awstats.bernieyu.com;
              access_log /var/log/nginx/awstats.bernieyu.com.access_log main;
              error_log /var/log/nginx/awstats.bernieyu.com.error_log info;
              root /usr/local/awstats/wwwroot;
              index index.html;
              access_log off;
      
              #访问限制,使用之前生成的密码文件
              # Restrict access
              auth_basic "Restricted";
              auth_basic_user_file /etc/awstats/awstats.pwd;
      
      
              # Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/
              location /awstats/classes/ {
                      alias /usr/local/awstats/wwwroot/classes/;
              }
      
              location /awstats/css/ {
                      alias /usr/local/awstats/wwwroot/css/;
              }
      
              location /awstats/icon/ {
                      alias /usr/local/awstats/wwwroot/icon/;
              }
      
              location /awstats/js/ {
                      alias /usr/local/awstats/wwwroot/js/;
              }
      
              #支持http://awstats.bernieyu.com/www的方式访问
              location ~ ^/([a-z0-9-_\.]+)$ {
                      return 301 $scheme://awstats.bernieyu.com/cgi-bin/awstats.pl?config=$1;
              }
      
              # Dynamic stats.
              location ~ ^/cgi-bin/(awredir|awstats)\.pl {
                      gzip off;
      
                      #指定到php-fpm的位置
                      fastcgi_pass unix:/var/run/php5-fpm.sock;
      
                      fastcgi_param SCRIPT_FILENAME /usr/local/awstats/wwwroot/cgi-bin/fcgi.php;
                      fastcgi_param X_SCRIPT_FILENAME /usr/local/awstats/wwwroot$fastcgi_script_name;
                      fastcgi_param X_SCRIPT_NAME $fastcgi_script_name;
                      include fastcgi_params;
              }
      }
      
  10. 编辑nginx的主配置文件,主要是日志格式,并将awstats.conf包含进去
    • vi /etc/nginx/nginx.conf
      
      http {
          ...
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
          include /etc/nginx/sites-available/*.conf;
      }
  11. 在crontab中添加更新的调度
    • vi /etc/crontab
      
      #根据自已经需要配置更新频率
      #every hour
      #0 * * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www
      
      #every day
      0 0 * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www
      
  12. 更新一下数据
    • /usr/local/awstats/tools/awstats_updateall.pl now
  13. 访问http://awstats.bernieyu.com/www看效果吧

 

Posted in: IT技术 | Tagged: awstats, fpm, GeoIP, nginx, php
← 必须收藏的一些ZF网站
awstats按天统计 →
2015年4月
一 二 三 四 五 六 日
« 三   五 »
 12345
6789101112
13141516171819
20212223242526
27282930  

标签

Android awstats bug tracking chrome database EXSi ffmpeg ffplay fpm GeoIP git hls HTML5 iOS ipkg JavaScript JSON linux lsyncd mantis MariaDB mysql N54l nginx php rtmp SVN svnlook Synology Video vps WordPress yamdi 同步 字幕 安全控件 安装 实用信息 录制 摄像头 浏览器 生活 直播 迅雷 黑群晖

近期文章

  • VPS从DirectSpace迁移到vultr
  • 查看阻止电脑进入休眠的程序
  • HDCN,纪念
  • [转] lsyncd实时同步搭建指南——取代rsync+inotify
  • 在群晖NAS上搭建MantisBT Bug跟踪系统

分类目录

  • Android
  • Database
  • Git
  • IT技术
  • Linux
  • SVN
  • Synology
  • WEB
  • WordPress
  • 未分类
  • 生活

文章归档

  • 2016年5月
  • 2015年12月
  • 2015年10月
  • 2015年7月
  • 2015年6月
  • 2015年5月
  • 2015年4月
  • 2015年3月

链接·工具

  • 百度云观测
  • 360云监控
  • 草料网二维码生成
  • 工信部投诉
  • 快递投诉
  • 北京社保查询
  • 北京公积金查询
  • 执业医师查询
  • 在线查毒:VirusTotal
  • 在线查毒:VirSCAN

Copyright © 2025 Bernie Yu.

Theme by ThemeHall.