未来往事
风景:因为美好,所以留恋;友谊:因为值得,所以挂牵;生活:因为祝福,所以温暖! [2017年 第47周/共52周]

MySQL HandlerSocket

MySQL HandlerSocket 插件说明与安装配置

一、HandlerSocket是什么?
HandlerSocket是akira higuchi写的一个MySQL的插件。以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。
目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多成功的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:
Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的Web2.0时代,不可取。
Memcache崩溃后的雪崩效应:作为缓存的Memcache一旦崩溃,MySQL很可能在短时间内承受高负载而宕机。
注:关于清理过期数据的问题,可以在程序架构上想办法,如果数据操作有统一DAO封装的话,可以利用Observer模式来清理过期数据,非主题内容,资料自查。
面对以上问题,HandlerSocket项目是个不错的解决方案,它通过插件的方式赋予MySQL完整的NoSQL功能,从原理上讲,它跳过MySQL中最耗时的语法解析,查询计划等步骤,直接读取数据,如果内存够大,能装下索引,MySQL的查询效率能提高若干倍!
HandlerSocket:https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
php-handlersocket:http://code.google.com/p/php-handlersocket/

系统信息约定:
系统版本:CentOS 6.3 X86
PHP安装目录:/usr/local/webserver/php5318
MySQL安装目录:/usr/local/webserver/mysql5520
HandlerSocket安装路径:/usr/local/webserver/handlersocket

二、安装配置HandlerSocket
安装之前建议你先安装相关支持及需要的组件包:
yum install gcc gcc-c++ libtool make openssl-devel perl-DBI perl-DBD-MySQL
yum install rpm-build gperf readline-devel ncurses-devel time perl-Time-HiRes

1. 安装
如果使用Percona Server版本的MySQL就简单了,因为它已经内置了HandlerSocket支持,不过考虑到其内置的版本不够新,存在一些早已修复的BUG,所以最好采用源代码编译。HandlerSocket是基于MySQL数据库的,因此在安装HanderSocket前需要先按照常规方式部署MySQL服务,同时需注意HandlerSocket时需要MySQL的源码,因此还需要MySQL源码编译方式安装。
[root@iredmail opt]# git clone https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL.git
[root@iredmail opt]# cd HandlerSocket-Plugin-for-MySQL
[root@iredmail HandlerSocket-Plugin-for-MySQL]# ./autogen.sh
[root@iredmail HandlerSocket-Plugin-for-MySQL]#./configure --prefix=/usr/local/webserver/handlersocket --with-mysql-source=/opt/mysql-5.5.20 --with-mysql-bindir=/usr/local/webserver/mysql5520/bin --with-mysql-plugindir=/usr/local/webserver/mysql5520/lib/mysql/plugin
Tips:
--with-mysql-source 指定MySQL源码所在目录
--with-mysql-bindir 表示MySQL二进制可执行文件目录
--with-mysql-plugindir 指定MySQL插件的存储路径,如果不清楚这个目录在哪,可以按如下方法查询:
mysql> show variables like 'plugin%';
+---------------+-------------------------------------------+
| Variable_name | Value                                     |
+---------------+-------------------------------------------+
| plugin_dir    | /usr/local/webserver/mysql5520/lib/plugin |
+---------------+-------------------------------------------+
1 row in set (0.00 sec)
[root@iredmail HandlerSocket-Plugin-for-MySQL]# make
常见错误:
libtool: link: only absolute run-paths are allowed
make[2]: *** [handlersocket.la] Error 1
make[2]: Leaving directory `/opt/HandlerSocket-Plugin-for-MySQL/handlersocket'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/HandlerSocket-Plugin-for-MySQL'
make: *** [all] Error 2
解决方法:
[root@iredmail HandlerSocket-Plugin-for-MySQL]# vi handlersocket/Makefile
line 301:
$(handlersocket_la_LINK) -rpath $(pkgplugindir) $(handlersocket_la_OBJECTS) $(handlersocket_la_LIBADD) $(LIBS)
-->
$(handlersocket_la_LINK) -rpath /opt/HandlerSocket-Plugin-for-MySQL/handlersocket $( handlersocket_la_OBJECTS) $(handlersocket_la_LIBADD) $(LIBS)

[root@iredmail HandlerSocket-Plugin-for-MySQL]#make install
完成后,mysql-plugindir目录下应有handlersocket相关文件

2、配置MySQL:
修改my.cnf配置文件:
[root@iredmail HandlerSocket-Plugin-for-MySQL]# vi /etc/my.cnf
[mysqld]
plugin-load=handlersocket.so(plugin-load可略过不配)
loose_handlersocket_port = 9998 # 指定读请求端口号
# the port number to bind to (for read requests)
loose_handlersocket_port_wr = 9999 # 指定写请求端口号
# the port number to bind to (for write requests)
loose_handlersocket_threads = 16 # 指定读线程数目
# the number of worker threads (for read requests)
loose_handlersocket_threads_wr = 1 # 指定写线程数目
# the number of worker threads (for write requests)
open_files_limit = 65535
# to allow handlersocket accept many concurren connections, make open_files_limit as large as possible.
Tips:InnoDB的innodb_buffer_pool_size,或MyISAM的key_buffy_size等关系到缓存索引的选项尽可能设置大一些,这样才能发挥HandlerSocket的潜力。

登陆MySQL并激活HandlerSocket插件:
[root@iredmail HandlerSocket-Plugin-for-MySQL]# mysql -uroot -p
mysql> install plugin handlersocket soname 'handlersocket.so';
ERROR 1126 (HY000): Can't open shared library '/usr/local/webserver/mysql5520/lib/plugin/handlersocket.so' (errno: 2 cannot open shared object file: No such file or directory)
说明:这里提示没有找到handlersocket.so扩展文件,请查看扩展文件是否存在。
mysql> install plugin handlersocket soname 'handlersocket.so';
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
至此,HandlerSocket插件安装完毕。

重启mysql服务:
[root@iredmail HandlerSocket-Plugin-for-MySQL]# service mysqld restart

3、HandlerSocket状态测试:

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

也可以通过查询刚配置的端口是否已经被MySQL占用来确认是否安装成功:
[root@iredmail HandlerSocket-Plugin-for-MySQL]# lsof -i -P | grep mysqld
mysqld    26871 mysql   11u  IPv4  72467      0t0  TCP *:9998 (LISTEN)
mysqld    26871 mysql   29u  IPv4  72469      0t0  TCP *:9999 (LISTEN)
mysqld    26871 mysql   31u  IPv4  72474      0t0  TCP *:3306 (LISTEN)
Tips:If ports 9998 and 9999 don’t show up.  Make sure SELinux is not running.

三、安装配置 php-handlersocket 扩展模块:
1、安装php-handlersocket扩展
[root@iredmail opt]# wget http://php-handlersocket.googlecode.com/files/php-handlersocket-0.3.1.tar.gz
[root@iredmail opt]# tar -zxvf php-handlersocket-0.3.1.tar.gz
[root@iredmail opt]# cd handlersocket/
[root@iredmail handlersocket]# /usr/local/webserver/php5318/bin/phpize
[root@iredmail handlersocket]# ./configure --with-php-config=/usr/local/webserver/php5318/bin/php-config
./configure可加参数:
点击在新窗口中浏览此图片
Tips:If you get error:
configure: error: Can't find hsclient  headers,please install libhsclient first,Or ./configure--disable-handlersocket-hsclient --with-php-config=/usr/local/webserver/php5318/bin/php-config use native type.
[root@iredmail handlersocket]#make && make install
A successful install will have created handlersocket.so and put it into the PHP extensions directory. You'll need to and adjust php.ini and add an extension=handlersocket.so line before you can use the extension.
[root@iredmail handlersocket]# vi /usr/local/webserver/php5318/etc/php.ini
extension=handlersocket.so

至此php扩展安装完成,放问php.info页面,我们可以看到已经成功加载了handlersocket扩展

点击在新窗口中浏览此图片


2、php-handlersocket 使用示例:
+阅读全文

Windows Memcache安装配置(For PHP5.3)

Memcache是什么?
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载与压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这 些HashTable。
Memcache官方网站:
http://www.danga.com/memcached
http://memcached.org/   更多详细的信息可以来这里了解 :)

Memcached又是什么?
Memcache是该系统的项目名称,Memcached是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。一个是项目名称,一个是主程序守护进程文件名。

那PHP中的Memcache是什么?
php中的所讲的memcache是用于连接Memecached的客户端组件。
如果你对php扩展模块中的memcache和memcached有疑问,请参考《php模块memcache和memcached区别分析

Windows Memcache安装配置(For PHP5.3)
约定信息:
操作系统Windows7 X64
当前使用PHP版本:php-5.3.26-Win32-VC9-x86
Memcache Server版本:memcached-1.2.6-win32-bin
Memcache Client版本:php_memcache-2.2.6-5.3-vc9-x86(这里需要和PHP版本匹配)
注意:PHP for Win32有两个版本,所以PHP Memcache扩展也相应的有两个版本:
VC9 x86 Non Thread Safe(nts) 和 VC9 x86 Thread Safe

相关软件下载:
PHP程序下载地址:http://windows.php.net/download/
windows版本的Memcached下载地址:http://code.jellycan.com/memcached/
php_memcache.dll下载地址:http://downloads.php.net/pierre/
Tips:请根据本机实际安装的PHP版本选择匹配的php_memcache.dll进行下载,VC9 x86 Non Thread Safe(nts) 和 VC9 x86 Thread Safe。

一、Memcached安装
将下载下来的windows版本的Memcached,解压之后放在硬盘的目录下,这里我放到了D:\phpweb\memcached目录,然后在运行中输入cmd进入命令行,进入到memcached目录中运行以下命令:
安装: memcached.exe –d install
启动:memcached.exe –d start
通过windows任务管理器我们可以看到memcached进程已经在运行了,如图

点击在新窗口中浏览此图片

Tips: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

二、Memcached for PHP 扩展安装(让PHP加载Memcache)
很简单。不过还没完,你只是安装了一个memcached caching server,还没有和php建立关联。所以在php程序里还不能运用。
1、下载php_memcache.dll,请自己查找对应的php版本的文件http://downloads.php.net/pierre/
2、在你的 php.ini 加入一行 "extension=php_memcache.dll"(不含引号)
3、在php.ini末尾加上
[Memcache]
memcache.allow_failover = 1   //是否在发生错误时(对用户)透明的转移到其他服务器。
memcache.max_failover_attempts=20  //定义在写入和获取数据时最多尝试的服务器次数(即:故障转移最大尝试数),仅和 memcache.allow_failover结合使用。
memcache.chunk_size =8192   //数据传输块大小,这个值越小网络I/O次数越多,如果发现莫名的速度降低, 可以尝试将此值调至32768。
memcache.default_port = 11211   //在尝试连接memcache的时候如果没有单独指定端口默认使用的TCP端口号。
具体运行配置详细可以查看:《PHP: 运行时配置- Manual》
4、重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

点击在新窗口中浏览此图片

Tips:
-p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助

三、Memcache状态测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
  1. <?php  
  2.      $mem = new Memcache;  
  3.      $mem->connect('127.0.0.1', 11211);  
  4.      $mem->set('key''This is a memcache test page!', 0, 60);  
  5.      $val = $mem->get('key');  
  6.      echo $val;  //output This is a test page!  
  7.    echo '<br />';  
  8.      echo 'Memcache Server 版本:'.$mem->getVersion();  //output 1.2.6  
  9.    echo "<p><a href='http://fity.cn' style='text-decoration:none;font-size:10pt;'>来源:未来往事</a></p>";  
  10. ?>  
Tips:第2行部分,connect里面的参数第一个表示服务器地址,第二个表示端口号,具体函数详细说明可以查看:
《PHP: Memcache - Manual》

使用“telnet ip 端口号”,然后使用:stats命令可以看到memcached的使用情况如下:
+阅读全文

RedHat红帽推出OpenStack产品 意在开放式混合云

红帽发布全新云计算平台 - 未来从未 如此开放
最新解决方案包括Red Hat Enterprise Linux家族和最新产品,意在帮助用户完善从数据中心虚拟化迈向基础架构即服务的旅程

北卡罗来纳州和波士顿-2013年度红帽峰会-2013年6月12日—世界领先的开源解决方案提供商红帽公司(纽交所代码:RHT)今天宣布推出两款最新的产品来实现开放式混合云愿景。新产品包括一款能帮助云用户构建OpenStack 云基础的解决方案Red Hat Enterprise Linux OpenStack Platform和一个专门为支持企业用户从传统数据中心虚拟化向OpenStack云过渡而设计的综合性产品。

新产品是在红帽公司企业级开源解决方案基础上构建的,提供世界级的红帽支持,包括通过红帽OpenStack云基础架构合作伙伴网络内广大的合作伙伴生态系统和专为帮助企业用户能轻松接受OpenStack而设计的各种支持。

Red Hat Enterprise Linux OpenStack Platform将Red Hat Enterprise Linux与OpenStack云平台整合在一起,为构建私有云或者公有云提供可扩展的安全基础。Red Hat Cloud Infrastructure能帮助企业用户部署既适用于传统应用软件又适用于新兴云应用软件的基础架构即服务的解决方案。通过Red Hat Cloud Infrastructure,企业用户可以用他们的方式来迁移最新的云应用软件体系结构:以他们自己的节奏,使用他们自己的IT协议,将一切置于他们自己的控制之下。

Red Hat Enterprise Linux OpenStack Platform

Red Hat Enterprise Linux OpenStack Platform专门为满足高级云用户,电信公司,互联网服务提供商和公有云托管提供商需求而设计的,Red Hat Enterprise Linux OpenStack Platform整合了世界领先的企业级Linux操作系统和行业中成长速度最快的云基础架构平台,帮助企业用户实现平台扩展的灵活性,无需牺牲可用性,安全性和性能即可快速满足用户的需求。

Red Hat Enterprise Linux OpenStack Platform是一款单独订阅的产品,包括:

- Red Hat Enterprise Linux Server,为运行OpenStack工作负载服务器(计算节点,存储节点和控制器节点)和用于客户端虚拟机的可扩展,高性能Linux操作系统提供一个安全的认证基础;

- Red Hat OpenStack,为优化和整合Red Hat Enterprise Linux操作系统来开发和管理用于云工作负载的私有云或者公有云提供一个高度扩展的容错平台。

使用Red Hat Enterprise Linux OpenStack Platform能帮助高级用户开发和配置生产型OpenStack基础架构,专注于服务层,工具的附加价值,在Red Hat Enterprise Linux OpenStack Platform基础上定制用户需求,同时信任红帽来维护Red Hat Enterprise Linux Server和OpenStack节点的完整性。

另外,Red Hat Enterprise Linux OpenStack Platform提供几种企业级特性来帮助企业用户满怀信心的进行配置,包括测试和验证每个在Red Hat Enterprise Linux OpenStack Platform上运行的OpenStack版本,拓宽硬件和软件的兼容性和性能;一个可预测的,稳定的生命周期;SELinux的军事级的安全性;一个广泛的可以认证计算,存储,网络,ISV软件,配置和定制服务的合作伙伴生态系统。

Red Hat Cloud Infrastructure

企业用户已经体验过数据中心虚拟化的优势,也希望能获得更高级别的管理能力,比如费用返还,自助服务,高级监控和测算以及Red Hat CloudForms(目前已经整合了2012年11月红帽收购的ManageIQ技术)提供的协调功能。同时,诸如OpenStack这样的公有云技术可以降低基础架构的成本,高扩展的体系结构和IT即服务的模式。企业用户会面对与管理从传统数据中心虚拟化向云体系结构过渡这一长期过程相关的挑战,同时还要指明将他们的应用软件工作负载从一个体系结构迁移到另一个体系结构的方向,并保证分散平台的可管理性和协议。

Red Hat Cloud Infrastructure是专为满足这种需求而设计的,可以帮助企业用户构建和管理基于数据中心虚拟化和用于传统工作负载的管理技术的私有云基础架构即服务,同时提供诸如基于Red Hat OpenStack的基础架构这种高扩展公有云的发展规划。

Red Hat Cloud Infrastructure是一款由四个组件技术构成的单独订阅产品:

- Red Hat Enterprise Virtualization:一款适用于Linux 和Windows工作负载的综合性数据中心虚拟化产品,能帮助用户构建一个满足传统企业级应用软件工作负载需求的安全,灵活的虚拟化基础。

- Red Hat CloudForms:是一款开放式的混合云管理解决方案,能为用户提供对现有多样化虚拟基础架构的可视性和控制,帮助用户配置,监控和管理涵盖Red Hat Enterprise Virtualization, VMware vSphere和其他虚拟化解决方案,管理程序和平台的云服务。

- Red Hat OpenStack:是一款高扩展的基础架构即服务解决方案,能帮助用户奠定一个开放的,灵活的,企业级的私有云基础。

- Red Hat Enterprise Linux Server,是世界领先的企业级Linux操作系统,是可用于在OpenStack计算平台上运行的客户端虚拟机的可扩展的,高性能Linux操作系统。

上市时间

Red Hat Enterprise Linux OpenStack Platform和Red Hat Cloud Infrastructure将于2013年7月上市。
+阅读全文

PS(PhotoShop) CS6 图形处理器与OpenCL设置说明

PS(PhotoShop) CS6 图形处理器与OpenCL设置说明备忘
启用图形处理器:
Photoshop CS6 GPU – 编辑 – 首选项 – 性能 - 图形处理器设置 – 使用图形处理器(勾选)
补充说明:
若"图形处理器设置"中检测不到显卡相关信息,请先更新显卡驱动到最新版本。

OpenCL:
Photoshop CS6 GPU – 编辑 – 首选项 – 性能 - 使用图形处理器(勾选) - 高级设置 - 选高级 - opencl(勾选)
补充说明:
部分3D效果依托于OpenCL
另外,若需要启动OpenCL需要满足以下条件:
1、显卡需支持opencl1.0++
......
+阅读全文

Awstats+Nginx按年/月/日归档日志数据分析结果

最后更新时间:2013-06-16
  • 2013-05-21 首次整理成文档
  • 2013-06-17 发布到博客


一、Awstats安装配置
详细安装步骤这里不再赘述,如有需要请参考博客另一篇文章《awstats+jawstats构建日志自动分析系统》
1、安装
[root@iredmail ~]# cd /opt
[root@iredmail opt]# wget http://sourceforge.net/projects/awstats/files/AWStats/7.1.1/awstats-7.1.1.tar.gz
[root@iredmail opt]# tar -zxf awstats-7.1.1.tar.gz
[root@iredmail opt]# mv awstats-7.1.1 /usr/local/awstats
[root@iredmail opt]# chown -R root:root /usr/local/awstats
[root@iredmail opt]# chmod +x /usr/local/awstats/tools/*.pl
[root@iredmail opt]# chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl
[root@iredmail opt]# cd /usr/local/awstats/tools
[root@iredmail tools]# ./awstats_configure.pl
1) 输入 none 然后回车
2) 输入 y 确认创建配置文件
3) 输入配置文件名称,一般输入域名,这里是以slog.fity.cn为案例
4) 配置文件使用默认路径 /etc/awstats
5) 按回车继续
6) 按回车完成配置文件的创建

2、修改awstats配置文件
[root@iredmail tools]# vi /etc/awstats/awstats.slog.fity.cn.conf  #如果有多个站点需要统计,请配置多个配置文件
LogFile="/htdoc/logs/2013/05/access_20130526.log"//指定log文件的存储位置
如果你希望每天能定时生成昨天的报表,可以:
LogFile="/htdoc/logs/%YYYY-24/%MM-24%/access_%YYYY-24%MM-24%DD-24.log"
注:根据你的日志路径和对应的日志文件名进行修改。对应Nginx日志切割程序所生成的目录存放结构保存的nginx日志文件。要注意Awstats的年月日格式的跟Nginx的写法有所不同,其中%YYYY-24/%MM-24/%DD-24表示年月日都减去24小时,也就是昨天的日志目录。

3、生成Awstats统计结果静态页面
[root@iredmail awstats]# mkdir -p /htdoc/awstats/html  #创建存放结果的目录
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  -config=slog.fity.cn -lang=cn -dir=/htdoc/awstats/html -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
说明:    
/usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具
-update -config=slog.fity.cn 更新配置项,指定配置文件
-lang=cn 语言为中文
-dir=  指定静态页面的存储位置
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径


二、Nginx配置及URL地址简化
1、配置Nginx
从Awstats提供的工具包中我们看到Awstats已经提供了在Nginx环境Awstats的安装配置,Nginx主机范例文件:
[root@iredmail awstats]#ls /usr/local/awstats/tools/nginx/
awstats-fcgi.php  awstats-nginx.conf  README.txt

这里我们先把awstats-fcgi.php复制一份到/usr/local/awstats/wwwroot/cgi-bin/fcgi.php
[root@iredmail awstats]# cd /usr/local/awstats/tools/nginx/
[root@iredmail nginx]# cp -a awstats-fcgi.php /usr/local/awstats/wwwroot/cgi-bin/fcgi.php

然后创建Nginx虚拟主机配置文件(可以参考Awstats提供的示例文件awstats-nginx.conf)
这里未来往事给出一个本次测试环境下Nginx的vhost完整配置:
server {
        listen 80;
        server_name slog.fity.cn;
        #access_log /var/log/nginx/localhost.access_log main;
        #error_log /var/log/nginx/localhost.error_log info;
        root /htdoc/awstats/html;
        index index.html;

        # Restrict access
        #auth_basic "Restricted";
        #auth_basic_user_file /etc/awstats/htpasswd;


        location ~ ^/cgi-bin/.*.(cgi|pl|py|rb) {
        gzip off;
        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;   #注意配置fastcgi_pass为你的php-fpm server.
        fastcgi_index   cgi-bin.php;
        fastcgi_param   SCRIPT_FILENAME /usr/local/awstats/wwwroot/cgi-bin/fcgi.php;  #注意文件路径
        fastcgi_param   SCRIPT_NAME        /cgi-bin/fcgi.php;
        fastcgi_param   X_SCRIPT_FILENAME /usr/local/awstats/wwwroot$fastcgi_script_name;  #注意文件路径
        fastcgi_param   X_SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param   REMOTE_USER        $remote_user;
        }


        # Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/
        location /classes/ {
                alias /usr/local/awstats/wwwroot/classes/;
        }

        location /css/ {
                alias /usr/local/awstats/wwwroot/css/;
        }

        location /js/ {
                alias /usr/local/awstats/wwwroot/js/;
        }
        location /icon/ {
          alias /usr/local/awstats/wwwroot/icon/;
      }

}

2、常见错误:
页面错误信息:File not found.
检查nginx调用的文件是否有读取权限,例如/usr/local/awstats/wwwroot/下的相关文件Nginx是否有权限读取。未来往事遇到该故障是由于Nginx没有读取/usr/local/awstats/wwwroot/cgi-bin/fcgi.php文件的权限。

页面错误信息:Page not found.
检查Nginx配置文件中是否有参数错误。
备注:为了避免以上两处错误,未来往事建议你把该目录下/usr/local/awstats/wwwroot/使用到的文件复制一份到你Nginx中配置的主机目录中,然后适当的修改下Nginx配置文件中的路径地址即可。

3、状态测试
至此,我们便可以通过如下url方式访问日志统计页面了:
http://slog.fity.cn/cgi-bin/awstats.pl?config=slog.fity.cn
如图:

点击在新窗口中浏览此图片


4、简化URL地址
+阅读全文

开机蓝屏Stop 0x0000008E故障原因分析及处理方法

开机蓝屏信息Stop 0x0000008E(0x8000003,0x806f5743,0x8551ee0,0x0000000)无法进入系统故障原因分析及解决方法
错误描述
开机系统进度条转了两圈后就蓝屏然后自动重启,然后再蓝屏重启导致无法进入系统
补充:不同情况下该蓝屏错误提示信息界面持续的时间不同,有些机器可能不到1S时间就进入重启状态,导致我们看不到详细的蓝屏错误代码;有些机器该蓝屏错误信息界面持续时间会在30S左右或更长时间。

点击在新窗口中浏览此图片

错误分析:

......
+阅读全文

Awstats Jawstats常见错误问题<持续更新中>

最后更新时间:2013-06-09
  • 2013-05-20 首次整理成文档
  • 2013-06-09 发布到博客


Awstats常见错误:
一、报表中没有国家代码的问题(jawstats里没有区域名称)

点击在新窗口中浏览此图片

原因分析:缺少GeoIP IP地址识别插件
解决方法:Awstats 安装后默认是不支持国家或地区的,来源全部显示为“未知”, 通过GeoIP插件,在AWStats报表中,可以显示IP地址来自那个国家和地区。

下载相关组件:
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# wget http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz   //国家数据
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz      //城市数据
# wget http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz   //组织数据

安装GeoIP Module(c&perl)
# tar -zxvf GeoIP.tar.gz  
# cd GeoIP-1.4.8/
# ./configure  --prefix=/usr/local/geoip && make && make install

安装Geo-IP-PurePerl Module
# cd ..
# tar zxvf Geo-IP-PurePerl-1.19.tar.gz
# cd Geo-IP-PurePerl-1.19
# perl Makefile.PL
# make
# make test
# make install
也可以这样安装
# perl -MCPAN -e shell
cpan> install Geo-IP-PurePerl

配置GeoIP国家数据库/更新GeoIP库
# cd ..
# gunzip GeoIP.dat.gz  
# mv GeoIP.dat /usr/local/awstats/wwwroot/cgi-bin/

配置GeoLiteCity城市数据库/更新GeoLiteCity库
# cd ..    
# gunzip GeoLiteCity.dat.gz  
# mv GeoLiteCity.dat /usr/local/awstats/wwwroot/cgi-bin/

配置GeoIPASNum组织数据库/更新GeoIPASNum库
# gunzip GeoIPASNum.dat.gz
# mv GeoIPASNum.dat /usr/local/awstats/wwwroot/cgi-bin/

# vi /etc/awstats/awstats.xxxx.conf

# vi /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /usr/local/geoip/share/GeoIP/GeoIP.dat"  #注意这个路径是GeoIP的安装路径
LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoIPISP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/wwwroot/cgi-bin/GeoLiteCity.dat"

定时更新GeoIP库
0 0 * * * root /usr/local/geoip/bin/geoipupdate -v

PS:安装awstats插件Geo IP时我们经常遇到下面这个问题,我们知道Geo是一个C写的库,所以如果当你安装GeoIP后直接运行/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=slog.fity.cn就会收到如下错误:
"Error: Plugin load for plugin 'geoip' failed with return code: Error:
Can't locate Geo/IP.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . ./lib ./plugins) at (eval 2) line 1.
Can't locate Geo/IP/PurePerl.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . ./lib ./plugins) at (eval 3) line 1.
Error: Need Perl module Geo::IP or Geo::IP::PurePerl"
说明找不到PurePerl.pm这个模块,需要PurePerl Module解决这个问题,PurePerl Module是一个perl写的Geo接口
下载地址:http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz



二、awstats如何分析多个日志?
+阅读全文

awstats+jawstats构建日志自动分析系统

Awstats简介
Awstats 是在 SourceForge 上发展很快的一个基于 Perl 的 WEB 日志分析工具,一个充分的日志分析让 Awstats 显示您下列资料:
    访问次数、独特访客人数,
    访问时间和上次访问,
    使用者认证、最近认证的访问,
    每周的高峰时间(页数,点击率,每小时和一周的千字节),
    域名/国家的主机访客(页数,点击率,字节,269域名/国家检测, geoip 检测),
    主机名单,最近访问和未解析的 IP 地址名单
    大多数看过的进出页面,
    档案类型,
    网站压缩统计表(mod_gzip 或者 mod_deflate),
    使用的操作系统 (每个操作系统的页数,点击率 ,字节, 35 OS detected),
    使用的浏览器,
    机器人访问(检测 319 个机器人),
    蠕虫攻击 (5 个蠕虫家族),
    搜索引擎,利用关键词检索找到你的地址,
    HTTP 协议错误(最近查阅没有找到的页面),
    其他基于 URL 的个性报导,链接参数, 涉及综合行销领域目的.
    贵网站被加入"最喜爱的书签".次数.
    屏幕大小(需要在索引页补充一些 HTML 标签).
    浏览器的支持比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.
    负载平衡服务器比率集群报告.
Awstats 是一款基于 Perl 的 WEB 日志分析工具,从Awstats的文档来看,他对 Apache HTTP Server 的支持是非常完美的。同时 JAWStats 是一款基于 PHP 的统计套件,旨在为 Awstats 提供更为精美图形界面。
由于日志是按照一定的规则来生成的,把访问数据存入到文件中,但是数据存入的时候可能是不全的,awstats分析的时候就会有误差。

环境信息约定:
日志文件位置:/htdoc/logs
系统:CentOS6.3 X64
软件存储位置:/opt
awstats安装位置:/usr/local/awstats
JAWStats安装位置:/htdoc/stats/
这里我们配置的站点域名:slog.fity.cn
WEB服务器:Nginx
静态页面文件输出路径:/usr/local/apache/data(可选)


一、安装和配置 Awstats
Awstats 安装非常简单,但必须先确认你服务器上 Perl 的环境已经就绪。
1、下载和安装 Awstats
awstats项目地址:http://sourceforge.net/projects/awstats/
目前最新版本 7.1.1,这里我们下载 7.1.1
[root@iredmail ~]# cd /opt
[root@iredmail opt]# wget http://sourceforge.net/projects/awstats/files/AWStats/7.1.1/awstats-7.1.1.tar.gz
[root@iredmail opt]# tar -zxf awstats-7.1.1.tar.gz
[root@iredmail opt]# mv awstats-7.1.1 /usr/local/awstats

wget下载的包中权限可能是一个不存在的UID用户,赋予权限让.pl的文件可以运行:
[root@iredmail opt]# chown -R root:root /usr/local/awstats
[root@iredmail opt]# chmod +x /usr/local/awstats/tools/*.pl
[root@iredmail opt]# chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl

2、生成配置文件
+阅读全文

回憶過去便能預知未來?

越來越多的研究顯示,記憶能讓人進行一種心理時間旅行。通過這種方式,我們不僅能再現過去的情境,還能描繪未來。該研究還表明,記憶除了能幫我們存儲、回想那些已發生事件的相關信息,它的存在還具有更廣泛的意義。

点击在新窗口中浏览此图片


在記錄分析記憶如何幫我們勾勒某人性格特點、幫我們預想他/她在未來社會情境中可能的表現方面,倫敦大學學院(University College London)與哈佛大學(Harvar

......
+阅读全文

div+css不换行超出部分省略号显示避免半字

div+css不换行出现半字问题,推荐超出部分省略号显示:

在显示文章标题时,为了提高可视性,常常要将超长部分省略,并用title提示完整标题。以下代码可用来达到超长部分用省略号显示的效果。
style=”white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:break-all;”

不过,这段代码在部分早期FireFox版本下面不会出现省略号,而是直接将超长文字隐藏,而且会出现半个字现象。在部分版本Firefo......
+阅读全文

技术人如何才不至于虚度一生?

问:在现在的这样一个国情下,做技术的年轻人,到底应该怎么做,走什么样的发展方向,才不至于虚度一生,到老的时候后悔?

答:我小的时候,有一本书很流行,就是今天题图这本《钢铁是怎样炼成的》。书中主人公有一句名言:

「人最宝贵的就是生命,生命对于每个人来说只有一次。人的一生应该这样度过:回首往事,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧;」

注意上面是分号,因为这句名言还没完,下半句是这样的

......
+阅读全文

MySQL触发器代码生成

......
+阅读全文

Base64在线编解码

......
+阅读全文