Carbon Forum - 高性能PHP论坛


Apache v2
跨平台
PHP

软件简介

Carbon Forum,一个高性能的、高安全性的、基于话题的PHP轻论坛。
优秀的架构,高效的代码,每个页面平均执行时间仅为1~5毫秒,同时恰当地使用异步加载技术,在SEO与用户体验间取得平衡。
论坛摒弃了版块、节点等概念,发帖时无需选择板块,系统根据帖子内容自动推荐话题供用户选择,并且有功能强大而不显冗余的富文本编辑器。
支持关注用户、关注话题等功能,可以作为一个社交网站使用。

安装环境要求:
PHP版本高于5.3.6,并打开PDO_MYSQL(PHP 5.3以上默认支持PDO_MySQL,如果不支持请联系服务商)
支持.htaccess文件的解析(即Apache mod_rewrite或IIS ISAPI_Rewrite)

V3.6.5主要更新日志如下:

  • 支持通过邮件找回密码

  • 移动版重构

  • 移动版提升了滑动性能

  • 移动版支持拍照上传与图片上传

  • 移动版发帖回帖新增Markdown语法支持

  • 移动版加载速度提升

  • 移动版UI优化

  • 移动版实时消息推送(在内核Chromium 42+的手机浏览器上可以收到通知栏推送)

  • 提升了移动版对WP 8和iOS 7以下操作系统手机的兼容性

  • 支持QQ、微博、GitHub账号自动注册登陆

  • 已注册用户可以绑定以上社交账号并以该账号登陆

  • 支持Xcache k-v缓存

  • 新增话题广场

  • 话题页新增Icon与话题描述,管理员可以修改

  • 修复某种情况下会出现的编辑功能的一些界面上的bug

  • 改动权限:普通用户不可编辑自己的帖子

  • 主题页和点击量新增内存缓存,提升性能

  • 用户可以在发帖后再次修改话题

  • 注册时实时提示用户名是否可用

  • 提升了12年前发布的IIS 6及以下版本IIS的兼容性,修正了某些情况下可能出现的问题

  • 新增sphinx全文搜索功能(@virteman 贡献代码)

  • 添加dockerfile(@virteman 贡献代码)

  • 登陆时实时提示用户名是否有效

  • 提升了@ 功能的容错性

  • 后台添加了推送间隔设置功能

  • 后台添加了刷新统计数据的按钮

V3.3.6主要更新日志如下:

实时消息推送

考虑PHP的限制与浏览器兼容性,最终选择了Long
poll来实现实时的消息推送。用户可以自行调整长连接时长,建议调成120s(PHP最大超时时间也要相应修改)。
这个性能也相当不错,在开启Memcached的情况下,一台最低配的DO VPS大概可以承受50000人在线同时接受推送
,换好一点的独立服务器可以更多。当然,50000人在线是足够绝大多数论坛使用的了。
同时使用了HTML5的Notification API,即使网页在后台被最小化,也可以继续推送通知,不受影响,让论坛变得像即时通讯工具一样高效。

全站异步加载

即使服务器在美国,也实现了每次从客户点击到浏览器完全渲染完毕,耗时在400ms以内(网络线路正常的情况下),同时除了jQuery与我自己的global.js,其他js均以异步方式载入,非阻塞。
并且搜索引擎友好性并没有降低,配合我之前做的Sitemap等SEO优化,保证了高收录

论坛历史数据统计

这是一个早就设计好的表了,这个版本把坑填上了,查看每天的新帖、总帖、新主题、总主题、新用户、总用户数量的变化。http://www.94cb.com/statistics
(官网有快10年的数据,全部展开的话,浏览器有近20000个点要渲染,可能会比较慢)

次要的

  • 繁体中文语言包加入(目前已支持简体中文、繁体中文、英语、波兰语)

  • 悬浮展示引用并回复的帖子的内容

  • SSL支持

  • 数十处细节修改

  • Timing attack防御


安装步骤:
1、解压后将Carbon-Forum-master文件夹内的文件上传至服务器,并确保服务器端程序所在目录可读可写。
2、运行http://你的域名/install 安装,安装完成后请手动删除install文件夹。
3、安装完成后第一个注册用户会自动成为管理员。
4、如果需要额外的话题建议拓展包,请登陆http://www.94cb.com/t/2199 下载
如果你觉得这个项目对你有用,请到Github(https://github.com/lincanbin/Carbon-Forum )上给本项目一个star。

升级步骤:
1、备份好数据库和upload文件夹,这点非常重要!如果没有备份,请不要继续升级!
2、将解压出来的所有文件(除了upload文件夹)替换进原网站目录
3、运行http://你的域名/update 按说明升级,升级完成后请手动删除install和update文件夹。