未来往事
问题/错误描述:
DiscuzX新用户注册点击提交按钮没有反应;
直接在后台添加用户报如下类似错误:
MySQL Error
Message: MySQL Query Error
SQL:INSERT INTO [Table]members SET secques='', username='', password=''    
Error:Duplicate entry '1472282' for key 'PRIMARY'
Errno:1062

错误分析:
错误提示为键值重复。初步分析原因为:
common_member表中已有uid为1472282用户数据存在
ucenter_members表中无uid为1472282用户数据存在
(主要看uc表中是否已经存在该uid的用户)

发生原因:
可能为discuz升级、用户合并/整合、数据库服务器意外宕机等因素导致

解决方法:
先执行该SQL语句:DELETE FROM `pre_common_setting` WHERE `skey` = 'membersplit';
如果执行后问题依旧,请继续往下阅读。

在执行上述SQL语句后若问题依旧,请继续参考下面给出的解决方法:
把uid为1472282的这个用户删掉或者手动在 uc_members 表中添加该用户即可解决问题。
故障描述:
VMware Workstation9 虚拟机文件复制或移动到其他机器上后网卡重启报如下错误:
Device eth0 does not seem to be present, delaying initialization. [FAILED]

故障分析:
更换机器,网卡的 mac 地址就变换了,该问题是由于 udev 导致。

解决办法:
第一种方法:
可以对照现有的 mac 地址修改 /etc/udev/rules.d/ 目录下的 70-persistent-net.rules 文件(名字可能不一样),将原有插网线的 ethx 的 MAC 地址换成现有的 MAC 地址。

第二种方法,也是最简单的方法、也是博主推荐的方法:
# rm -f /etc/udev/rules.d/70-persistent-net.rules
# reboot
重启之后,系统会自动生成 70-persistent-net.rules 文件。

本文基于CentOS 6.3 环境,据换主板的攻城湿讲在 5.x 的机器上直接将 /etc/sysconfig/network-scripts/ifcfg-ethx 中的 MAC 地址给注释了也是可以的。
Win7由睡眠状态唤醒后无法连上网络,需要重新系统或重启网卡才能联网问题解决

1、升级网卡驱动为最新版驱动
2、把网卡属性的“电源选项”设为 不“允许计算机关闭此设备以节约电源”
Linux统计日志文件中的IP数   linux下用awk统计日志中各个ip访问页面的次数
日志格式:
引用
211.154.151.115 - - [25/Jun/2013:00:00:01 +0800] "GET /SeeHouse/index/childId/17051 HTTP/1.0" 200 10011 "http://fity.cn/17051.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; 2345Explorer)" 56.132.231.179

统计结果:
[root@iredmail 06]# awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}' newlog_20130624.log
29 222.73.31.71
17 221.194.30.104
Microsoft Visual Studio 2010编译常见错误:
visual studio 2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

详细错误代码:
1>------ 已启动生成: 项目: helloworld, 配置: Debug Win32 ------
1>生成启动时间为 2013/7/2 14:19:10。
1>InitializeBuildStatus:
1>  正在创建“Debug\helloworld.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1>  所有输出均为最新。
1>  所有输出均为最新。
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1>
1>生成失败。
1>
1>已用时间 00:00:00.30
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

解决方法如下:
项目 - - 属性 - - 配置属性 - - 清单工具 - - 输入和输出 - - 嵌入清单:原来是“是”,改成“否”。

MySQL HandlerSocket 不指定

Rinald 本站原创 MySQL 2013/06/27 18:56
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 使用示例:
+阅读全文
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的魅力把!
Tips:第2行部分,connect里面的参数第一个表示服务器地址,第二个表示端口号,具体函数详细说明可以查看:
《PHP: Memcache - Manual》

使用“telnet ip 端口号”,然后使用:stats命令可以看到memcached的使用情况如下:
+阅读全文
红帽发布全新云计算平台 - 未来从未 如此开放
最新解决方案包括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设置说明备忘
启用图形处理器:
Photoshop CS6 GPU – 编辑 – 首选项 – 性能 - 图形处理器设置 – 使用图形处理器(勾选)
补充说明:
若"图形处理器设置"中检测不到显卡相关信息,请先更新显卡驱动到最新版本。

OpenCL:
Photoshop CS6 GPU – 编辑 – 首选项 – 性能 - 使用图形处理器(勾选) - 高级设置 - 选高级 - opencl(勾选)
补充说明:
部分3D效果依托于OpenCL
另外,若需要启动OpenCL需要满足以下条件:
1、显卡需支持opencl1.0++
2、必须是64位操作系统
3、PhotoShop CS6的版本必须是64位的应用程序
最后更新时间: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(0x8000003,0x806f5743,0x8551ee0,0x0000000)无法进入系统故障原因分析及解决方法
错误描述
开机系统进度条转了两圈后就蓝屏然后自动重启,然后再蓝屏重启导致无法进入系统
补充:不同情况下该蓝屏错误提示信息界面持续的时间不同,有些机器可能不到1S时间就进入重启状态,导致我们看不到详细的蓝屏错误代码;有些机器该蓝屏错误信息界面持续时间会在30S左右或更长时间。

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

错误分析:
一般是当程序引用不正确的内存地址时,可能会引起0x0000008E蓝屏错误。当这种错误发生成系统登录时,那很可能是开机启动项引起的,但Windows错误处理器没有捕获. 所以通常归结是硬件兼容性错误。

排查及解决思路:
1、检查是否为系统程序自身原因导致
为了跳过开机启动项,我们在开机时按住F8键,选择安全模式/以带网络连接的安全模式启动系统,如果可以正常登录系统,一般就表明本次错误信息发生的原因出在开机启动项、系统补丁或驱动程序上。请自行判断该故障发生在哪个层面上:
如果发生在开机启动项方面,请通过安全模式进入系统禁用最近配置的开机启动项;
如果发生在系统补丁或驱动程序方面,请通过控制面板卸载最近安装的补丁或驱动程序。

2、检查内存是否插紧,质量是否有问题或不兼容。
最后更新时间: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简介
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、生成配置文件
+阅读全文

回憶過去便能預知未來? 不指定

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

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


在記錄分析記憶如何幫我們勾勒某人性格特點、幫我們預想他/她在未來社會情境中可能的表現方面,倫敦大學學院(University College London)與哈佛大學(Harvard University)的研究人員已取得了一定進展。上周,研究人員將他們發表在《大腦皮層》期刊上(Cerebral Cortex)的最新科研成果作了詳細闡述。

科研人員揭示的這些道理可能不僅對那些失憶症患者,比如老年人,而且對年輕人以及他們的規劃、社交能力也有所影響。研究人員還在繼續探索現有的科研結論,他們正試著了解追憶往事的能力是否與創造力、想象力有著關聯。

哈佛大學心理學教授夏克特(Daniel Schacter)稱,該研究論文主體「就如何利用記憶拓展了我們的視野。」

這種對未知世界的想象力或預見力不僅對我們的規劃能力、解決問題的能力至關重要,而且還有助於我們在社會情境中作出更好的決策判斷。同時研究人員也希望能揭示提升人類記憶力的新途徑。

夏克特還稱,「靠過去的經歷預測將來可能發生的事」讓人們無需再事事進行真實的嘗試,只要認真考量與未來情況相似的事件即可。

為什麼有些人可能天生具有更強的回憶往事或遙想未知的能力?對於這個問題,人們目前知之甚少。

許多聲稱能提高記憶力、延緩認知衰退的方法,如填字遊戲、腦筋急轉彎等重點關注的都是工作記憶,即我們隨時留存在大腦中的信息。至於工作記憶除了能提升完成某項具體任務的能力外是否還有更多作用,目前有各種各樣的証據和說法。

夏克特博士的團隊著重研究的是對過往經歷回憶的針對性幹預,即人們所知的情景記憶。他們重點關注的還有增加細節回憶能力,而並非整體記憶力的提升。該研究的初步試驗預計將在今年夏天完成。

與健忘症患者交談首先向研究人員傳遞出這樣一種訊息:回憶過往經歷可能對心理時間旅行至關重要。健忘症患者與失憶症患者一樣,這兩類人群在制定計劃時都顯得很費勁。夏克特博士和他研究生院的顧問托爾文 (Endel Tulving)在80年代就開始觀察患者K.C.。舉個例子,當K.C.被問及第二天將幹什麼時,他卻說不出詳盡的答案。夏克特博士說,K.C.可能會說出一些類似「我覺得我要吃早餐」之類的話,但卻提供不了任何相關細節,比如他可能會吃什麼或者他要去哪兒吃。

2007年,倫敦大學學院蓋茨比計算神經科學組(Gatsby Computational Neuroscience Unit)的研究人員丹米斯•哈撒比斯(Demis Hassabis)與其同事在《美國國家科學院學報》( Proceedings of the National Academy of Sciences)上發表的一項研究表明,五名健忘症患者在想象與描述未來事件時表現出來的能力都極其有限。此發現在該領域引起了轟動,也激發促成了更多的研究。

那之後科學家們在實驗室裡進行了很多次研究,結果都表明在想象未來情景方面,健康年輕的成年人比記憶力減退的老年人表現得更出色。那些難以憶起往事的精神分裂症患者在描繪未來時也是困難重重。

夏克特博士說,在他和同事一起進行的研究中,當那些70至75歲左右的人被問及往事或未來時,他們傾向於提供更多的評論和見解,但對於人物細節和到底發生了什麼卻所提甚少。

舉個例子,當年輕人被問及一次購物之旅時,他們會說出都有誰去了那兒以及商家店舖的情況。而老年人則會談到他們對購買花瓶感興趣以及為什麼在家裡擺放花瓶會很不錯。

大腦造影研究已表明,同回憶往事一樣,當人們在被要求想象未來時,他們大腦中許多相同的區域--海馬體和內側前額葉皮質--均會呈現出活躍度增強的跡象。這些也正是人在衰老時易發生變化的區域。

擁有細節化模擬情境的想象力似乎用處不少。這種能力有助於人們制定計劃,通過發揮想象力對不同的可能性建模,而無需將它們一一付諸實踐。在頭腦中快速預覽一系列假設情境有望引導我們作出更好的選擇。

加州大學洛杉磯分校(University of California, Los Angeles)的研究人員發現,那些認真模擬想象考試復習細節的學生--即想象學習過程中所涉及的所有步驟--最終比那些光想象自己能考好的學生分數更高。

記憶在體驗想象他人當下感受方面似乎也發揮著某些作用,這就是人們所知的心理理論,它能幫助人們判斷如何在不熟悉的社會情境中規范自己的行為,比如在與一幫新朋友聚會或是開始一項新工作時。而那些自閉症患者則往往情境記憶貧乏、預測他人反應或情緒的能力低下。自閉症的病征之一就是社交能力差。

在人們試著揣摩他人心思時,大腦到底是如何運行的,關於這一點,人們目前卻知之甚少。哈撒比斯博士、夏克特博士與合作者在他們的新研究中探討了這個問題。他們對19名平均年齡在21歲的健康成年人進行了大腦掃描。在掃描過程中,博士們要求這些年輕人想象出包括虛構人物在內的四個簡短場景。

首先,參與者被給予了一些照片和12份關於這四個角色的個人簡介。每個人物的外向程度、友好程度都不一樣。

在花了一段時間熟悉了這些編造的人物簡介後,參與者被要求想象各種情境中的每一個不同的角色。舉個例子:如果一個陌生人將酒水潑洒到他們身上,他們各自的反應會如何?

研究人員發現,辨別不同人格特質的能力是在截然不同的大腦區域中進行編碼的。這意味著,當參與者想象某個場景時,研究人員只需看一下大腦的哪個區域活躍度更高,就能弄清參與者當時想象的是四個角色中的哪一位。

對於想象未來事件而言,情景記憶體系看來並非是唯一重要的大腦過程。比利時列日大學(University of Liege)的研究人員阿爾諾(Arnaud D'Argembeau)認為,包括情景記憶在內的廣義上的自傳體信息記憶都可以被用來組織構建事件。阿爾諾的論著已表明,知曉某人的個人目標--記憶對其是必需的--似乎是幫助想象未來事件的另一個因素。

在某人頭腦中對事件進行模擬想象的能力也會帶來潛在的負面效應。如果我們無法預測到所有可能發生的事情,或者我們變得過度自信而認為自己預料到將發生什麼的話,這種能力都會帶來麻煩。

更糟糕的情況是預料到未來的結局,特別是消極的結局,這可能讓老年人更難於制定計劃,或使他們認為某人可能正在試著利用自己。夏克特博士說,「它為你支上一個不一樣的鏡頭,透過它,你看見自己漸漸老去。」
div+css不换行出现半字问题,推荐超出部分省略号显示:

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

不过,这段代码在部分早期FireFox版本下面不会出现省略号,而是直接将超长文字隐藏,而且会出现半个字现象。在部分版本Firefox下解决方法让文字换行,限定行高,然后隐藏换行的部分,这样也就不会出现半个字现象了。

If you find any better way to solve the issue -just comment it here so I could update this post. Thanks.
第14页 / 共34页 第一页 « 上一页 9 10 11 12 13 14 15 16 17 18 下一页 » 最后页 [ 显示模式: 摘要 | 列表 ]