??xml version="1.0" encoding="utf-8" standalone="yes"?>男女久久久国产一区二区三区,久久天天躁狠狠躁夜夜2020 ,色综合久久久久综合99http://www.shnenglu.com/guojingjia2006/archive/2013/01/15/197298.html果?/dc:creator>果?/author>Tue, 15 Jan 2013 11:38:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2013/01/15/197298.htmlhttp://www.shnenglu.com/guojingjia2006/comments/197298.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2013/01/15/197298.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/197298.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/197298.html

写在前面

  • 以下内容适合Yii 1.0.xQ其他版本可能有略微的差别?
  • Ҏ(gu)(zhn)的评论和反馈,本文?x)不断进行修改和补充Q以方便新学?fn)者?

开始准?/h2>

Yii提供了强大的配置机制和很多现成的cd。在Yii中用RBAC是很单的Q完全不需要再写RBAC代码。所以准备工作就是,打开~辑器,跟我来?/p>

讄参数、徏立数据库

在配|数l中Q增加以下内容:(x)

components => array(
//……
authManager=>array(
class=>CDbAuthManager,//认证cdU?/span>
defaultRoles=>array(guest),//默认角色
itemTable => pre_auth_item,//认证表名称
itemChildTable => pre_auth_item_child,//认证父子关p?/span>
assignmentTable => pre_auth_assignment,//认证赋权关p?/span>
),
//……

那这三个数据表怎么建立呢?很简单,ȝframework/web/auth/schema.sql。注意要和你的自定义的表名称对应h。比如SQL文g中的AuthItem你要修改为pre_auth_item。然后在数据库中q行q个SQL文g中的语句?/p>

了解概念

你可能要问,剩下的代码呢Q我告诉你,没有啦。RBACpȝp样徏立v来了。但是ؓ(f)了用它Q你需要了解它的运行机制。我?x)尽量讲的啰嗦一?#8230;…Q官方的RBAC文档?a target="_blank">q里Q但是我曄看了4-5遍才明白。)

三个概念

你需要了解的是,授权目可分?em>operationsQ行动),tasksQQ务)?rolesQ角Ԍ?/p>

一个用h有一个或者多个角Ԍ比如Q我们这里有三个角色Q?strong>银行行长?strong>银行职员?strong>֮。我们假设:(x)

  • 张行?有角Ԍ(x)银行行长、银行职员、顾客(人家自己可以存钱嘛)?
  • 王职?有角Ԍ(x)银行职员、顾客?
  • 有角Ԍ(x)֮?

那么Q相应的Q只要顾客可以做的事情,李可以做Q王职员和张行长也可以。银行职员可以做的事情,王职员和张行镉K可以做,李׃可以了?/p>

比如Q一?#8220;֮”可以存钱Q那么拥?#8220;֮”角色的张行长、王职员、小李都可以存钱?#8220;银行职员”可以打印֮的交易记录,那么?#8220;银行职员”?色的张行长和王职员都可以Q而小李不行,必须找一个有“银行职员”角色的h才可以打印详l的交易记录。一?#8220;银行行长”才可以进入银行钱库提钱,那么只有 张行长可以,因ؓ(f)它才?#8220;银行行长”的角艌Ӏ?/p>

q就是基于角色的认证体系Q简URBAC?/p>

角色的?/h3>

角色是可以承的Q比如我们规定如下:(x)

  • 凡是“银行行长”都是“银行职员”Q也是_(d)只要银行职员可以做的事情Q银行行镉K可以做?
  • 凡是“银行职员”都是֮Q同上,֮可以做的事情银行职员也可以做?

那么角色关系变成了Q?/p>

  • 张行?有角Ԍ(x)银行行长?
  • 王职?有角Ԍ(x)银行职员?
  • 有角Ԍ(x)֮?

q样更简单了Q这是角色的ѝ?/p>

d的?/h3>

一个Q务(taskQ是可以包含另外一个Q务的Q我们D个例子,比如“q入银行”?/p>

我们讑֮“֮”q个角色?#8220;q入银行”的权限。也是_(d)“֮”可以执行“q入银行”的Q务。接下来Q我们假?#8220;q入柜台”是进入银行的父权 限,也就是说Q?#8220;q入柜台”包含“q入银行”。只要能“q入柜台”的h都可?#8220;q入银行”。我们把“q入柜台”q个d权限l?#8220;银行职员”?/p>

那么从角色上来说Q王职员可以q入银行Q因为王职员的角色是“银行职员”Q?#8220;银行职员”包含?#8220;֮”的角艌Ӏ那?#8220;֮”可以q行?#8220;d”对于“银行职员”来说也是可以q行的。?#8220;֮”可以“q入银行”Q那么王职员也可?#8220;q入银行”。这是角色的l承带来的?/p>

我们再假设有?strong>赵领?/strong>Q是上领导Q可以进入柜台进行视察。那么,我们的Q务关pLQ?/p>

  • 赵领?/strong> 有Q务:(x)q入柜台?

那么Qn领导可?#8220;q入银行”。因?#8220;q入银行”是被“q入柜台”包含的Q务。只要可以执?#8220;q入柜台”的h都可以执?#8220;q入银行”。这是d的ѝ?/p>

关于行动

行动是不可划分的一U。也是说。而一个行动是不能包含其他行动的。假设我们有个行动叫“从银行仓库中提钱”。我们把q个行动作包?#8220;q入柜台”。那么只要可以执?#8220;从银行仓库中提钱”的角色都可以执行“q入柜台”q个d?/p>

三者关p?/h3>
  • 一个角色可以包含另外一个或者几个角艌Ӏ?
  • 一个角色可以包含另外一个或者几个Q务?
  • 一个角色可以包含另外一个或者几个行动?
  • 一个Q务可以包含另外一个或者几个Q务?
  • 一个Q务可以包含另外一个或者几个行动?
  • 一个行动只能被角色或者Q务包含,行动是不可以包含其他Q也不可再分?

q样Q就形成了一个权限管理体pR关?#8220;d”?#8220;行动”Q你不必思考其字面上的意义。这两者就是Ş成两层权限?/p>

q行赋权

我们建立了RBAC权限理Q就需要进行对权限的WEB理。这些就需要你自己写代码了?/p>

Ҏ(gu)不同U类的项目调用下列方法之一定义授权目Q?/p>

一旦我们拥有一套授权项目,我们可以调用以下Ҏ(gu)建立授权目关系Q?/p>

最后,我们调用下列Ҏ(gu)来分配角色项目给各个用户Q?/p>

下面我们展CZ个例子是关于用所提供的API建立一个授权等U:(x)

$auth=Yii::app()->authManager;  
$auth->createOperation('createPost','create a post');
$auth->createOperation('readPost','read a post');
$auth->createOperation('updatePost','update a post');
$auth->createOperation('deletePost','delete a post');

$bizRule='return Yii::app()->user->id==$params["post"]->authID;';
$task=$auth->createTask('updateOwnPost','update a post by author himself',$bizRule);
$task->addChild('updatePost');

$role=$auth->createRole('reader');
$role->addChild('readPost');

$role=$auth->createRole('author');
$role->addChild('reader');
$role->addChild('createPost');
$role->addChild('updateOwnPost');

$role=$auth->createRole('editor');
$role->addChild('reader');
$role->addChild('updatePost');

$role=$auth->createRole('admin');
$role->addChild('editor');
$role->addChild('author');
$role->addChild('deletePost');

$auth->assign('reader','readerA');
$auth->assign('author','authorB');
$auth->assign('editor','editorC');
$auth->assign('admin','adminD');
也就是说Q你需要自己写一个管理界面,来列Z的角艌ӀQ务、行动,然后可以在这个界面上q行理。比如增加、删除、修攏V?/pre> 

权限?/h2>

假设你在你的理界面q行了赋权,那么可以在程序里面进行权限检查:(x)

if(  Yii::app()->user->checkAccess('createPost')  )
{
// q里可以昄表单{操?/pre> 
} else {
// 查没有通过的可以蟩转或者显C?/pre> 
}
上面的代码就查了用户是否可以执行“createPost”Q这createPost可能是一个Q务,也可以是一个行动?/pre> 

其他?/h2>

对于很多说Yii权限体系RBAC不好用的人其实都没有看懂文档。综合我的体验,我感觉Yii框架的RBAC是我用过的框枉面最好用的。而且是需要自己写代码最的?/p>

Yii的RBAC有更加高U的用法Q比?#8220;业务规则”Q?#8220;默认角色”。你可以d考官Ҏ(gu)档?/p>

我知道,?x)有部分Z旧不理解RBACQ或者不?x)用Yii的RBAC。没有关p,你可以在下方的评论框里提问?/p>

happy Yii Q?/p>

]]>yii 源码调试W记(1)---theme - module - controller about layouthttp://www.shnenglu.com/guojingjia2006/archive/2013/01/11/197181.html果?/dc:creator>果?/author>Thu, 10 Jan 2013 16:03:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2013/01/11/197181.htmlhttp://www.shnenglu.com/guojingjia2006/comments/197181.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2013/01/11/197181.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/197181.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/197181.htmlstring(79) "D:\Program Files\Apach\htdocs\novemweb\themes\classic\views/admin/default\index" string(81) "D:\Program Files\Apach\htdocs\novemweb\themes\classic\views/admin/layouts/column1" string(78) "D:\Program Files\Apach\htdocs\novemweb\themes\classic\views/admin/layouts/main" string(81) "D:\Program Files\Apach\htdocs\novemweb\protected\modules\admin\views/layouts/main"

admin/default/index

This is the view content for action "index". The action belongs to the controller "DefaultController" in the "admin" module.

You may customize this page by editing D:\Program Files\Apach\htdocs\novemweb\themes\classic\views\admin\default\index.php

test--------------



]]>
使用awstats自动分析Nginx日志(?http://www.shnenglu.com/guojingjia2006/archive/2013/01/06/197024.html果?/dc:creator>果?/author>Sun, 06 Jan 2013 10:05:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2013/01/06/197024.htmlhttp://www.shnenglu.com/guojingjia2006/comments/197024.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2013/01/06/197024.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/197024.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/197024.html转自: https://www.akii.org/use-awstats-automatic-analysis-nginx-log.html
使用awstats可以分析apache日志Q同样也可以分析nginx日志。本文将详细介绍自动定时切割nginx的访问日志,q用awstats来定时分析nginx的日志的实现Ҏ(gu)?/div>

前言

本文中用的是awstats 7.0版本?br /> 此版本增加了对win7的支持以?qing)一些更新的Ҏ(gu)?/p>

New features/improvements:
- Detect Windows 7.
- Can format numbers according to language.
- More mime types.
- Added geoip_asn_maxmind plugin.
- Geoip Maxmind city plugin have now override file capabilities to complete
missing entries in geoip maxmind database.
- Added graphgooglechartapi to use online Google chart api to build graph.
- Can show map of country to report countries when using graphgooglechartapi.
- Part of codes was change to use more functions and have a cleaner code.
- Added parameter to ignore missing log files when merging for a site on
multiple servers where a single server may not have created a log for a given day.
- Update robots database.
- Added Download tracking where certain mime types are defined as downloads
and HTTP status 206 is tracked as download continuation

Awstats 是在 SourceForge 上发展很快的一个基?Perl ?WEB 日志分析工具Q一个充分的日志分析? Awstats 昄(zhn)下列资?

  • 讉Kơ数、独特访客h?
  • 讉K旉和上ơ访?
  • 使用者认证、最q认证的讉K,
  • 每周的高峰时?|,点击?每小时和一周的千字?,
  • 域名/国家的主?|,点击?字节,269域名/国家? geoip ?,
  • L名单,最q访问和未解析的 IP 地址名单
  • 大多数看q的q出面,
  • 档案cd,
  • |站压羃l计?mod_gzip 或?mod_deflate),
  • 使用的操作系l?(每个操作pȝ的页?点击?,字节, 35 OS detected),
  • 使用的浏览器,
  • 机器??319 个机器h),
  • 蠕虫d (5 个蠕虫家?,
  • 搜烦引擎Q利用关键词索找C的地址,
  • HTTP 协议错误(最q查阅没有找到的面),
  • 其他Z URL 的个性报?链接参数, 涉及(qing)l合行销领域目的.
  • 늽站被加入”最喜爱的书{?#8221;.ơ数.
  • 屏幕大小(需要在索引补充一?HTML 标签).
  • 览器的支持比例: Java, Flash, RealG2 reader, Quicktime reader, WMA reader, PDF reader.
  • 负蝲q服务器比率集报?

Awstats 的运行是需?PERL 环境的支持,?awstats 的文档来看,它对 Apache HTTP Server 的支持是非常完美的,而当我们?Web 服务器换?Nginx 后,要运?awstats 变得很麻烦。首?Nginx 本n?Perl 的支持是比较qQ甚臛_方也不徏议用;另外在日志格式上有需要修改后才能q行?/p>

日志切割

本文主要介绍通过?awstats Ҏ(gu)志统计的l果生成静态页面,然后通过 Nginx 输出以达到统?Nginx 讉K日志的效果,其中q包括如何让 Nginx 自动切割日志文g。对于nginx的日志,我的做法是按天切剌Ӏ然后存入日期Ş式的目录中ƈ压羃?/p>

需要注意的是,nginx的日志应该遵循以下格式,才可以被awstats识别Q如定义日志格式

1
2
3
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

使用日志格式

1
access_log  /home/www/logs/access.log  main;

q里需要有一个小技巧的提示Q把log_formatq段代码攑֜你nginx的http的定义段中,可以在下面的每一个server中引用此格式。不必在每个server里面都去定义格式?br /> 本文不讲如何安装nginxQ稍后我发布我的lnmp一键安装包(linux nginx mysql php)。全~译+优化自动化安装,使用php-fpmq行php的fastcgiq程?/p>

我写了一个定时切割日志的脚本。每?:00开始执行,切割昨天的日志(交由awstats分析Q,压羃前天的日志(压羃日志可减存储空_(d)为防 止awstats没有分析完就被压~,所以只压羃前天的日志)。如果你的nginx和log文g攄路径和我的不一P请对应修攏V?/p>

1
vim cut_log.sh

输入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
# This script run at 00:00
# cut yesterday log and gzip the day before yesterday log files.
# yesterday logs to awstats
 
# The Nginx logs path
logs_path="/home/www/logs/"
date_dir=${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/$(date -d "yesterday" +"%d")/
gzip_date_dir=${logs_path}$(date -d "-2 day" +"%Y")/$(date -d "-2 day" +"%m")/$(date -d "-2 day" +"%d")/
 
mkdir -p $date_dir
mv ${logs_path}*access.log $date_dir
/usr/local/nginx/sbin/nginx -s reopen
/usr/bin/gzip ${gzip_date_dir}*.log

然后让它每天0时v开始进行,执行crontab -e加入以下代码再按:wq保存退出,q里我将此脚本放?root/下,切记要给它可执行权限Qchmod +x cut_log.shQ?

1
00 00 * * * /bin/bash /root/cut_log.sh

q样可以每天凌里自动切割昨天的日志C日期为目录结构的目录中。可以留存以后查询。留着昨天的日志交l下面的awstats来分析,压羃前天的日志(前天的已l被分析q了Q?/p>

安装和配|a(chn)wstats

下蝲最新的 awstatsQ我使用的是q今为止最新的7.0版本

安装?usr/local下,q个路径是习(fn)惯。大部分Z持的良好?fn)惯?/p>

1
2
3
wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz
tar -zxvf awstats-7.0.tar.gz
mv awstats-7.0 /usr/local/awstats

修改权限Qwget下蝲下来的包中权限是非root的,赋予q权限之后,.pl的文件也可以运行了?/p>

1
2
3
4
chown -R root:root /usr/local/awstats
chmod -R =rwX /usr/local/awstats
chmod +x /usr/local/awstats/tools/*.pl
chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl

然后执行 tools 目录中的 awstats_configure.pl 配置向导Q创Z个新的统?/p>

q行(注意q里要在当前目录q行。否则会(x)有一些关于标准目录的提示?

1
2
cd /usr/local/awstats/tools
./awstats_configure.pl

会(x)有如下一些提C:(x)

1
2
3
4
5
6
7
8
9
10
-----> Running OS detected: Linux, BSD or Unix
 
-----> 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 #q里添noneq回车,因ؓ(f)我们没有使用apache

回R之后下一个选项

1
2
3
4
5
6
7
8
9
10
11
Your web server config file(s) could not be found.
You will need to setup your web server manually to declare AWStats
script as a CGI, if you want to build reports dynamically.
See AWStats setup documentation (file docs/index.html)
 
-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
 File awstats.model.conf updated.
 
-----> 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] ?

#q里选YQ创Z个新的配|文?/p>

1
2
3
4
5
6
-----> Define config file name to create
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:
>akii.org  #q里输入你要分析的域名,或是随便一个你易记的配|名q回?/code>

接下来要定义你的配置文g存放的\径,可用默认

1
2
3
4
5
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> #直接回RQ用默认\?etc/awstats

回R后的提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-----> Create config file '/etc/awstats/awstats.akii.org.conf'
 Config file /etc/awstats/awstats.akii.org.conf created.
 
-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=akii.org
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue... #按回车l?/code>
 
A SIMPLE config file has been created: /etc/awstats/awstats.akii.org.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'yuyuanchun.com' with command:
> perl awstats.pl -update -config=akii.org
You can also build static report pages for 'akii.org' with command:
> perl awstats.pl -output=pagetype -config=akii.org
 
Press ENTER to finish... #回R完成配置文g的创?/code>

完成配置文g的创建后Q我们还要修改一下。因为我们是按天切割的日志,切割完成后交由awstatsd析。ƈ不是让awstatsd时正在时?增长的也是正在被写入的日志Q这L(fng)好处是不至于遗漏数据Qƈ且分析已l切割完成的日志Q更不用担心?x)有冲突。坏处是我一天切割一ơ日志,你要{第二天 才能看昨天的一些详l数据?/p>

修改/etc/awstats/awstats.akii.org.confQ执行:(x)

1
vi /etc/awstats/awstats.akii.org.conf

扑ֈ

1
LogFile="/var/log/httpd/mylog.log"

修改为:(x)

1
LogFile="/home/www/logs/%YYYY-24/%MM-24/%DD-24/akii.org_access.log"

如果你的日志路径和我的不一P请修Ҏ(gu)对应的日志文件名。以上的完整路径是切割后保存的nginx日志文g。其?YYYY-24/%MM-24/%DD-24表示q月日都减去24时Q也是昨天的日志目录。修改完成后?wq保存退出?/p>

接下来可以测试一下awstats分析日志了(前提是你已经有了切割q的日志Q没有的话可以先退行一下切割日志的脚本/root/cut_log.shQ?/p>

首先Q还要创Z个awstats用于记录数据的目?/p>

1
mkdir -p /var/lib/awstats

然后q行awstats的wwwroot目录中的awatsts.pl来测试一?/p>

1
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=akii.org

你如果看到类g面的提示p明配|文仉正确了?/p>

1
2
3
4
5
6
7
8
9
10
11
12
13
Create/Update database for config "/etc/awstats/awstats.akii.org.conf" by AWStats version 7.0 (build 1.964)
From data in log file "/home/www/logs/2010/07/24/akii.org_access.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 43260)
Jumped lines in file: 43260
 Found 43260 already parsed records.
Parsed lines in file: 0
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 0 new qualified records

l计分析完成后,l果q在 Awstats 的数据库中。在 Apache 上,可以直接打开 Perl E序的网|看统计? 但本文开始时已经提到QNginx ?Perl 支持q不好,所以我们要换个Ҏ(gu)Q利?awstats 的工具将l计的结果生成静态文Ӟ具体的步骤如下:(x)

  • 首先?webroot 目录下创Z个文件夹。例Q?home/www/awstats
  • 写一个脚本,定期执行?Awstats 把静态页面生成到该目录中

先生成存放awstats生成的静态文件的目录Q我q里用的?home/www/awstats

1
mkdir -p /home/www/awstats

我们来写一个脚?/p>

1
vim /root/awstats.sh

然后输入以下内容

1
2
3
4
5
#!/bin/bash
mkdir -p /home/www/awstats/akii.org
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  \
-config=akii.org -lang=cn -dir=/home/www/awstats/akii.org  \
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

上述命o(h)的具体意思如下:(x)

  • /usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工?/li>
  • -update -config=akii.org 更新配置?/li>
  • -lang=cn 语言Z?/li>
  • -dir=/home/www/awstats l计l果输出目录
  • -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新E序路径?/li>

然后在你的nginx的配|文件中Q在你想要安|a(chn)wstats或默认的ip或域名的serverD中Q加入关于awstats和icon的两个目录配|?/p>

如一个完整案例:(x)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen       80;
server_name  localhost;
root /home/www;
index index.html;
 
location ~ ^/awstats/ {     # awstats  静态页面目?/code>
        root   /home/www/awstats;
        autoindex on; #可以目录览你的多个域名的目录用于分?/code>
        index  index.html;
        access_log off;
}
 
location ~ ^/icon/ {             # 图标目录
        root   /usr/local/awstats/wwwroot;
        index  index.html;
        access_log off;
}
}

接下来可以测试一下脚本是否可以正执?/p>

q是别忘了给它可执行权限

1
2
chmod +x /root/awstats.sh
/root/awstats.sh

如果你看到它生成了一堆网,那就说明成功了?/p>

输出信息部分例如

1
2
3
4
5
6
Launch update process : "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -update -configdir=
......
Build keywords page: "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -staticlinks -lang=cn -output=keywords
Build errors404 page: "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -config=akii.org -staticlinks -lang=cn -output=errors404
20 files built.
Main HTML page is 'awstats.akii.org.html'.

然后可以把它加入自动q行了?/p>

配置a(chn)wstats脚本自动q行

1
crontab -e

加入

1
00 1 * * * /root/awstats.sh

然后保存退出?/p>

q样可以每天在凌晨自动分割日志Qƈ且开始自动用awstats分析nginx的日志了?/p>

认证讉K

如果你想l你的awstats加上讉K密码Q可以见q里Q?a target="_blank">nginx为目录或|站加上密码认证

原创文章Q写的辛苦。如果你要{载,请保留出处及(qing)链接?/p>

参考资?http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/index.html



]]>
MongoDb Architecturehttp://www.shnenglu.com/guojingjia2006/archive/2012/12/19/196438.html果?/dc:creator>果?/author>Wed, 19 Dec 2012 03:52:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/12/19/196438.htmlhttp://www.shnenglu.com/guojingjia2006/comments/196438.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/12/19/196438.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/196438.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/196438.html本文囄来自 Ricky Ho 的博?MongoDB 构架Q?a title="查看 MongoDB 的全部文? target="_blank">MongoDB ArchitectureQ,q是个一听就感觉很宽泛的话题Q但是作者在文章中确实对 MongoDB 由内臛_?a title="查看架构的全部文? target="_blank">架构q行了剖析。本文截取了其文章中的几张重Ҏ(gu)构示意图片进行简单描q。希望对大家有用?/div>
MongoDB 数据文g内部l构

  1. MongoDB 在数据存储上按命名空间来划分Q一?collection 是一个命名空_(d)一个烦引也是一个命名空?/li>
  2. 同一个命名空间的数据被分成很多个 ExtentQExtent 之间使用双向链表q接
  3. 在每一?Extent 中,保存了具体每一行的数据Q这些数据也是通过双向链接q接?/li>
  4. 每一行数据存储空间不仅包括数据占用空_(d)q可能包含一部分附加I间Q这使得在数?update 变大后可以不Ud位置
  5. 索引?BTree l构实现
  ?MongoDB 中实C?/strong>

众所周知QMongoDB 只支持对单行记录的原子性修改,q不支持对多行数据的原子操作。但是通过上图中的变态操作,实际你也可以自己实现事务。其步骤如图所未:(x)
  • W?1 步:(x)先记录一条事务记录,要修改的多行记录的修改值写到里面,q设|其状态ؓ(f) initQ如果这时候操作中断,那么在重新启动时Q会(x)判断C处于 init 状态,从而将其保存的多行修改操作应用到具体的行上Q?/li>
  • W?2 步:(x)然后更新具体要修改的行,刚才写的事务记录的标识写到它的 tran 字段?/li>
  • W?3 步:(x)事务记录的状态从 init 变成 pendingQ如果在q时候操作中断,那么在重新启动时Q会(x)判断到它的状态是 pending 的,q时候查看其所有对应的多条要修改的记录Q如果其 tran 有|那么p行第 4 步,如果没|说明W?4 步已l执行过了,直接其状态从 pending 变成 commited 了就行)
  • W?4 步:(x)需要修改的多条记录的相应g改了Qƈ?unset 掉之前的 tran 字段
  • W?5 步:(x)事务记录那一条的状态从 pending 变成 commitedQ事务完?/li>

        其实上面的步骤ƈ不罕见,在支持事务的 DBMS 中,其事务原子性提交的保证大多都与上面cM。其实事务记录的 tran 那条记录Q就cM于这?DBMS 中的 redolog 一栗?/p>

  MongoDB 数据同步

上图?MongoDB 采用 Replica Sets 模式的同步流E?
  • U色头表示写操作写?Primary 上,然后异步同步到多?Secondary ?/li>
  • 蓝色头表示L作可以从 Primary ?Secondary L一个上?/li>
  • 各个 Primary ?Secondary 之间一直保持心跛_步检,用于判断 Replica Sets 的状?/li>

        分片机制


  • MongoDB 的分片是指定一个分?key 来进行,数据按范围分成不同的 chunkQ每?chunk 的大有限制
  • 有多个分片节点保存这?chunkQ每个节点保存一部分?chunk
  • 每一个分片节炚w是一?Replica SetsQ这样保证数据的安全?/strong>
  • 当一?chunk 过光制的最大体U时Q会(x)分裂成两个小?chunk
  • ?chunk 在分片节点中分布不均衡时Q会(x)引发 chunk q移操作

        服务器角?/strong>

 

 上面讲了分片的标准,下面是具体在分片时的几种节点角色
  • 客户端访问\p?mongos 来进行数据读?/li>
  • config 服务器保存了两个映射关系Q一个是 key 值的区间对应哪一?chunk 的映关p,另一个是 chunk 存在哪一个分片节点的映射关系
  • 路由节点通过 config 服务器获取数据信息,通过q些信息Q找到真正存放数据的分片节点q行对应操作
  • 路由节点q会(x)在写操作时判断当?chunk 是否出限定大小Q如果超出,分列成两个 chunk
  • 对于按分?key q行的查询和 update 操作来说Q\p点会(x)查到具体?chunk 然后再进行相关的工作
  • 对于不按分片 key q行的查询和 update 操作来说Qmongos ?x)对所有下属节点发送请求然后再对返回结果进行合q?/li>

        更多详细内容L(fng)原文Q?a target="_blank">MongoDB Architecture

 



]]>
aio,epoll,libevent,boost::asio解决的问?/title><link>http://www.shnenglu.com/guojingjia2006/archive/2012/11/09/194979.html</link><dc:creator>果?/dc:creator><author>果?/author><pubDate>Fri, 09 Nov 2012 07:56:00 GMT</pubDate><guid>http://www.shnenglu.com/guojingjia2006/archive/2012/11/09/194979.html</guid><wfw:comment>http://www.shnenglu.com/guojingjia2006/comments/194979.html</wfw:comment><comments>http://www.shnenglu.com/guojingjia2006/archive/2012/11/09/194979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/guojingjia2006/comments/commentRss/194979.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/guojingjia2006/services/trackbacks/194979.html</trackback:ping><description><![CDATA[<div> aio是linux2.6以后内核实现的异步IOQ或者说他才是真正意义上的异步IO?br /> epoll作ؓ(f)select的linux的替代品Q解决了selectfd_set的限制。性能优于select。而在maxq_上替代方案是kqueue?br /> libevent是一个跨q_异步解决Ҏ(gu)Q他Ҏ(gu)不同的^台提供了不同的异步方案,采用Reactor模型实现?br /> Boost::asio是一个跨q_的网l及(qing)底层IO的C++<a target="_blank">~程</a>库,实现了对TCP、UDP、ICMP、串口的支持。对于读写方式,ASIO支持同步和异步两U方式。采用了epoll来实玎ͼ插入了大量的信号处理。Asio库不需要单独便于,但是试q程中对boost::system的依赖可能会(x)需要编译部分boost中的库?br /> muduo采用Reactor模型实现的网l库Q只支持<a target="_blank">Linux</a> 2.6.x下的q发非阻塞TCP|络~程Q不跨^収ͼ不支持udp和ipv6。吞吐量斚wmuduo比libevent2?8%Q在事g处理效率?面,muduo与libevent2M比较接近Qmuduo吞吐量比boost.asio?5%以上。性能斚w作ؓ(f)解决大数据吞吐量很有优势Q但是对 q_和网l协议支持方面是一个问题?br /> ACE也是很经典的|络库,《C++|络~程》作者之手,设计_֦E度堪称一,支持协议范围也很q,但是使用复杂度和学习(fn)复杂度较高,一直有“学我者生Q用我者死”的评仗?br /> 需要注意的是他们的定位不同Qaio和epoll主要是对异步提供解决Ҏ(gu)不是|络库不提供|络支持Q而libevent也是主要解决IO的问题只提供单的http支持Qasio和muduoq有ACE一h高性能|络库?/div><img src ="http://www.shnenglu.com/guojingjia2006/aggbug/194979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/guojingjia2006/" target="_blank">果?/a> 2012-11-09 15:56 <a href="http://www.shnenglu.com/guojingjia2006/archive/2012/11/09/194979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nodejs 入门http://www.shnenglu.com/guojingjia2006/archive/2012/07/17/183810.html果?/dc:creator>果?/author>Mon, 16 Jul 2012 16:17:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/07/17/183810.htmlhttp://www.shnenglu.com/guojingjia2006/comments/183810.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/07/17/183810.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/183810.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/183810.html阅读全文

]]>
免费的C++囑Ş和游戏库http://www.shnenglu.com/guojingjia2006/archive/2012/06/15/178934.html果?/dc:creator>果?/author>Fri, 15 Jun 2012 06:29:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/06/15/178934.htmlhttp://www.shnenglu.com/guojingjia2006/comments/178934.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/06/15/178934.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/178934.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/178934.htmlShare

C++ is a multi paradigm, free form complied, general purpose and thus a very powerful language used basically forthe purpose of programming. This language is regarded as an intermediatelevel language .The main reason for this is that it consists of both high level as well aslow level features.

It is one of the most popularprogramming languages due to many reasons. It has application domains which include system software, device drivers, application software and many other including client applications and entertainment software of which the best example is a video game.

In this list we introduces some highly useful C++ graphics and game libraries. These libraries has provides a great interface to add these functionality to their project or application easily. C++ users would love to use these libraries for their next project.

Today we are going to share C++ graphic and games Libraries for developers, i hope these libraries would help developers a lot in their next project to make impressive and attractive layout for theirnest applications. Visit this list and share your thought in our comment section below.

1) Antigrain

Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, written in industrially standard C++. The terms and conditions of use AGG are described on The License page. AGG doesn’t depend on any graphic API or technology. Basically, you can think of AGG as of a rendering engine that produces pixel images in memory from some vectorial data.

2) Amanith

AmanithVG SRE is a pure software solution that grants a superlative vector graphics quality without to sacrifice performance on any kind of architecture / platform. Thanks to its original polygon rasterization algorithm and dedicated optimized scanline fillers, this engine constitues the fastest OpenVG software rendering solution available on the market.

3) Codehead

4) Oscilloscope Lib

5) Lib SDL

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of “Civilization: Call To Power.”

6) Ogre 3d

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

转自:

http://zoomzum.com/6-free-c-graphics-and-game-libraries/



]]>
Android 自动接听来电(sh) http://www.shnenglu.com/guojingjia2006/archive/2012/06/07/177946.html果?/dc:creator>果?/author>Thu, 07 Jun 2012 09:20:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/06/07/177946.htmlhttp://www.shnenglu.com/guojingjia2006/comments/177946.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/06/07/177946.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/177946.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/177946.html

|上扑ֈ?HTC One X,三星i9000 cm9 4.0.4试通过,在此记录一下,大伙需要的话就拿去?.


1. Android 2.3(不包?以下Q通过获取aidlq程服务接口TelephoneyManager来调用它的answerRingingCallҎ(gu)(ps: 关于此方法具体做法,׃旉关系Q我q里׃详细说啦Q大家Google一下吧)

        TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        Class c 
= Class.forName(tm.getClass().getName());
        Method m 
= c.getDeclaredMethod("getITelephony");
        m.setAccessible(
true);
        ITelephony telephonyService;
        telephonyService 
= (ITelephony) m.invoke(tm);

        
// Silence the ringer and answer the call!
        telephonyService.silenceRinger();
        telephonyService.answerRingingCall();



2. Android 2.3(包括)以上Q如果照样用TelephoneyManager获取到的answerRingingCallҎ(gu)的话Q就?x)抛没?android.permission.MODIFY_PHONE_STATE权限异常Q其实你已经配了q个权限的了Q但是不好意思,你的App不是pȝ 软gQ没有系l签名,所以还是不能调用,除非Q你root了你的手机,把你的app装到pȝ软g里面去,所以这里用另外一U方法实现自动接听这个行?了,详细如下:

刚开始我用这D代码的Q发C星机型可以,但HTC(? G10 , One X)不行Q?/p>

 Intent intent = new Intent("android.intent.action.MEDIA_BUTTON");
 KeyEvent keyEvent 
= new KeyEvent(KeyEvent.ACTION_DOWN,  KeyEvent.KEYCODE_HEADSETHOOK);
 intent.putExtra(
"android.intent.extra.KEY_EVENT",keyEvent);
 sendOrderedBroadcast(intent,
"android.permission.CALL_PRIVILEGED");
 intent 
= new  Intent("android.intent.action.MEDIA_BUTTON");
 keyEvent 
= new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);
 intent.putExtra(
"android.intent.extra.KEY_EVENT",keyEvent);
 sendOrderedBroadcast(intent,
"android.permission.CALL_PRIVILEGED");



后来又googleCq段代码Q经q测试,完全好..


Intent localIntent1 = new Intent(Intent.ACTION_HEADSET_PLUG);
localIntent1.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
localIntent1.putExtra(
"state"1);
localIntent1.putExtra(
"microphone"1);
localIntent1.putExtra(
"name""Headset");
CallingActivity.
this.sendOrderedBroadcast(localIntent1,"android.permission.CALL_PRIVILEGED");

Intent localIntent2 
= new Intent(Intent.ACTION_MEDIA_BUTTON);
KeyEvent localKeyEvent1 
= new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_HEADSETHOOK);
localIntent2.putExtra(
"android.intent.extra.KEY_EVENT",localKeyEvent1);
CallingActivity.
this.sendOrderedBroadcast(localIntent2,"android.permission.CALL_PRIVILEGED");

Intent localIntent3 
= new Intent(Intent.ACTION_MEDIA_BUTTON);
KeyEvent localKeyEvent2 
= new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_HEADSETHOOK);
localIntent3.putExtra(
"android.intent.extra.KEY_EVENT",localKeyEvent2);
CallingActivity.
this.sendOrderedBroadcast(localIntent3,"android.permission.CALL_PRIVILEGED");

Intent localIntent4 
= new Intent(Intent.ACTION_HEADSET_PLUG);
localIntent4.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
localIntent4.putExtra(
"state"0);
localIntent4.putExtra(
"microphone"1);
localIntent4.putExtra(
"name""Headset");
CallingActivity.
this.sendOrderedBroadcast(localIntent4,"android.permission.CALL_PRIVILEGED");


]]>
ndkhttp://www.shnenglu.com/guojingjia2006/archive/2012/05/05/173741.html果?/dc:creator>果?/author>Sat, 05 May 2012 07:02:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/05/05/173741.htmlhttp://www.shnenglu.com/guojingjia2006/comments/173741.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/05/05/173741.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/173741.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/173741.htmlffmpeg  => http://abitno.me/compile-ffmpeg-android-ndk
http://hi.baidu.com/lizhengjun2010/blog/item/08b7fb1b79dc9befe1fe0b09.html


]]>
phpunithttp://www.shnenglu.com/guojingjia2006/archive/2012/05/04/173650.html果?/dc:creator>果?/author>Fri, 04 May 2012 03:39:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/05/04/173650.htmlhttp://www.shnenglu.com/guojingjia2006/comments/173650.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/05/04/173650.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/173650.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/173650.html

最q研Iphp的单元测试功能,在centos下和widows下安装了phpunit

首先要保证你装的php中安装了pear

linux下输入命令pear 回R可看一下是否安装了

windows下可以用dosq入到php的安装目?Q输入命令pear 回R可看一下是否安装了 

在默认情况下php中都?x)安装?/span>

pear的安?/span>

wwindows下用dosq入php的安装根目录  q行go-pearQr然后输入两次yes 然后 后边的选项直接用回?/span>

然后我们要添加Channel

pear channel-discover pear.phpunit.de

pear channel-discover components.ez.no

pear channel-discover pear.symfony-project.com


我在q个地方遇到?nbsp;.lock 讉K权限的错误而安装失败,q是我们可以在PEAR文g夹下删除此文?/span>

接下来执行pear install phpunit/PHPUnitQ此时我遇到了下图所C的问题Q包依赖

很简?我们把这些包用pear install命o(h)安装?卛_

可能执行完这个之后你的phpunitq是提示安装p|

它提C我们要更新pear?/span>

pear upgrade-all 

按照提示操作Q可能会(x)提示你更新ChannelQ那么更新即?/span>

此时在执行pear install phpunit/PHPUnit 可以看到提示安装成功?/span>



我们?x)发现在PEAR目录下多了PHPUnit q表明安装成功,另外在安装pear的时候回修改php.ini文g

;***** Added by go-pear

include_path=".;E:\webserver\php\pear"

;*****

提C:(x)直接输入pear可现实pear命o(h)下的所有选项

phpunit 使用手册 http://www.phpunit.de/manual/3.5/en/index.html



]]>
yii 路由http://www.shnenglu.com/guojingjia2006/archive/2012/03/20/168433.html果?/dc:creator>果?/author>Tue, 20 Mar 2012 12:59:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/03/20/168433.htmlhttp://www.shnenglu.com/guojingjia2006/comments/168433.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/03/20/168433.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/168433.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/168433.html阅读全文

]]>
开源项目潜力无?OpenStack全面爆发http://www.shnenglu.com/guojingjia2006/archive/2012/01/04/163551.html果?/dc:creator>果?/author>Wed, 04 Jan 2012 07:47:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2012/01/04/163551.htmlhttp://www.shnenglu.com/guojingjia2006/comments/163551.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2012/01/04/163551.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/163551.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/163551.html如果一切按计划q行Q红?Red Hat)成为第一家年收入过10亿美元的开源Y件厂商。这对于开源Y件社区将是一个{折点。开源Y件社Z直认Z们基于社区的开发方法是可行的、甚x优越的、可替代传统的Y件的开发方式?/p>

U帽CEO吉姆·怀特赫斯特(Jim Whitehurst)Uͼ我认为,我们看C生技术创新的地方发生一个根本的转变Q从几家软g公司的实验室转向庞大的开源Y件的努力?/p>

随着Linux、Apache Web server、Perl、Apache、Hadoop、OpenOffice、GIMP和几十个其它的开源Y件计划给商业性Y件带来更大的压力Q开源Y件在q去的几q里肯定l专有Y件世界带来了混ؕ。但是,明天的开源Y件的重量U品是什么?下面是在2012q需要密切关注的五个目。这些项目可能构成新的业务和新的行业的基。这些项目也可能是仅仅因够更Ҏ(gu)地或者更廉h(hun)地完成Q务而受C开发者和理者的x?/p>

1.Nginx

在过?0q的大部分时间里QW(xu)eb服务器Y件的选择一直是E_的。Apache一直在大多数Web服务器上应用Q而微软的IIS(互联|信息服?用于许多其它的服务器。然而,在过ȝ几年里,W三个进入这个市场的Nginx的应用一直在增长Q因个Y件能够轻村֤理高定w的通讯?/p>

据Nginx软g开发h员预,Nginx目前已经?000万个不同的互联网域名上运行,大约占整个互联网?0%。Nginx特别q泛地应用于通讯量非常大的网站,如Facebook、Zappos、Groupon、Hulu、Dropbox和W(xu)ordPress。毫不奇怪,q个软g的创伊戈尔·西烦?Igor Sysoev)?004q设计Nginx软g的时候就是专门ؓ(f)处理大量同时使用|络的用戯计的Q每台服务器最多有1万个q接。该公司共同创始人安德鲁·阿莱克谢耶夫(Andrew Alexeev)Uͼq是一个非常精l的架构。Nginx公司提供商业版本的Nginx软g?/p>

卛_到来的一q将是Nginx的一个好q景。Nginxd从一些风险投资公叔R里获得了300万美元,其中包括戴尔CEOq克?#183;戴尔(Michael Dell)支持的风险投资公司。Nginx与Jet-Stream合作Y件厂商的CDN(内容交付|络)软g包提供Nginx软g。该公司q与亚马逊合作ؓ(f)AWS(亚马逊Web服务)云服务优化Nginx软g?/p>

除了用于大型|站q营之外Q阿莱克谢耶夫预计Nginx更q泛地用于新兴的云计和׃n的服务市场。他_(d)预计在明q推出的Nginx软g的下一个重要的发布版将更适合׃n的托环境。这个Y件将能够更好地应对分布式拒绝服务dq且配|额外的安全功能?/p>

2.OpenStack

OpenStack目q入云计领域的旉比较晚。但是,q个目有一个不可缺的功能Q可伸羃性?/p>

OpenStack目政策委员?x)主席乔Ux·布赖?Jonathan Bryce)Uͼ我们正在谈论使用OpenStackq行一个拥?00台服务器或?000台服务器的云。那里的其它选择实没有考虑到这个规模?/p>

自从2010q推Z来,OpenStackq速赢得了惠普、英特尔和戴?dng)等云计领域的IT公司的支持。OpenStack的A(ch)献者喜Ƣ把自己的工作称作增镉K度最快的开源Y仉目,参加者包?44家公司和2100多h。戴?dng)推Z个名为戴?dng)OpenStack云解x案的软g包,把OpenStack与戴?dng)自q服务器和软gl合在了一赗惠普也推出一个采用这个技术的试版的公共云服务?/p>

OpenStack的核心的计算lg是在国航天局艑֧斯研I中?Ames Research Center)为存储大量空间图片的一个内部云开发的。据曄负责开发OpenStack云控制器前艾姆斯研究中心CIO克里?#183;坎普(Chris Kemp)Uͼ国航天局理人员原来试图使用Eucalyptus软g目q_Q但是,发现q个软g很难升到需要的水^?/p>

理的托提供商Rackspace的首席技术官U翰·安格?John Engates)_(d)Z帮助更广泛地应用QOpenStack正在配置许多新的功能Qɘq个软g更适合企业应用。一个名?#8220;Keystone”的项目允许机构把OpenStack与自qw䆾理pȝl合hQ或者与Z微Yd目录或者其它LDAP(d目录讉K协议)的n份管理系l结合v来。此外,开发h员也正在个Y件开发一个前端门戗Rackspaceq将把这个项目剥Mؓ(f)一个完全独立的实体Q希望它成ؓ(f)更多的云提供商的一个诱人的选择?/p>

安格斯称Q?011q将是这个品打基础的一q。但是,我认为,2012q我们将真正开始利用这个基在许多私有云和公׃中用?/p>

3.Stig

q去的一q是Cassandra、MongoDB、CouchDB和无数其它非关系数据库的应用显著增长的一q。但是,?月䆾举行?#8220;NoSQL Now”?x)议上,Z更多谈论的是未发布的数据存储Stig。如果幸q的话,我们在2012q看到Stig?/p>

Stig的维护者称QStig是ؓ(f)C交|络|站的独特的工作量设计的。Stig是社交网l网站Tagged的Y件工E师杰森·卢卡?Jason Lucas)创徏的。他把这个技术称作分布式图表数据库。Stig旨在支持大量互动的和C交|络应用。这个数据商店的架构允许q行推论性的搜烦Q允许用户和应用E序查找信息的不同部分的联系。由于Stig是用Haskell功能~程语言~写的,它能够轻村֜把自q工作量分散到多台服务器?/p>

Stig仍然有一些神U感Q因为它到目前ؓ(f)止还没有发布。但是,观察人士预测Q它适合C交|络和其它保持广泛的数据的应用。卢卡斯解释_(d)C交|络的需求从一开始就与其它类型的工作不同Q因此将受益于适合它需求的数据库。如果不能升U到行星的规模,你在q个领域׃能成Z个相关的服务?/p>

Stig目前在Tagged|站的一台服务器上运行,不过Q该公司预计把Stig扩大应用公司唯一的数据库。开发h员原计划?2月开放这个Y件的源代码,但是Q后来推q到2012q的某个时候?/p>

咨询公司Kelly-McCreary & Associates的语义解x案设计师?#183;麦克?Dan McCreary)_(d)我看到的情况是非常有的。他赞扬q个数据库的功能语言架构。这个架构将使这个数据库在多台服务器上部|更方便?/p>

4.Linux Mint

管开源Y件支持者的多年宣传QLinux从来没有q泛应用于台式电(sh)脑。但是,一直有一个用户友好的Linux发布版作为替代微软Windows的Y件在使用。在最q几q_(d)Canonical公司的Ubuntu已经完成了自qdQ尽日益流行的Linux Min也许?x)因为更?gu)使用而超qUbuntu?/p>

软g工程师克莱门?#183;勒费布尔(Clement Lefebvre)在评C在线论坛中的各种Linux发布版之后首先创ZLinux Mint。勒费布?yu)(dng)在q个工作中生了在这个理想的发布版中应该有什么功能的x。就像Canonical己非常流行的Ubuntu感谢Debian Linux发布版一P勒费布尔把Ubuntu作ؓ(f)Linux Mint的基。现在,Linux Mint目得到了捐献者的资金、自q站的q告收入和来自用h索的收入。最后一Ҏ(gu)入是通过与DuckDuckGo建立的一个有争议的合作实现的?/p>

Linux Mint是仅需要桌面操作系l而不想了解更多的Linux工作原理的用戯计的。这个方法安装和运行这个Y仉常容易,l护也不成问题。更胜过Ubuntu的是QLinux MintL的用性,在新功能证明自己值得使用之前Q一般不使用新的功能?/p>

例如QLinux Mint避开有些争议?#8220;Unity”桌面界面。Canonical应用q个界面更轻村֜把UbuntuUL到移动^台。相反,Linux Mint坚持使用更知名的和更成熟的Gnome界面?/p>

事实上,׃Ubuntu的伤宻Iq种严格坚持可用性的做法也许有助于Linux Mint。Linux MintU它的操作系l是全球排名W四位的桌面操作pȝQ仅ơ于Windows、苹果Mac和Ubuntu。在q去的一q里QLinux Mint在DistroWatch Linux新闻|站产生的网|览量甚至过了Ubuntu。这个指标反映了Linux发布版的行E度。毫无疑问,2012q将看到Linux Mint更多的增ѝ?/p>

5. Gluster

U帽能够l存储Y仉域带来它曄Unix操作pȝ市场带来的那U革命性的变化?今年10月,U帽收购了开源Y件公司Gluster。这家公司制作的开源Y件GlusterFS且文件系l能够把商品化SATA(串行高技术附?盘和NAS(|络附加存储)pȝq接到大规模的可伸羃的存储池。红帽计划用它占领Linux操作pȝ市场的方法统d储领域?/p>

据红帽CEO吉姆·怀特赫斯特Uͼ存储软g市场每年收入?0亿美元,不过Q这不是U帽对这个技术感兴趣的原因。相反,U帽感兴的是找CU能够云迁UL方便的存储技术。他_(d)我们L一些开源Y件能够作为更强大的技术创新的方式的地斏V我们正在寻找一些能够盈利的地方。在q方面,q没有其它的解决Ҏ(gu)?/p>

q个软g已经有一些增长势_(d)臛_在管理员下蝲和测试这个Y件方面是如此。在q去的一q里QGlusterFS的下载量增长?00%。在今年11月,q个软g的下载次数超q了3.7万次?/p>

]]>
YIIhttp://www.shnenglu.com/guojingjia2006/archive/2011/12/02/161321.html果?/dc:creator>果?/author>Fri, 02 Dec 2011 05:16:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2011/12/02/161321.htmlhttp://www.shnenglu.com/guojingjia2006/comments/161321.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2011/12/02/161321.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/161321.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/161321.htmlhttp://www.yiiframework.com/
http://www.yiiframework.com/doc/guide/1.1/zh_cn/quickstart.what-is-yii
http://yp.oss.org.cn/blog/show_resource.php?resource_id=774
http://www.yiieye.com/book_cn/
http://blog.csdn.net/dxxgiupel/article/details/5803864
http://wenku.baidu.com/view/7d7d65ecaeaad1f346933fb5.html


]]>
常用链接http://www.shnenglu.com/guojingjia2006/archive/2010/08/12/123165.html果?/dc:creator>果?/author>Thu, 12 Aug 2010 03:56:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2010/08/12/123165.htmlhttp://www.shnenglu.com/guojingjia2006/comments/123165.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2010/08/12/123165.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/123165.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/123165.htmlhttp://www.kernel.org/pub/linux/kernel/v2.6/
STLPort:http://sourceforge.net/projects/stlport/



]]>
sun java 环境变量(?http://www.shnenglu.com/guojingjia2006/archive/2010/08/11/123070.html果?/dc:creator>果?/author>Wed, 11 Aug 2010 07:27:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2010/08/11/123070.htmlhttp://www.shnenglu.com/guojingjia2006/comments/123070.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2010/08/11/123070.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/123070.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/123070.htmlҎ(gu)一Q通过源安?/p>

1、安?/p>

打开l端Q执行以下命令,或用Adept/新立得Y件管理器Q在其中分别搜烦"sun-java6-jre"?sun-java6-jdk"q? 标记安装?/p>

$ sudo apt-get install sun-java6-jdk

提示Q安装过E中需要你回答是否同意使用协议Q终端中U蓝色的提示界面Q,此时按tab键至OKQ再按回车即可正常安装?/p>

讄当前默认的java~译器:(x)

$ sudo update-alternatives --config java

a、如果你的系l上预装有openjdkQ将出现如下昄的信息:(x)

现有 2 个可选项Q它们都提供?#8220;java”<

    选择        可选项
-----------------------------------------------
 +        1    /usr/lib/jvm/java-6-openjdk/jre/bin/java
*          2    /usr/lib/jvm/java-6-sun/jre/bin/java

要维持缺省值[*]Q按回R键,或者键入选择的编P(x)

输入 有包?"sun" 的行的前面的数字。如上面昄Q则输入2Q然后回车确定?/p>

b、如果你pȝ没有java环境Q则出现如下昄信息Q?/p>

只有一个程序提?java
Q?usr/lib/jvm/java-6-openjdk/jre/bin/javaQ。无dM配置?/p>

 

$ sudo update-alternatives --config javac

a、如果你的系l上预装有openjdkQ将出现如下昄的信息:(x)

现有 2 个可选项Q它们都提供?#8220;javac”<

    选择        可选项
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/bin/javac
*+       2    /usr/bin/gcj-wrapper-4.3

要维持缺省值[*]Q按回R键,或者键入选择的编P(x)

输入 有包?"sun" 的行的前面的数字。如上面昄Q则输入1Q然后回车确定?/p>

b、如果你pȝ没有java环境Q则出现如下昄信息Q?/p>

只有一个程序提?java
Q?usr/bin/gcj-wrapper-4.3Q。无dM配置?/p>

 

2、配|java环境变量

$ sudo gedit /etc/environment


在其中添加如下两行:(x)
----------------------------------------------------------------------------
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun

------------------------------------------------------------------------------

2、安?

下载下来的bin文g复制?opt目录下(假设你下载后的bin文g攑֜/home/yourname下)Q?l端执行Q?br>
$ sudo cp /home/yourname/jdk-6u13-linux-i586.bin /opt ?br>
安装执行Q?br>
$ sudo /opt/jdk-6u13-linux-i586.bin ?br>
安装q程中会(x)提示是否同意协议Q按下q退出浏览,然后输入"yes"Q等安装完毕后会(x)自动?opt

文g夹下创徏一个jdk1.6.0_13的文件夹Q安装的文g都放在该目录下?/p>

]]>
þĻ| ޾þþþþ77777| ۺŮþþ30p| þۺɫ| þþƷۺɫ| 99þwww˳ɾƷ| ޾þþþþ77777| Ʒ99þ99þþ| һŷƬþ| þþƷ˘AV| 2021þþƷ| AVһþ | þƵһ| 99ȳ˾ƷȾþ| ŷþۺ| ŷƷž99þڹۿ| þþƷ| Ļþþþ| ҹƷþӰԺ| ҹƷƬþ| Ʒþþþaaaa| ޾ƷþþþþĻ | ˾þô߽Ʒ| ޹ƷƬþ| Ʒ99þþþ | պƷþþþþ| þֻǾƷ23| þþþ| ҹþþþƷӰԺ| 91þþƷ91þɫ| þùŷպƷ | ˾ҹվھƷþþþþþþ | þþһ| þþþAVۿ| Ʒþþþþþþ| þþþ뾫Ʒ| Ůþþþþ| þþƷav鶹ͼƬ| þþƷAV| þþþþþƷο| Ʒþþþþ|