内核共享功能

注意:AKCMS已于2019年12月27日宣布停止更新,此文档仅供老用户参考,不建议新用户选择AKCMS建站。
注意:AKCMS6.1.2已取消授权机制,文档中关于授权、服务、技术支持等的内容均已失效。

肯德基有一个优惠活动是第二杯饮料可享受半价(第三杯全价、第四杯半价……依此类推)与AKCMS的下面这个特性相比,肯德基的优惠真是弱爆了。

说来话长。

有这样一批站长,他们手里有大量的网站(俗称站群),虽然每个网站的访问量可能并不高,但大量网站集合起来也有很可观的流量。他们对CMS的要求是:

一 方便集中维护。网站太多了任何简单的维护工作的工作量都被成十倍百倍得放大,比如一个简单的系统升级操作,即便是AKCMS的一键升级这么简单,也得至少花5分钟时间。5分钟时间似乎并不长,如果100个站呢?不吃不喝8个多小时!

二 CMS本身不要占太大空间。因为网站太多,空间的成本也成倍增加。无论是一台独立主机挂全部网站还是虚拟主机(支持多域名的那种)挂部分网站都是如此。AKCMS都这么小了,解压缩后还占用1MB空间呢,常见的某梦CMS解压缩后光upload文件夹就20MB!如果100个站呢?光CMS就占去了2GB(不含网站的数据,仅仅是程序就2GB)

AKCMS4.1新增的内核共享功能可以很好得满足这种需求:

在一台服务器上搭建的多个AKCMS站点可以共享一个AKCMS内核,这样的好处是:

一 维护方便,不管多少个站,程序升级只需一次(数据的升级未来会有批量脚本,也只需一次),也就是说:5分钟×100=5分钟
二 不占空间,不管多少个站,只需要一个AKCMS内核(解压缩后1MB),也就是1MB×100=1MB

所以,我觉得肯德基的第二杯半价真是弱爆了

具体做法如下:

在主机上搭建第一个站作为主站,安装AKCMS标准版(1MB),与普通的AKCMS建站没有区别。

从第二个站开始就不需要标准版了,只需要两个小程序,一个是入口,一个是配置。配置中指明主站的目录和网址,入口通过调用主站程序进行网站管理。这两个小文件加起来不足1KB,这就是新建一个站点在程序上需要的全部了。

配置文件放在configs/config.inc.php中,内容这样写:

<?php
$core_root = 'D:/www/akcms/';
$core_url = 'http://www.akhtm.com/akcms/';
?>

以上内容需要根据自己服务器的情况修改,解释如下:
$core_root代表内核的目录,安在哪个目录就写哪个目录,如果是Windows下需要把“\”转换成“/”,另外目录的最后需要加上斜线“/”
$core_url代表内核的网址,调用jquery、图片等资源时需要这个地址,网址的最后也需要带上斜线“/”

入口文件也很简单,放在index.php中,内容这样写:

<?php
if(!file_exists('configs/config.inc.php'))exit;
require_once 'configs/config.inc.php';
if(!isset($core_root))$core_root = './';
define('CORE_ROOT', $core_root);
define('AK_ROOT', substr(__FILE__, 0, -9));
include(CORE_ROOT.'index.php');
?>

以上内容无需修改,就不多做解释了。

目前这个功能还在测试阶段,还只能手动创建这两个文件,未来会在主站后台中通过可视化界面方便创建多个子站。

注:本文说的空间占用是指CMS程序自身的占用,不含内容数据。内容数据占用的空间因内容多少而不同,未统计在内。

此功能尚未正式发布,仅提供论坛预览:

http://bbs.akhtm.com/viewthread.php?tid=2866