迁移前准备
-
获取所有必要信息:
(图片来源网络,侵删)- 旧服务器:FTP/SFTP主机地址、用户名、密码;数据库主机地址、数据库名、数据库用户名、数据库密码。
- 新服务器:FTP/SFTP主机地址、用户名、密码;数据库主机地址、数据库名、数据库用户名、数据库密码(如果新主机还没有数据库,需要先创建);新的域名解析地址。
-
检查新旧服务器环境兼容性:
- PHP版本:确保新服务器的PHP版本与旧服务器兼容(或织梦CMS要求的版本),织梦较老版本可能对PHP 7.4+有兼容性问题,新版本则要求更高。
- MySQL/MariaDB版本:确保数据库版本兼容。
- 扩展模块:检查新服务器是否启用了织梦所需的PHP扩展,如
mysqli,gd,curl,zip,openssl等。 - 目录权限:了解新服务器Web用户(通常是
www-data,nginx,apache)对网站目录的权限要求。
-
准备织梦安装包:
- 强烈建议:去织梦官网下载一个与您当前网站完全相同版本的织梦安装包,这比直接复制旧文件更可靠,可以避免因旧文件损坏或权限问题导致的麻烦。
详细迁移步骤
第一步:备份旧服务器数据
这是最关键的一步,请务必备份完整!
-
备份数据库:
(图片来源网络,侵删)- 登录您的旧服务器控制面板(如 cPanel, Plesk)或使用phpMyAdmin。
- 选择您的织梦数据库。
- 选择“导出”功能。
- 选择“快速”或“自定义”模式,在自定义模式下,确保勾选了“
结构”和“数据”。 - 格式选择“SQL”,然后点击“执行”。
- 将下载到的
.sql文件保存到您的本地电脑上。
-
备份数站文件:
- 使用FTP/SFTP客户端(如 FileZilla)连接到旧服务器。
- 下载整个网站根目录下的所有文件和文件夹(通常包括
dede,include,plus,static,templets,uploads以及index.php,default.php等核心文件)。 - 将这些文件压缩成一个
.zip或.tar.gz文件,保存到本地。
提示:为了安全,建议您同时备份
data目录(如果存在)和/dede/目录下的config.php文件。config.php包含了数据库连接信息,非常有用。
第二步:上传文件到新服务器
-
清空新服务器空间:
通过FTP/SFTP连接到新服务器,删除默认的测试页面或任何旧文件,确保根目录是干净的。
(图片来源网络,侵删) -
上传网站文件:
- 将第一步中备份的网站压缩包,通过FTP/SFTP上传到新服务器的网站根目录。
- 上传完成后,在本地解压,然后确保所有文件和文件夹都已正确放置在根目录下,或者,直接上传解压后的文件夹内容。
-
调整文件权限:
-
登录新服务器控制面板,或使用SSH连接,执行以下命令来设置正确的权限(这是织梦网站正常运行的关键):
# 将 /path/to/your/website 替换为您网站的绝对路径 # 设置目录权限为 755 find /path/to/your/website -type d -exec chmod 755 {} \; # 设置文件权限为 644 find /path/to/your/website -type f -exec chmod 644 {} \; # 特别重要的目录权限设置为 777 # 注意:生产环境中应谨慎使用777,迁移完成后可改回755 chmod -R 775 /path/to/your/website/uploads chmod -R 777 /path/to/your/website/data chmod -R 777 /path/to/your/website/templets chmod -R 777 /path/to/your/website/dede
-
第三步:导入数据库并修改配置
-
在新服务器创建数据库:
- 登录新服务器的控制面板,创建一个新的数据库和一个新的数据库用户,并为该用户授予对新数据库的所有权限,记下数据库名、用户名和密码。
-
修改配置文件:
- 用文本编辑器打开您上传到新服务器的
/dede/config.php文件。 - 修改以下信息,使其与新服务器的数据库信息一致:
//数据库连接信息 $cfg_dbhost = 'localhost'; // 或新数据库的主机地址 $cfg_dbname = 'new_db_name'; // 新数据库名 $cfg_dbuser = 'new_db_user'; // 新数据库用户名 $cfg_dbpwd = 'new_db_password'; // 新数据库密码 $cfg_dbprefix = 'dede_'; // 保持不变,除非您在创建时自定义了 $cfg_db_language = 'gbk'; // 或 'utf-8',保持与旧站一致
- 保存并上传这个修改后的
config.php文件。
- 用文本编辑器打开您上传到新服务器的
-
导入数据库:
- 登录新服务器的phpMyAdmin。
- 选择您刚刚创建的新数据库。
- 点击“导入”选项卡。
- 选择您在第一步中备份的
.sql文件,然后点击“执行”。
第四步:更新网站绝对路径
织梦CMS在数据库中存储了大量网站的绝对路径,这是导致迁移后网站无法显示(如图片不显示、后台登录后空白)的最常见原因。
使用织梦后台的“数据库备份与恢复”功能(推荐)
- 临时将您的域名解析到新服务器的IP地址,并等待DNS生效(可以使用
ping命令检查)。 - 访问您的织梦后台
http://your-new-domain.com/dede/。 - 登录后,进入“系统” -> “数据库备份与恢复”。
- 在“数据还原”部分,点击“一键更新网站缓存”或类似功能的按钮,在较新版本的织梦中,这个功能通常被称为“数据校验修复”或“更新系统缓存”,它会自动扫描数据库并替换旧的路径。
- 如果没有一键功能,则需要手动执行SQL语句(见方法二)。
手动执行SQL语句(如果后台没有一键功能)
-
登录新服务器的phpMyAdmin,选择您的数据库。
-
点击“SQL”选项卡,在输入框中执行以下几条SQL语句(请务必将
your-old-domain.com替换为您的旧域名,your-new-domain.com替换为新域名):-- 更新网站主页路径 UPDATE `dede_homepage` SET `templet` = REPLACE(`templet`, 'your-old-domain.com', 'your-new-domain.com'); -- 更新栏目表中的模板路径 UPDATE `dede_arctype` SET `templet` = REPLACE(`templet`, 'your-old-domain.com', 'your-new-domain.com'); UPDATE `dede_arctype` SET `defaultname` = REPLACE(`defaultname`, 'your-old-domain.com', 'your-new-domain.com'); -- 更新文档表中的内容(如果内容里也包含绝对路径) UPDATE `dede_archives` SET `body` = REPLACE(`body`, 'your-old-domain.com', 'your-new-domain.com'); -- 更新配置表中的网站URL UPDATE `dede_sysconfig` SET `value` = REPLACE(`value`, 'your-old-domain.com', 'your-new-domain.com') WHERE `varname` = 'cfg_basehost';
注意:
dede_是默认的表前缀,如果您的网站使用了不同的前缀,请相应修改。
第五步:更新域名解析
- 确认新网站的所有功能都已正常(可以先用一个临时域名测试)。
- 登录您的域名注册商管理后台。
- 将域名的A记录或CNAME记录修改为新服务器的IP地址。
- 等待DNS生效,这通常需要几分钟到24小时,您可以使用
ping your-domain.com来检查是否已指向新IP。
第六步:最终测试与清理
- 前台测试:访问
http://your-domain.com,检查首页、栏目页、内容页、图片、链接等是否正常显示。 - 后台测试:访问
http://your-domain.com/dede/,尝试登录后台,检查各项功能是否正常。 - 清理工作:
- 如果之前为了方便设置了
777权限,现在请将uploads,data,templets,dede等目录的权限改回755,以提高安全性。 - 删除新服务器根目录下的
install文件夹,防止被恶意利用。 - 删除本地电脑上的所有备份文件。
- 如果之前为了方便设置了
常见问题与解决方案
-
问题1:网站打开空白,但后台能登录。
- 原因:通常是绝对路径没有更新成功。
- 解决:重新执行“第四步:更新网站绝对路径”中的SQL语句,确保所有路径都已替换。
-
问题2:图片无法显示,显示为红色叉号。
- 原因:图片路径错误,或
/uploads目录权限不正确。 - 解决:检查图片标签中的路径是否为相对路径(应如此),并确认
/uploads目录权限为755或775。
- 原因:图片路径错误,或
-
问题3:后台登录后跳转到空白页或旧域名。
- 原因:
dede/config.php中的数据库信息错误,或数据库中的缓存/配置信息未更新。 - 解决:检查
config.php文件,并确保在后台执行了“更新系统缓存”操作。
- 原因:
-
问题4:网站打开非常慢。
- 原因:可能是DNS解析问题,或新服务器配置较低,或数据库连接信息错误导致频繁连接失败。
- 解决:检查DNS,检查服务器负载,再次确认
config.php中的数据库信息无误。
遵循以上步骤,您应该能顺利完成织梦网站的迁移,祝您成功!
