DedeCMS 本身并没有一个叫做“在线演示”的、独立的后台开关或功能模块。
你所说的“在线演示”功能,实际上是指 DedeCMS 内置的一套“站点克隆”或“站点生成”系统,它的核心作用是,允许你在后台一键生成一个与主站结构、栏目、文章、模型等完全相同的测试站点。
这个功能的主要目的不是给访客看,而是给网站开发者、站长提供一个安全的“沙盒环境”,用于:
- 测试功能:在不影响主站的情况下,测试新插件、新模块或新功能。
- 验证升级:在升级 DedeCMS 之前,先在演示站点上验证升级包的兼容性。
- 模板开发:安全地修改和调试网站模板,看效果无误后再应用到主站。
- 数据备份与恢复演练:可以练习数据导入导出,而不担心损坏主站数据。
在哪里找到这个功能?
这个功能位于 DedeCMS 后台的 “系统” -> “SQL命令行工具” 页面中。
具体路径是:
- 登录你的 DedeCMS 后台。
- 在左侧菜单栏找到并点击 “系统”。
- 在下拉菜单中选择 “SQL命令行工具”。
进入这个页面后,你会在页面的下方或某个区域找到相关的执行代码。
如何使用“在线演示”功能(生成测试站点)?
操作的核心是执行几条预设的 SQL 语句,下面是详细的步骤和代码示例。
重要提示: 在执行任何 SQL 操作前,强烈建议你先备份整个网站数据库和网站程序!这是防止操作失误导致数据丢失的唯一有效方法。
步骤 1:备份(必须!)
- 备份数据库:在后台“系统” -> “数据库备份/恢复”中进行。
- 备份网站文件:通过 FTP 或主机控制面板将整个网站文件下载到本地。
步骤 2:准备新站点的目录
- 通过 FTP 将你的网站主程序复制一份,并重命名一个新的目录,
demo。 - 确保这个新目录有可写权限(
cache,data,uploads等目录)。
步骤 3:执行 SQL 命令
- 进入后台的 “系统” -> “SQL命令行工具” 页面。
- 在下方的“命令查询”文本框中,逐条或合并输入以下 SQL 代码。
核心 SQL 代码:
-- 1. 创建一个新的数据库前缀(原来的前缀是 `dede_`,新前缀可以是 `demo_`)
-- 这一步很重要,可以避免和主站数据冲突。
SET @newprefix = 'demo_';
-- 2. 克隆所有以 'dede_' 开头的表,并将新表名前缀替换为 'demo_'
-- 这条命令会找出所有以你的旧前缀开头的表,并创建一份副本。
SET @tables = (SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE 'dede\_%');
SET @sql = CONCAT('CREATE TABLE ', @newprefix, ' LIKE dede_arctype;'); -- 先创建一个表结构作为示例,然后循环创建所有表
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 更推荐使用循环来创建所有表,更安全可靠
SET @oldprefix = 'dede_';
SET @sql = NULL;
SELECT GROUP_CONCAT(CONCAT('CREATE TABLE ', @newprefix, SUBSTRING(TABLE_NAME FROM LENGTH(@oldprefix) + 1), ' LIKE ', TABLE_NAME) SEPARATOR ';') INTO @sql
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE CONCAT(@oldprefix, '%');
SET @sql = CONCAT(@sql, ';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 3. 将旧表的数据复制到新表中
SET @sql = NULL;
SELECT GROUP_CONCAT(CONCAT('INSERT INTO ', @newprefix, SUBSTRING(TABLE_NAME FROM LENGTH(@oldprefix) + 1), ' SELECT * FROM ', TABLE_NAME) SEPARATOR ';') INTO @sql
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE CONCAT(@oldprefix, '%');
SET @sql = CONCAT(@sql, ';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 4. 更新新站点中需要修改的关键配置信息
-- a. 更新站点配置信息 (dede_sysconfig)
UPDATE demo_sysconfig SET value = '演示站点名称' WHERE varname = 'cfg_webname';
UPDATE demo_sysconfig SET value = 'http://www.yourdomain.com/demo' WHERE varname = 'cfg_basehost';
-- b. 更新后台管理目录的入口文件 (通常是 dede/login.php)
-- 这一步是为了防止新站点的后台入口和主站冲突,通常需要手动修改。
-- 你可以在新站点的 `demo` 目录下,将 `dede` 文件夹重命名为 `demo_dede`。
-- c. 更新栏目和文章中的绝对链接(如果需要)
-- 这一步比较复杂,取决于你的网站结构,通常需要根据实际情况编写 SQL 来替换。
-- UPDATE demo_archives SET body = REPLACE(body, 'http://www.yourdomain.com', 'http://www.yourdomain.com/demo');
-- 5. 完成!现在你可以通过浏览器访问你的演示站点了。
-- 访问地址:http://www.yourdomain.com/demo
-- 后台地址:http://www.yourdomain.com/demo/demo_dede/login.php
-- 用户名密码和主站相同。
如何执行:
- 你可以将上面的代码一次性复制到 SQL 命令行工具的输入框中,然后点击“查询”或“执行”按钮。
- 系统会逐条执行这些命令,完成后,你的
demo数据库中就会出现一整套全新的、与主站结构相同的表和数据。
步骤 4:访问和配置演示站点
- 前台访问:通过浏览器访问
http://www.yourdomain.com/demo。 - 后台访问:访问
http://www.yourdomain.com/demo/dede/login.php(如果你的后台目录没有被重命名)。 - 修改配置:登录演示站点后台后,你可能还需要手动检查并修改一些配置,
- 网站名称:在“系统” -> “系统基本参数”中修改。
- 网站路径:确保路径正确。
- 数据库配置:如果演示站点和主站在同一台服务器上使用不同的数据库,需要修改
/demo/include/config_base.php文件中的数据库连接信息。
重要注意事项和局限性
- 数据量问题:如果你的主站数据量非常大(比如几十万篇文章),执行这个克隆操作可能会非常耗时,并且对服务器数据库造成较大压力,对于大型站点,建议使用专业的数据库工具(如 phpMyAdmin)进行导出和导入,而不是依赖这个方法。
- 绝对路径问题:如果你的文章内容或模板中包含了硬编码的绝对路径(如
http://www.yourdomain.com/uploads/...),这些链接在演示站点上会失效,你需要手动执行 SQL 语句来替换这些路径,或者确保你的网站配置使用相对路径。 - 服务器权限:执行这些 SQL 命令需要你的数据库用户有
CREATE TABLE和INSERT权限,虚拟主机提供的数据库用户权限是足够的。 - 这不是“预览”功能:这个功能生成的是一个功能完整、数据独立的真实站点,而不是一个简单的模板或样式预览,它包含了所有数据和功能。
- 安全性:演示站点如果暴露在公网上,也具有和主站相同的管理员密码,请确保不要在演示站点上进行任何涉及用户隐私或敏感数据的操作,并且测试完毕后最好及时关闭或删除它。
DedeCMS 的“在线演示”功能,本质上是其强大的 SQL 命令行工具的一个高级应用,通过执行预设的 SQL 脚本来快速克隆整个站点,它是一个为开发者量身打造的、非常实用的测试环境搭建工具,而不是一个面向普通访客的演示功能,掌握它的使用方法,可以大大提高 DedeCMS 网站的开发和维护效率。
