Magento 网站迁移完整图文教程
迁移 Magento 网站主要分为以下几个核心步骤:

- 准备工作:在新空间上配置好环境。
- 打包旧网站:下载旧网站的文件和数据库。
- 上传到新空间:将文件上传到新服务器。
- 导入数据库:在新空间上导入数据库。
- 修改配置:更新数据库中的域名等关键信息。
- 清理缓存:确保网站能正常访问。
- 最终检查:测试网站功能。
第一步:准备工作
在开始迁移之前,请务必完成以下准备工作:
-
获取新空间信息:
- FTP/SFTP 主机地址、用户名、密码
- 数据库主机地址、数据库名、用户名、密码
- 新的域名(如果更换了域名)
- 控制面板(如 cPanel/Plesk)登录地址
-
在新空间上创建数据库:
- 登录你的新空间控制面板(cPanel)。
- 找到“数据库”或“MySQL Database Wizard”等类似选项。
- 创建一个新的数据库,并记下数据库名。
- 为该数据库创建一个新的用户,并设置密码,记下用户名和密码。
- 将这个新用户“所有权限”授予到新创建的数据库中。
第二步:打包并下载旧网站文件
这一步的目的是将你当前网站的所有文件下载到本地电脑。

-
连接到旧空间:
- 使用 FTP 客户端(如 FileZilla、Xftp 等)连接到你的旧服务器。
- 输入旧空间的 FTP 主机地址、用户名和密码进行连接。
-
定位网站根目录:
- 连接成功后,进入网站的根目录,通常是
public_html、www或httpdocs。
- 连接成功后,进入网站的根目录,通常是
-
下载所有文件:
- 重要提示:由于 Magento 网站文件通常非常多,直接下载可能会很慢或失败,建议使用 压缩打包 的方式。
- 在 FTP 客户端中,选中根目录下的所有文件和文件夹(通常可以按
Ctrl+A)。 - 右键点击,选择“压缩”或“打包”选项,将其打包成一个
.zip或.tar.gz文件。 - 等待打包完成后,再将这个压缩包下载到你的本地电脑。
第三步:导出旧网站数据库
这一步的目的是将你网站的数据库数据导出为一个 .sql 文件。

-
登录旧空间数据库管理工具:
在旧空间的控制面板(如 cPanel)中,找到“phpMyAdmin”并点击进入。
-
选择正确的数据库:
在左侧的数据库列表中,点击你的 Magento 网站正在使用的数据库名。
-
导出数据库:
- 在顶部导航栏中,点击“导出”选项卡。
- 在“导出方法”部分,选择“快速” - 显示“自定义” - 选中“自定义”。
- 在下方“格式”选项中,选择“SQL”。
- 确保“添加
DROP TABLE/VIEW/PROCEDURE/FUNCTION”选项是勾选状态,这可以避免导入时因表已存在而报错。 - 滚动到页面最底部,点击“执行”按钮。
-
下载 SQL 文件:
- 浏览器会自动下载一个
.sql文件,请务必保存好这个文件。
- 浏览器会自动下载一个
第四步:上传文件到新空间
我们将之前下载的网站文件上传到新的服务器。
-
连接到新空间:
- 使用 FTP 客户端连接到你的新服务器,使用新空间的 FTP 信息。
-
上传压缩包:
- 进入新空间的网站根目录(同样是
public_html)。 - 将你从旧服务器下载的网站文件压缩包(
website.zip)上传到这个根目录。
- 进入新空间的网站根目录(同样是
-
解压文件:
- 方法一(推荐):通过 cPanel 解压
- 登录新空间的 cPanel。
- 找到“文件”部分,点击“压缩文件”或“解压文件”。
- 在“解压文件”选项中,点击“浏览”,选择你刚刚上传的压缩包。
- 在“解压到”的输入框中,输入 (一个点),表示解压到当前目录。
- 点击“解压文件”按钮,等待解压完成。
- 通过 FTP 解压
一些高级的 FTP 客户端(如 FileZilla Pro)支持直接在服务器上解压,右键点击压缩包,选择“解压到这里”。
- 方法一(推荐):通过 cPanel 解压
-
设置文件权限:
-
解压完成后,为了安全,我们需要设置正确的文件权限。
-
通过 cPanel 设置:
- 在 cPanel 中找到“文件”部分,点击“文件管理器”。
- 进入
public_html目录。 - 重要:在文件管理器右上角,确保“显示隐藏文件”是勾选状态,这样才能看到
.htaccess和var等目录。 - 选中所有文件和文件夹,点击顶部的“更改权限”。
- 权限设置规则:
- 目录:权限设置为
755。 - 文件:权限设置为
644。 var和pub目录及其子目录:权限设置为777(或至少755/775,但777在迁移时最保险,迁移完成后可改回755)。
- 目录:权限设置为
- 点击“更改”按钮。
-
通过 SSH 设置(高级用户):
-
如果你的空间支持 SSH,连接后执行以下命令:
# 进入网站根目录 cd /home/你的用户名/public_html # 递归设置目录权限为 755 find . -type d -exec chmod 755 {} \; # 递归设置文件权限为 644 find . -type f -exec chmod 644 {} \; # 设置 var 和 pub 目录及其子目录权限为 777 chmod -R 777 var pub
-
-
第五步:导入数据库到新空间
我们将导出的数据库文件导入到新创建的数据库中。
-
登录新空间数据库管理工具:
登录新空间的 cPanel,进入 phpMyAdmin。
-
选择新数据库:
- 在左侧列表中,点击你第二步中创建的新数据库名。
-
导入数据库:
- 在顶部导航栏点击“导入”选项卡。
- 点击“选择文件”按钮,浏览并选择你从旧服务器下载的
.sql文件。 - 滚动到页面底部,点击“执行”按钮。
-
等待导入完成:
系统会开始执行 SQL 语句,导入数据,根据数据库大小,这可能需要一些时间,完成后会显示成功信息。
第六步:修改核心配置(最关键的一步!)
这是整个迁移过程中最核心、最容易出错的一步,我们需要修改数据库中的配置,让 Magento 知道它的新位置。
-
编辑
app/etc/env.php文件:- 通过 FTP 或 cPanel 的文件管理器,进入新空间的
public_html/app/etc/目录。 - 找到
env.php文件,下载它到本地。 - 用代码编辑器(如 VS Code、Sublime Text、Notepad++)打开它。
- 修改以下两行:
'backend' => 'http://你的新域名.com/''front' => 'http://你的新域名.com/'
- 将
'你的新域名.com'替换成你的新域名,确保 URL 后面有斜杠 。 - 保存文件,然后重新上传到服务器,覆盖原文件。
- 通过 FTP 或 cPanel 的文件管理器,进入新空间的
-
通过命令行(推荐)修改数据库:
-
如果新空间支持 SSH,这是最可靠的方法。
-
连接到你的新服务器 via SSH。
-
进入 Magento 根目录:
cd /home/你的用户名/public_html
-
执行以下命令来更新 base URL。请务必将
http://你的新域名.com替换成你自己的新域名。# 更新核心配置中的 Unsecure URL bin/magento setup:store-config:set --base-url="http://你的新域名.com" # 更新核心配置中的 Secure URL (如果你的网站开启了 HTTPS) bin/magento setup:store-config:set --base-url-secure="https://你的新域名.com" # 清除配置缓存 bin/magento cache:clean config
-
如果你的空间不支持 SSH,你需要手动修改数据库。
-
-
手动修改数据库(如果无 SSH):
- 登录新空间的 phpMyAdmin。
- 选择你的新数据库。
- 在左侧的表列表中,找到
core_config_data这张表。 - 点击“浏览”来查看表内容。
- 在顶部的“搜索”框中输入
web,然后点击“执行”,这会筛选出与网站(web)相关的配置。 - 你需要找到两条关键记录:
scope = 'default'且path = 'web/unsecure/base_url'scope = 'default'且path = 'web/secure/base_url'
- 点击这两条记录的“编辑”图标。
- 将
value字段的值修改为你的新域名,http://你的新域名.com/(注意结尾的斜杠!)。 - 点击“执行”保存修改。
第七步:更新 URL 重写和部署静态文件
-
更新 URL 重写索引:
- 这是为了确保你网站的分类、产品、页面等链接在新域名下依然有效。
- 通过 SSH(推荐):
# 在 Magento 根目录下执行 bin/magento indexer:reindex url_rewrite
- 如果无 SSH:暂时跳过,如果后续发现 404 错误再考虑通过其他方式处理。
-
部署静态内容:
- Magento 的 CSS、JS、图片等静态文件需要被编译和部署。
- 通过 SSH(推荐):
# 在 Magento 根目录下执行 bin/magento setup:static-content:deploy -f
- 如果无 SSH:你可以清空
pub/static和var/view_preprocessed目录,然后访问网站后台,系统会自动重新生成这些文件,但 SSH 方式更彻底、更快速。
第八步:清理所有缓存
我们需要清理 Magento 的所有缓存,确保所有更改生效。
-
通过 SSH(最彻底):
# 在 Magento 根目录下执行 bin/magento cache:flush
-
通过后台管理:
- 登录你的 Magento 后台。
- 进入
System->Tools->Cache Management。 - 全选所有缓存类型。
- 从“Actions”下拉菜单中选择“Refresh”。
- 点击“Submit”。
-
通过 cPanel(可选):
- 在 cPanel 的“文件管理器”中,删除
var/cache和var/page_cache目录下的所有内容(或直接删除这两个目录,然后让 Magento 重新创建)。
- 在 cPanel 的“文件管理器”中,删除
第九步:最终检查与收尾工作
-
访问网站:
- 在浏览器中输入你的新域名,检查网站首页是否正常显示。
- 清除浏览器缓存后,再次访问,确保看到的是新网站。
-
检查关键页面:
- 访问产品分类页、产品详情页、CMS 静态页面。
- 检查图片是否能正常加载。
- 检查链接是否有效。
-
检查后台管理:
- 访问
你的新域名.com/admin,尝试登录后台,确保一切正常。
- 访问
-
恢复文件权限:
- 如果之前为了方便将
var和pub目录设置为777,现在为了安全,请将其改回755。- 通过 SSH:
chmod -R 755 var pub
- 通过 cPanel 文件管理器:重新设置这两个目录及其子目录的权限为
755。
- 通过 SSH:
- 如果之前为了方便将
-
更新 DNS(如果更换了域名):
如果你更换了域名,请登录你的域名注册商网站,将域名的 NS 记录指向新空间的 DNS 服务器,DNS 解析通常需要几分钟到 48 小时不等。
-
旧空间处理:
确认新网站完全正常后,你可以在旧空间上保留网站一段时间(以防万一),或者彻底删除以节省资源。
至此,你的 Magento 网站迁移工作已经全部完成!祝你一切顺利!
