【关于 Xiuno BBS 2.0.2 正式版】
Xiuno BBS 是国产的一套面向千万级数据量设计的开源论坛软件，基于 PHP/MySQL/MongoDB/Memcached/Linux C/JQuery/ 等技术，采用 MVC+AOP 模式组织代码，旨在解决BBS站点负载过高的问题，是大中型站点比较理想的选择对象。

Xiuno 这个名字来源于圣斗士星矢白羊座的黄金圣斗士修罗，他的攻击速度和战斗力是十二宫最强的，他是速度和力量的化身; 在佛教里面，修罗为六道之一，英文：Shura，处于人道和天道之间的一道，半人半神，性情刚烈，好战斗，梵语中，修罗意味端庄，气宇轩昂（阿为否定，阿修罗意思为丑陋好斗)。我们取其寓意，希望 Xiuno 变得越来越强，越来越快。

压缩后，它只有 681k，解压后只有 2M，一共406个文件。但是你知道它有多强大吗？
	在程序方面：
	1. 支持多种数据库存储： MySQL, Mongodb, pdo_mysql, pdo_*，而且有效的规避了慢查询，无索引查询，利用到了MYSQL强大的分区功能，支持海量存储，支持DB主从架构（自动分离读写SQL）。
	2. 开启 Memcached, TTServer, Redis 等 key-value 缓存，可以大大减轻DB的读写压力，而且是透明的，可以随时开启和关闭。
	3. 模板语法非常的简单，前端工程师只需要简单的学习几个标签即可开始工作。 
		{if $uid == 1}...{/if}
		{loop $threadlist $thread} ...{/loop}
		{include footer.htm}
	4. 插件机制是真正的AOP机制，插件代码插入到主程序后运行，不影响主程序执行效率。一个插件一个目录，一个文件名对应一个插入点，打包后即可发布和传播，风格也是使用插件的方式实现。
	5. 基于自行研发的 PHP Framework (XiunoPHP) 开发，MVC 层次清楚，便于扩展。
	6. 支持分布式环境的部署，支持SAE云平台。
	7. 支持全站 LOW_PRORITY，让 MySQL 在高负载下尽可能的不再锁表（采用预先分配ID，不在依赖 MySQL 的 INSERT UPDATE 写入的结果）。
	8. 不管是在小数据量还是在大数据量下，它的速度远远领先于同类产品，注意，是远远。
	
	在功能方面：
	1. 支持传统的 BBS 的用户组、版块、附件、斑竹、置顶、精华、权限等概念。
	2. 单板论坛的国内先行者，可能是下一代BBS的原型。
	3. 支持大数据量的复合条件进行组合查询(最多四种条件任意组合），却不用牺牲效率。
	
【关于 XiunoPHP 1.2】
在开发Xiuno BBS 的过程中开发了 XiunoPHP。
它只有340K，34个文件。
最早目的是用来分离公共模块，后来独立成了产品，它良好的封装了各种DB, CACHE，对上层只提供了12个方法，只需要掌握这12个方法，开发者就可以任意操作各种DB,CACHE。
它设计为以行为最小存储单位，这样大大的简化和统一了 DB,CACHE 的接口，并且它引入了单点分发自增ID，让应用不再依赖于DB的 count(), max()，函数，便于分布式程序的设计。

	// ------------ 操作 db ---------- //
	
	您可以像这样读取db中的数据:
	$user = $db->get("user-uid-123");
	
	更新用户数据:
	$db->set("user-uid-123", $user);
	
	删除一条记录：
	$db->delete("user-uid-123");
	
	统计数据:
	$n = $db->count('user');
	
	// ------------ 操作 cache ---------- //
	
	读取 Cache 中的数据：
	$user = $cache->get("user-uid-123");
	
	更新 Cache 中的数据：
	$cache->set("user-uid-123", 123);
	
	删除一条记录：
	$cache->delete("user-uid-123");
	
	统计:
	$n = $cache->count('user');

看起来是不是太简单了，确实是太简单了，从此不必再记忆各种SQL语法，这样顺便还消灭了LEFT JOIN等容易产生性能问题的SQL语句产生的机会。
高负载，安全性，分布式增加了程序的复杂性，而这个框架就是通过一些约定来消除这些复杂性，我们强烈向开发者推荐这个框架。
文档地址：http://www.xiuno.com/doc/xiunophp/

【如何安装？】
1. 上传 upload 目录下所有文件
2. 设置如下目录和文件为可写
	./upload
	./tmp
	./log
	./conf
3. 访问 http://www.domain.com/install/, 根据提示安装(http://www.domain.com/ 为您的网址)。


【如何修改风格？】
1. view 目录下存放着风格相关的文件, .htm .css .js，如果您不考虑到升级和发布，可以直接修改它们。
2. 风格是插件的一种，您可以在官方论坛下载网友做好的风格插件，也可以根据文档制作，过程非常简单，一个插件一个目录，存放在 ./plugin 下。
3. 更多风格相关信息，请访问：http://www.xiuno.com/


【如何二次开发？】
1. 程序采用MVC方式组织代码，插件使用了AOP机制，开发过程简单，不受主程序升级影响，一次写好，终生使用（这么说有点像JAVA当年的吹嘘~ 但是确实是这样）。
2. 详细的二次开发文档，请访问：http://www.xiuno.com/


【如何优化Xiuno？】
1. Xiuno BBS 可以使用 Memcached, MongoDB, /dev/shm, clickd, Sphinx, 等来加速您的论坛，默认是关闭状态，您可以通过后台和配置文件来开启这些功能。
2. 配置文件 conf/conf.php 可能是是您进一步优化需要了解的文件。
3. 详情参见：http://www.xiuno.com/


【关于分布式WEB服务器部署】
一般说来，跑 XiunoBBS 的单台服务器足够抗住百万级别的PV了，如果到了千万才需要考虑分布式部署，中间过渡的时候可以考虑DB,WEB分离。
写入的目录：
conf: 配置文件，需要手工同步到各台WEB服务器上，主要为了方便维护和开发（安装设置完一台以后再copy部署到其他web服务器）。
log: 日志文件，每台Web写各自的磁盘，也可以通过NFS将 log 挂载到一台服务器上。（SAE 版本禁用了此功能）
upload: 用户上传文件目录，通过NFS挂在到一台（文件）服务器上，SAE 平台下为： saestor://upload (建立 upload 域，并且设置好bbs配置文件中的 upload_url, upload_path）。
tmp: 临时文件夹，用来存放编译模板内容，SAE 平台下为 saekv://


【我需要授权吗？】
如果您是用于学习、非盈利性公益事业、个人站点用途可以免费使用。
商业用途需要获得官方授权，具体授权方式，请访问：http://www.xiuno.com/


作者：axiuno#gmail.com
时间：2013/3/21
