讯睿CMS多个网站共用一套迅睿框架内核

使用场景

当同一台服务器部署多套迅睿 CMS 站点时,每套站点独立升级框架会非常繁琐。可以将迅睿框架核心文件抽离为公共内核目录,所有站点统一引用;后续升级框架,仅需要更新这一份公共内核目录即可,大幅降低维护成本。

站点常规目录结构示例(入口文件为public/index.php,无需额外分离首页):

/www/站点1/public/index.php
/www/站点2/public/index.php
/www/站点3/public/index.php
/www/站点4/public/index.php
/www/站点5/public/index.php

操作步骤

  1. 创建公共框架目录 在服务器建立公共内核目录,示例路径:
/www/dayrui/

将官方安装包内完整的dayrui目录全部复制到此路径;目录名称可根据实际业务自定义。

  1. 修改站点入口文件 public/index.php 以站点 1 为例,文件路径:/www/站点1/public/index.php

在程序执行代码的前方,新增以下常量定义代码:

//=======结束,安装之后可以删除此段代码
define('MYPATH', dirname(dirname(__FILE__)).'/dayrui/My/'); // 当前站点私有程序目录
define('APPSPATH', dirname(dirname(__FILE__)).'/dayrui/App/'); // 当前站点私有插件目录
define('TPLPATH', dirname(dirname(__FILE__)).'/template/'); // 当前站点模板目录

// 以下两个为可选配置,用于共享后台CSS样式资源
define('THEME_PATH', '站点1的域名/static/');
define('ROOT_THEME_PATH', THEME_PATH);

// 执行主程序

修改原有框架路径常量:

// 指定公共框架核心目录
define('FCPATH', '/www/dayrui/');
// 当前站点缓存目录(独立,每个站点隔离)
define('WRITEPATH', dirname(dirname(__FILE__)).'/cache/');
// 当前站点配置目录(独立,每个站点隔离)
define('CONFIGPATH', dirname(dirname(__FILE__)).'/config/');
  1. 验证站点访问 保存文件后访问站点 1 首页,页面正常打开无报错,代表配置生效。
  2. 清理站点本地框架文件 删除站点本地的核心框架目录,保留站点私有业务目录: 删除:
/www/站点1/dayrui/Fcms/
/www/站点1/dayrui/ThirdParty/

⚠️ 重要:dayrui/Mydayrui/App 两个目录禁止删除,属于站点私有业务、插件数据。

  1. 处理 user.ini 文件 删除站点下的user.ini,或者修改文件内容,增加公共框架目录的访问权限。
  2. 其余站点批量配置 其他站点重复执行第 2‑5 步,完成全部站点对接公共内核。

补充注意事项

  1. 公共内核目录需要保证所有站点都具备可读权限;cache、config、template、My、App 为每个站点独立目录,互不干扰。
  2. 升级程序时,只更新公共/www/dayrui/目录,各站点私有目录不要覆盖。
  3. 不建议二次开发修改公共内核目录下的源码,避免升级被覆盖,自定义逻辑请放在站点私有My目录。
上一篇 关于讯睿CMS 安装二级目录的问题