帝国 CMS 整站搬家步骤

juming
juming 初级会员超兽战士
发布于 2026-10-08 18:48 ·1 浏览 ·0 回复

学完这篇,你能把一台服务器上的帝国CMS整站(程序+数据库+附件)完整搬到另一台服务器,做到文章不丢、图片不裂、后台能正常登录,换域名也不会出现死链。

下面按顺序操作,一步别跳。示例以帝国CMS 7.5 UTF-8 版、Linux 服务器为例。

第一步:在旧站后台备份数据库,拿到完整 SQL

先登录旧站后台,路径是 http://旧域名/e/admin/。进去后点顶部主菜单「系统」→ 左侧「备份与恢复数据」→「备份数据表」。在数据表列表里点「全选」,然后设置三个参数:备份目录保持默认(会在 e/data/backup/ 下自动生成一个日期命名的文件夹,请记下这个名字)、每卷大小填 1024、勾选「按十六进制方式备份」,最后点「开始备份」。执行完你会得到一个装满 .sql 分卷文件的目录。

注意:一定要勾「按十六进制方式备份」,不勾的话带中文的文章和字段在恢复时极易变成乱码,这是搬家翻车率最高的一步。

第二步:打包整站文件

把网站根目录整个打包。SSH 登录旧服务器,执行:

tar -czvf /tmp/empirecms_backup.tar.gz -C /www/wwwroot/你的站点目录 .

打包完成后,连同第一步的 e/data/backup/日期目录 一起下载到本地(用宝塔面板的文件管理器或 FTP/SFTP 都行)。

注意:附件目录 d/file/ 和缓存目录 e/data/ 必须包含在内,很多人只拷程序文件,结果搬完后文章图片全挂。

第三步:上传到新服务器并解压

把压缩包上传到新服务器的网站根目录,解压。确认新环境的 PHP 版本与旧站一致(帝国CMS 7.5 建议 PHP 7.0~7.4),MySQL 版本差异不要跨大版本(5.6→8.0 要先在旧站导出兼容模式)。

解压命令:

cd /www/wwwroot/新站点目录 && tar -xzvf empirecms_backup.tar.gz

第四步:新建数据库并改配置文件

先在宝塔/命令行里建一个空数据库(字符集选 utf8,和旧站保持一致)。然后编辑 e/config/config.php,找到数据库配置段,改成新库的信息:

$ecms_config['db']['dbhost']='localhost';
$ecms_config['db']['dbport']='3306';
$ecms_config['db']['dbuser']='新库用户名';
$ecms_config['db']['dbpassword']='新库密码';
$ecms_config['db']['dbname']='新库名';
$ecms_config['db']['usedbtype']='mysql';
$ecms_config['db']['dbchar']='utf8';

注意:dbchar 必须和数据库字符集一致。旧站是 GBK、新库建成 UTF8,导入后全是乱码,这种错误无法靠刷新页面救回来。

第五步:导入数据库

命令行导入最稳,按备份文件的编号顺序执行:

mysql -u新库用户名 -p 新库名 < e/data/backup/日期目录/1.sql

有多个分卷就依次 2.sql、3.sql……全部导完。也可以在后台「系统」→「备份与恢复数据」→「恢复数据表」里点「恢复」,但大站容易超时,优先用命令行。

导入完成后访问 http://新域名/e/admin/,用原来的管理员账号密码登录。

第六步:改网站地址并批量替换域名

登录后台,点「系统」→「系统设置」→「网站参数设置」→「基本设置」,把「网站地址」改成新域名,保存。

接着点「系统」→「数据表与系统模型」→「批量替换字段值」,把旧域名 http://旧域名 替换成 http://新域名。至少要对这几张表做替换:phome_ecms_news(字段 newstext、titlepic)、phome_enewsfile_1、phome_enewsfile_2(字段 filepath)、phome_enewspage。

注意:如果只是换服务器、域名没变,第六步可以整步跳过,别做多余替换。

第七步:设权限、刷缓存、测全站

给缓存和附件目录写权限:

chmod -R 755 e/data d/file
chown -R www:www e/data d/file

然后回后台点「系统」→「数据更新中心」→「刷新所有页面」,再点「更新缓存」。最后随机打开 5~10 篇文章、栏目页、搜索页,确认图片显示、URL 正常、表单能提交。

如果旧站用了伪静态,把 .htaccess 或宝塔的 Nginx 伪静态规则重新贴到新站,别漏。

小结

  • 备份数据库时勾「按十六进制方式备份」,是防乱码的关键。
  • 打包必须包含 d/file/ 附件目录和 e/data/ 缓存目录。
  • e/config/config.php 里的 dbchar 要和数据库字符集一致。
  • 换域名后要走「批量替换字段值」,把正文和附件路径里的旧域名换掉。
  • 最后别忘了恢复目录权限、刷缓存、重建伪静态规则。
版权声明:本文来自 GJ站长论坛《帝国 CMS 整站搬家步骤》
原文链接:https://www.gj0.com/thread-1109.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~