Xiuno 教程

Xiuno BBS(修罗),是一个千万级负载,速度毫秒级的轻论坛。
名称: Xiuno 中文名: 修罗
作者: 老黄 诞生时间: 2010
环境: PHP + MySQL 版本: 4.0.4

Xiuno BBS中文名“修罗”,最新版2017年发布,是一款国产、小巧、精悍的 Web 产品,

最新的Xiuno 4.0 前端基于 BootStrap 4.0、JQuery 3.1,后端基于 PHP/7 MySQL XCache/Yac/Redis/Memcached...,

Xiuno logo
Xiuno logo

它不仅仅是一个论坛,还是一个良好的二次开发平台。在开发效率上,基于框架开发,不如基于成熟的产品开发。

Xiuno 4.0 在 3.0 的基础上对核心功能进一步精简,只保留了论坛最基本功能的 15 个表,其他功能插件化。

老黄取Xiuno这个名字,是颇有渊源的

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

取其寓意,希望 Xiuno 变得越来越强,越来越快。

  • 1 高负载、高性能。
  • 2 彻底采用MVC模式设计,将数据处理,业务逻辑,显示分开。
  • 3 代码严格遵守规范
  • 4 为了追求速度,不使用第三方类库,所有类库均独立开发
  • 5 面向千万级的数据库设计
  • 6 Memcached多台的同步服务
  • 7 简洁的利于搜索引擎的URL格式
  • 8 华丽风格和简洁风格的支持

它是一款国产、小巧、稳定、支持在大数据量下仍然保持高负载能力的轻论坛。它只有 20 多个表,源代码压缩后 1M 左右,运行速度非常快,处理单次请求在 0.01 秒级别,在有 APC、Yac、XCache 的环境下可以跑到 0.00x 秒,对第三方类库依赖少,作者认为它就像一辆纯手工打造的法拉利,动力强劲,没有一丝赘肉,方便部署和维护,是一个非常好的二次开发的基石。

Xiuno BBS 4.0 采用 Bootstrap 4 + JQuery 3 作为前端类库,全面支持移动端浏览器;后端 XiunoPHP 4.0 支持了 NoSQL 的方式操作各种数据库,这个版本是一个巨大的飞跃。

Xiuno 发音“修罗”,英文为 Shura,在佛教里面为六道之一"修罗道",处于人道和天道之间。

Xiuno BBS 4.0 采用 MIT 协议发布,您可以自由修改、派生版本、商用而不用担心任何法律风险(修改后应保留原来文件的版权信息)。

让各位同修们久等了,这次延迟的锅主要应该由 Bootstrap 4 来背(果断甩锅老外),我们跟踪它的版本经历了: alpha 3,4,5,6, beta1,2,3一年多,等到后面以为出不来了,还好虽然正式版终于出来了,正好同步发布!

而 Xiuno BBS 也经历了 1,2,3,4 的蜕变,期间我们也做过了很多尝试,最终产品形态和代码风格定型为当前形态。

后端采用自己的框架 XiunoPHP,面向对象封装底层,屏蔽 DB CACHE API 差异,应用层采用函数风格调用。

在产品的形态方面,我们也摸索了很多种形式,最终我们定型为轻论坛,支持一维的板块,多维的主题分类(插件),自适应同时支持 PC 和手机,不搞全站无刷新。

最早我们针对手机和 PC 写了2套前端代码,发现后面维护相当的麻烦,一致性问题是个很严重的问题,随着时间的流失,当模板中的逻辑出现差异的时候,你不知道那边是对的。后来我们又针对宽屏尝试了三列布局,还有 AJAX 全站无刷新尝试...... 趟过了如此多的坑,最终我们发现 Bootstrap 4 给了我们最终的答案,响应式布局+跳转,平衡了用户体验和开发维护难度。(话说 Bootstrap 4 的 Flex 都应用都成熟了,Twitter 官方网站还一大坨 float style)

我们遵照 Bootstrap 4 的 UI 规范,基本上没有写过 style,尽量用 class 搞定。另外 flex 布局的加入,确实方便了很多。比如页脚底部对齐,在语义不变的情况下很轻松就搞定了。Bootstrap 4 的全球生态链未来肯定也会惠及 Xiuno,这点是毋庸置疑的。比如插件的编写可以直接使用 BS 的现成的控件和引入基于 BS 开发的模块。

不用再担心被 Webshell,SQL 注射等这些问题困扰。Xiuno 在安全方面一直很注重,经过了多年的实战检验,作者经常接触安全圈,熟悉常见攻击手段,国内知名社区看雪安全论坛采用的就是 Xiuno BBS 4.0,目前还未出现过什么安全问题。Xiuno 的参数经过了严格的类型过滤,拼接 SQL 的相关函数也严格进行了转义,正常写是不会有什么安全问题的。

但是,安全问题是一个综合问题,框架层面只能保证最基础的,最终还是要靠安全意识来保障,比如弱密码,越权等问题,信息泄露,旁注等,谁也不敢说自己是百分之百安全,不能说你家防盗门结实就是安全的,窗户,通风管道,都有可能成为突破口。插件可能会成为一个软肋,不要随便安装第三方作者开发的插件,除非第三方作者有较好的安全意识,或者插件被官方认证过。

Xiuno 最早诞生就是为了解决负载问题,这个基因不会变,2.1 用力过猛,4.0 往回收了收,更多让位给了易读性和可维护性。性能和安全、复杂度是矛盾的,我们尽量降低业务、代码、数据库设计等多方面的复杂度。在表的设计上,非常注重索引和缓存的使用。这里面有一个平衡性问题,经过了反复调整,最后找到了一个比较完美的尺度。

  • 1 前端采用 BootStrap 4 + JQuery 3,响应式布局,自适应手机,平板,PC 设备,不再需要单独开发移动版本。
  • 2 对 Bootstrap 4 进行了增强和兼容,比如增加 $('#submit').button('xxx').delay(3000).location('xxx.php') 的连续操作支持,修正 .row .row 嵌套导致的间距、手机下的间距过大等问题。
  • 3 xiuno.js 采用了 xn. 命名空间,不再担心 js 命名冲突,完善了对常用的 php 函数的实现。
    增加了通用的 $.each_sync() 方法,从客户端避免 ajax 并发导致的服务端并发写数据问题,简化了服务端逻辑。
  • 4 不再支持 IE8 和以下版本,全面拥抱移动端,不用再用琢磨恶心的 css hack。
  • 5 不再强制要求 URL-Rewrite,同时支持多种 URL 格式:user-login.htm /user/login 。
  • 6 图片缩略、裁切放到了客户端,不再依赖服务端 GD 库。
  • 7 同时支持 Session 和 Token 方式登录,可以返回 json 数据,方便 REST 接口开发。
  • 8 插件机制采用 AOP 机制,支持 hook + overwrite 方式,方便插入,和覆盖,非常方便二次开发,并且不影响性能,不影响编译。
  • 9 db 层采用了更加方便的接口,可以同时支持 SQL 和 NoSQL 的方式操作数据。
  • 10 论坛功能上更加的精简,更多功能采用插件的方式进行扩充。
  • 11 引入了语言包,自带简体、繁体、英文三个版本。
  • 12 件中心正式开启,开发者可以入驻,开发收费插件。
  • 13 帖子支持 txt html markdown ubb 多种格式,自带适度整合的 UMEditor 插件,修正了 UM 在 Bootstrap 4 下的很多问题。
  • 14 xiunophp 4.0 这个框架合并成了一个文件 xiunophp.min.php,只需要一个 include 就可以开始使用里面提供的方便的函数和全局变量。
  • 15 Maybe Xiuno BBS 4.0 is the lastest big version.
  • 1 采用静态语言编程风格,充分发挥 PHP7 OPCache 的威力。
  • 2 专门针对 BBS 业务的索引优化和适度的缓存。
  • 3 大量的运算放到了客户端,并发问题尽量由客户端控制。
  • 4 作者十多年从业经验带领您绕过雷区。
  • 1 Email 注册改为手机注册,可配置手机短信发送平台。
  • 2 收费插件,后台微信支付安装插件,开发者可以提现收益。
  • 3 发布 Xiuno BBS 4.0 Beta6。
  • 4 Bootstrap 4 beta 不够稳定,继续等待稳定版。
  • 5 Bootstrap 4 正式版以后,发布正式版。
  • 6 基于正式版,制作几套默认高质量风格。

Xiuno BBS 4.0 采用 MIT 协议发布,您可以自由修改、派生版本、商用而不用担心任何法律风险(修改后应保留原来的版权信息)。

Xiuno BBS 4.0.4 更新记录(发布时间:2018/4/11):

二级导航 (二次开发多频道站点必备,BBS 频道化,可以扩展 CMS SHOP BLOG 等频道)。

五种语言(简体、繁体、英文、俄语、泰语)。

增加注册用户的开关。

增加水印文件的支持,默认 view/img/water-small.png (当宽度 > 10 像素时候开始起作用)。

修正 TAG 显示顺序。

几处优化和改进。

主程序的文件和表结构正式版发布以来一直没变,随后的小版本更新频度会越来越低,越来越稳定。

Xiuno BBS 4.0.3 更新记录(发布时间:2018/3/6):

优化个人中心排版,更便于扩展。

手机注册插件上线(登录、注册、重设密码、绑定手机号、更改手机号)。

验证码插件上线。

升级个人中心相关插件:通知,收藏,精华、编辑器。

Xiuno BBS 4.0.2 更新记录(2018/2/12):

修正 message() 函数风格丢失的问题

修正首页无权限主题过多页面短小的问题

缩减个人中心导航标题(我的主题 -> 主题)

版主操作改为 ajax dialog

兼容增强获取 CDN IP

url() 函数从 XiunoPHP 移动到 BBS,方便自定义 URL

JSON、我的回帖插件化

编辑历史插件上线

修正移动后缓存清理

添加了 .text-small 绝对大小,防止多次 .small 相对大小叠加的特别小字体。

Xiuno BBS 4.0.1 更新记录(2018/1/27):

修正查看我的回帖权限没有判断板块权限问题

修正 https_post() 在某些条件下发送 METHOD 为 GET

规范属性传参 pid="" tid="" 改为 data-pid="" data-tid=""

对 bootstrap.css 全局变量 :root{} 加入了 gray-100, gray-200...

修正一处 hook 名字笔误:header_meta_before.htm

增加了几处 hook(收藏插件需要)

Xiuno 4.0.0 功能特性(2018/1/22)

前端全面升级到 Bootstrap 4 正式版,响应式布局,适配手机,平板、电脑。

JQuery 3.x

免费、收费插件系统

支持多语言,默认三种:简体、繁体、英文

支持 URL-Rewrite

支持 MySQL

支持各种 Cache:Memcached、YAC、Redis...

安全方面加强了参数的类型强制转换

性能方面优化了索引和缓存的粒度

默认上线了几套主题风格插件,供二次开发参考

Xiuno 4.0 beta 5 发布 (最后更新:2017/4/8)

功能增强

此次更新主要在主程序上增加了 2 个功能:

  • 增加了“引用”功能。
  • 后台增加批量管理帖子。
  • 延长了默认保持登陆时间。
  • 其他的一些优化和改进。
  • 改进插件目录打包,增强了后台插件安装的稳定性。
  • 论坛 CSS 全面采用 SCSS 编写,方便更换风格。
  • 修正 route/user.php rand() 笔误。
  • 修正后台导航菜单颜色
  • 支持已读未读插件 2016/10/14
  • 修正 redis 缓存 2016/10/29
  • 主题关闭后,不允许编辑删除 2016/10/31
  • 修正 xn_html_safe() PHP7 某些版本下的兼容问题 2017/1/10
  • 修正文件上传 upload/tmp 目录被删除后不存在的问题 2017/4/8
  • 修正在某些环境下的安装报 Notice 2017/6/21
  • 安装程序在数据库不存在时自动尝试创建 2017/6/27

【beta4 -> beta5 需要执行 SQL】

# 改为你自己的账号密码和数据库名。
mysql -uroot -proot

use xiuno4
DROP TABLE IF EXISTS bbs_queue;
CREATE TABLE bbs_queue (
  queueid int(11) unsigned NOT NULL default '0',	# 队列 id
  v int(11) NOT NULL default '0',			# 队列中存放的数据,只能为 int
  expiry int(11) unsigned NOT NULL default '0',		# 过期时间,默认 0,不过期
  UNIQUE KEY(queueid, v),
  KEY(expiry)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
ALTER TABLE bbs_post ADD COLUMN quotepid int(11) NOT NULL default '0';
	

Xiuno 4.0 beta 4 2016/9/8

主要为插件完善和细节修复,稳定性增强。

更新

  • 搜索插件支持 sphinx 搜索,MySQL FullText 搜索
  • 支持 IE11+ 直接粘贴 WORD 内容(图片自动上传)
  • 支持编辑器上传图片显示进度条
  • 安装支持 innodb / myisam 选择
  • 修正 PHP7 下的插件下载解压缩错误
  • 修正 SMTP 设置为空的时候出错

Xiuno beta3 -> beta4升级方法

覆盖程序,清空 plugin 目录,清空 tmp 目录,重新安装插件(只要不点击卸载,数据不会丢失)。

Xiuno 4.0 beta3 2016/8/25

beta3 跟进了 Bootstrap 4.0-alpha3 的升级,JQuery 升级到 3.1。

改进

  • 支持了 yac 缓存,针对 PHP7 进一步优化。
  • MySQL 引擎默认支持 innodb。
  • 优化了 tag 的效率,thread 表缓存了 tagids。
  • 增加全文搜索功能。
  • 修正百度编辑器插入的优酷视频手机无法播放,后端对 iframe 安全过滤
  • 修正一些小的 BUG
  • 兼容 360 极速模式

Xiuno beta2 -> beta3升级方法

覆盖程序,清空 plugin 目录,清空 tmp 目录,重新安装插件(只要不点击卸载,数据不会丢失)。

Xiuno 4.0 beta2

beta2 改进了插件机制,所有生成的文件全放放置于 tmp/src 目录,类似于 Xiuno BBS 2.1 的插件机制,这对于插件开发者来说会非常的方便

Xiuno 4.0 RC

2016年,Xiuno BBS 4.0 RC 发布!

https://bbs.xiuno.com/thread-12884.htm

Xiuno 3.0

2015年,3.0发布,这个版本是一个过渡版本,建议直接升级到4.0

Xiuno 2.0

2012年, Xiuno BBS 2.0 发布,2.0彻底重构,可以认为跟1.0是两个完全不同的产品!2.1是这个版本的最新版,安全,稳定,有众多的插件可用,直到现在,还有相当多的2.1在运行。

Xiuno 1.0

2010年 Xiuno BBS 1.0 发布。从一开始发布,Xiuno的速度和负载即牛B得一塌糊涂。

我感觉挺好的,程序体较小,不像discuz的x系列那样臃肿,速度很快。
并且新增的插件功能,想增加什么功能自己增加就好。即保证了小巧,速度快、简洁的特点,也保证了能满足大众需求。
期待插件越来越多,就像chrome那样,自己就是个壳子,外加更多的插件,功能能无限延伸。

yajeed 来自 知乎

个人很喜欢Xiuno,3.0之前定位是小众论坛程序,4.0似乎开始转型,准备大众化。
以前作者只做最基本的论坛功能,其他功能基本都是用户自己动手。

野生虾米菌 来自 知乎

的确做到了小巧、精悍 。好程序值得使用

毛平平 来自 知乎

Copyright © 2002-2017 SEO中文网 版权所有