Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/35.211.77.66) is not within the allowed path(s): (/www/wwwroot/35.211.77.66/blog.tkzyz.com/:/tmp/) in /www/wwwroot/35.211.77.66/blog.tkzyz.com/wp-content/plugins/qqworld-collector/qqworld-collector.php on line 14

Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/35.211.77.66) is not within the allowed path(s): (/www/wwwroot/35.211.77.66/blog.tkzyz.com/:/tmp/) in /www/wwwroot/35.211.77.66/blog.tkzyz.com/wp-content/plugins/qqworld-collector/qqworld-collector.php on line 14

Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/35.211.77.66) is not within the allowed path(s): (/www/wwwroot/35.211.77.66/blog.tkzyz.com/:/tmp/) in /www/wwwroot/35.211.77.66/blog.tkzyz.com/wp-content/plugins/qqworld-collector/qqworld-collector.php on line 14
Discuz更换域名更换ID当做新站的迁移的教程 - 测试

Discuz更换域名更换ID当做新站的迁移的教程

Discuz迁移教程

一、上传

将主程序和数据库上传至服务器,解压并部署

二、核心配置文件

需要修改以下三个文件:

  • /config/config_global.php:主要修改数据库连接信息

  • /config/config_ucenter.php:修改数据库连接信息和 UCenter 相关设置

  • /uc_server/data/config.inc.php:修改 UCenter 自身的数据库连接信息

每个文件需要修改的具体内容如下:

/config/config_global.php

// 修改数据库信息
$_config['db']['1']['dbhost'] = 'localhost'; // 数据库服务器地址
$_config['db']['1']['dbuser'] = '新数据库用户名';
$_config['db']['1']['dbpw'] = '新数据库密码';
$_config['db']['1']['dbname'] = '新数据库名';
// 修改cookie作用域(如果更换了域名)
$_config['cookie']['cookiedomain'] = '.新域名.com'; // 注意前面有个点[reference:11]

/config/config_ucenter.php

// 1. 修改数据库信息
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', '新数据库用户名');
define('UC_DBPW', '新数据库密码');
define('UC_DBNAME', '新数据库名');
// 【重要】修改表前缀,务必包含新的数据库名
define('UC_DBTABLEPRE', '`新数据库名`.pre_ucenter_');[reference:12][reference:13]
// 2. 修改UCenter访问地址
define('UC_API', 'http://新域名/uc_server');[reference:14]
// 3. 修改通信密钥(与UC_KEY保持一致)
define('UC_KEY', '与你后面在UCenter后台设置的一致');

/uc_server/data/config.inc.php

// 修改数据库信息
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', '新数据库用户名');
define('UC_DBPW', '新数据库密码');
define('UC_DBNAME', '新数据库名');
// 修改通信密钥(与上面UC_KEY保持一致)
define('UC_KEY', '与你前面在config_ucenter.php设置的一致');

三、修改UC

这步操作是为了确保 Discuz! 与 UCenter 能正常通信

  • 目的UC_KEY 是 Discuz! 和 UCenter 之间传输信息的加密密钥,必须完全一致才能正常通信。复制站点时如果保留原密钥,虽然能通信,但会让新旧两个站点的密钥相同,存在安全隐患。最佳实践是为每个新站点生成一个新密钥

  • 操作:这需要同时修改三个地方,并保持一致

    1. 配置文件:修改新站点根目录下 /config/config_ucenter.php 文件中的 define('UC_KEY', '...')

    2. UCenter 后台:登录新站点的 UCenter 后台(http://新域名/uc_server),在“应用管理”中编辑 Discuz! 应用,将“通信密钥”修改为和配置文件中一致的值

    3. Discuz! 后台:登录新站点的 Discuz! 后台(http://新域名/admin.php),在“站长”->“UCenter 设置”中,将“通信密钥”也修改为同一个值

  • 验证:修改完成后,在 UCenter 后台的应用管理中,如果显示“通信成功”,就代表设置正确了

四、 数据库内部修改

修改完配置文件,网站可以运行了,但数据库里可能还记录着旧域名,导致页面跳转异常

  • 替换旧域名(可选但推荐):如果帖子内容、用户头像等字段里还硬编码了旧域名,可以通过SQL命令批量替换。操作前务必备份数据库!

-- 示例:替换帖子内容中的旧域名
UPDATE pre_forum_post SET message = REPLACE(message, '旧域名.com', '新域名.com');
-- 示例:替换用户头像路径中的旧域名
UPDATE pre_common_member SET avatar = REPLACE(avatar, '旧域名.com', '新域名.com');

后台设置 (必须操作)

登录新站后台 (http://新域名/admin.php),在“全局”->“域名设置”->“应用域名”中,将默认域名修改为新域名

4. 服务器环境与伪静态 (按需调整)

  • 伪静态规则:如果“胚子站”开启了伪静态,新服务器也需要配置相同的伪静态规则

  • 目录权限:确保 /data/config 等目录拥有正确的读写权限(通常为www755,root755部分无法使用)

五.“重置”网站ID

如果更换应用中心id请按好这个来

“重置”网站ID:修改 siteuniqueid

  • 清空站点唯一ID (siteuniqueid):在数据库 pre_common_setting 表中,将 skey 为 siteuniqueid 的 svalue 值清空。这样新站就能在应用中心重新注册,获得全新身份

通过修改数据库的 siteuniqueid 来让应用中心重新生成一个全新的网站ID。但这同样会彻底抛弃旧的身份和所有授权,仅适用于你想完全重置应用中心(比如网站因盗版被官方屏蔽)的情况。

操作步骤如下

  1. 通过 phpMyAdmin 等工具进入数据库。

  2. 找到pre_common_setting表(注意表前缀)。

  3. 搜索skeysiteuniqueid的记录

  4. 编辑该记录的svalue字段,将其清空或改为一个随机值。(清空后不会自动生成)

  5. 保存后,在论坛后台“工具”里“更新缓存。(不更新的话不会生效)

  6. 重新进入应用中心,系统就会自动为你生成一个全新的网站ID

考虑使用SQL语句:如果手动编辑无效,可以尝试在后台“站长”->“数据库”->“升级”中,或通过phpMyAdmin的SQL执行栏,直接执行以下SQL语句(请将表前缀pre_替换为你自己的):

UPDATE `pre_common_setting` SET `svalue` = '' WHERE `skey` = 'siteuniqueid';

再次提醒:重置网站ID意味着会丢失所有已购买应用的授权,请务必确认这是你需要的操作

补充:清空skey的数值后不会自动生成,建议修改只要修改一个字符然后去后台更新缓存即可成功。

如果你对Discuz后台比较熟悉,这个方法最快,不用在phpMyAdmin里翻找。

操作步骤

1.进入Discuz后台,在“站长” -> “数据库” -> “升级”页面

2.在“SQL语句”框中输入以下命令(注意将表前缀pre_换成你自己的):

UPDATE `pre_common_setting` SET `svalue` = '' WHERE `skey` = 'siteuniqueid';

3.点击“提交”执行。
4.去“工具” -> “更新缓存”。
优点:无需额外工具和文件,直接在后台操作,非常快捷。

缺点:需要手动输入SQL语句,输错可能有风险;且部分虚拟主机可能屏蔽了后台执行SQL的功能。

phpMyAdmin 找到数据表并修改 通用性强,不受主机限制 步骤相对繁琐,需要在一堆数据中查找
后台执行SQL 输入一行SQL代码 最快捷,无需额外工具 需要输入代码,部分主机可能不支持

六、为了让你更清晰地把握重点,这里再梳理一下

1.普通迁移完全不需要修改任何文件,原封不动的上传解压,网站和数据库全部原本不动、不改任何名称

2.如果觉得秘钥或者数据库有泄露不安全,可以按照上面除第五步外操作。

3、如果是胚子程序,也就是你不想每次都搭建dz站点,想把以前的空站程序直接拿来当新站用,需要把以上步骤全部操作一遍,包括第五步。

给TA打赏
共{{data.count}}人
人已打赏
技术

关闭WordPress自动保存文章功能

2026-7-20 17:23:08

笔记

Docker装的Mysql数据库和普通应用商店装的Mysql数据库有什么区别?

2026-8-15 2:00:53