Magento 网站迁移完整图文教程

迁移 Magento 网站主要分为以下几个核心步骤:

magento空间更换迁移图文教程
(图片来源网络,侵删)
  1. 准备工作:在新空间上配置好环境。
  2. 打包旧网站:下载旧网站的文件和数据库。
  3. 上传到新空间:将文件上传到新服务器。
  4. 导入数据库:在新空间上导入数据库。
  5. 修改配置:更新数据库中的域名等关键信息。
  6. 清理缓存:确保网站能正常访问。
  7. 最终检查:测试网站功能。

第一步:准备工作

在开始迁移之前,请务必完成以下准备工作:

  1. 获取新空间信息

    • FTP/SFTP 主机地址、用户名、密码
    • 数据库主机地址、数据库名、用户名、密码
    • 新的域名(如果更换了域名)
    • 控制面板(如 cPanel/Plesk)登录地址
  2. 在新空间上创建数据库

    • 登录你的新空间控制面板(cPanel)。
    • 找到“数据库”或“MySQL Database Wizard”等类似选项。
    • 创建一个新的数据库,并记下数据库名。
    • 为该数据库创建一个新的用户,并设置密码,记下用户名和密码。
    • 将这个新用户“所有权限”授予到新创建的数据库中。

第二步:打包并下载旧网站文件

这一步的目的是将你当前网站的所有文件下载到本地电脑。

magento空间更换迁移图文教程
(图片来源网络,侵删)
  1. 连接到旧空间

    • 使用 FTP 客户端(如 FileZilla、Xftp 等)连接到你的旧服务器。
    • 输入旧空间的 FTP 主机地址、用户名和密码进行连接。
  2. 定位网站根目录

    • 连接成功后,进入网站的根目录,通常是 public_htmlwwwhttpdocs
  3. 下载所有文件

    • 重要提示:由于 Magento 网站文件通常非常多,直接下载可能会很慢或失败,建议使用 压缩打包 的方式。
    • 在 FTP 客户端中,选中根目录下的所有文件和文件夹(通常可以按 Ctrl+A)。
    • 右键点击,选择“压缩”或“打包”选项,将其打包成一个 .zip.tar.gz 文件。
    • 等待打包完成后,再将这个压缩包下载到你的本地电脑。

第三步:导出旧网站数据库

这一步的目的是将你网站的数据库数据导出为一个 .sql 文件。

magento空间更换迁移图文教程
(图片来源网络,侵删)
  1. 登录旧空间数据库管理工具

    在旧空间的控制面板(如 cPanel)中,找到“phpMyAdmin”并点击进入。

  2. 选择正确的数据库

    在左侧的数据库列表中,点击你的 Magento 网站正在使用的数据库名。

  3. 导出数据库

    • 在顶部导航栏中,点击“导出”选项卡。
    • 在“导出方法”部分,选择“快速” - 显示“自定义” - 选中“自定义”。
    • 在下方“格式”选项中,选择“SQL”。
    • 确保“添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION”选项是勾选状态,这可以避免导入时因表已存在而报错。
    • 滚动到页面最底部,点击“执行”按钮。
  4. 下载 SQL 文件

    • 浏览器会自动下载一个 .sql 文件,请务必保存好这个文件。

第四步:上传文件到新空间

我们将之前下载的网站文件上传到新的服务器。

  1. 连接到新空间

    • 使用 FTP 客户端连接到你的新服务器,使用新空间的 FTP 信息。
  2. 上传压缩包

    • 进入新空间的网站根目录(同样是 public_html)。
    • 将你从旧服务器下载的网站文件压缩包(website.zip)上传到这个根目录。
  3. 解压文件

    • 方法一(推荐):通过 cPanel 解压
      • 登录新空间的 cPanel。
      • 找到“文件”部分,点击“压缩文件”或“解压文件”。
      • 在“解压文件”选项中,点击“浏览”,选择你刚刚上传的压缩包。
      • 在“解压到”的输入框中,输入 (一个点),表示解压到当前目录。
      • 点击“解压文件”按钮,等待解压完成。
    • 通过 FTP 解压

      一些高级的 FTP 客户端(如 FileZilla Pro)支持直接在服务器上解压,右键点击压缩包,选择“解压到这里”。

  4. 设置文件权限

    • 解压完成后,为了安全,我们需要设置正确的文件权限。

    • 通过 cPanel 设置

      • 在 cPanel 中找到“文件”部分,点击“文件管理器”。
      • 进入 public_html 目录。
      • 重要:在文件管理器右上角,确保“显示隐藏文件”是勾选状态,这样才能看到 .htaccessvar 等目录。
      • 选中所有文件和文件夹,点击顶部的“更改权限”。
      • 权限设置规则
        • 目录:权限设置为 755
        • 文件:权限设置为 644
        • varpub 目录及其子目录:权限设置为 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

第五步:导入数据库到新空间

我们将导出的数据库文件导入到新创建的数据库中。

  1. 登录新空间数据库管理工具

    登录新空间的 cPanel,进入 phpMyAdmin。

  2. 选择新数据库

    • 在左侧列表中,点击你第二步中创建的新数据库名。
  3. 导入数据库

    • 在顶部导航栏点击“导入”选项卡。
    • 点击“选择文件”按钮,浏览并选择你从旧服务器下载的 .sql 文件。
    • 滚动到页面底部,点击“执行”按钮。
  4. 等待导入完成

    系统会开始执行 SQL 语句,导入数据,根据数据库大小,这可能需要一些时间,完成后会显示成功信息。


第六步:修改核心配置(最关键的一步!)

这是整个迁移过程中最核心、最容易出错的一步,我们需要修改数据库中的配置,让 Magento 知道它的新位置。

  1. 编辑 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 后面有斜杠 。
    • 保存文件,然后重新上传到服务器,覆盖原文件。
  2. 通过命令行(推荐)修改数据库

    • 如果新空间支持 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,你需要手动修改数据库。

  3. 手动修改数据库(如果无 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 重写和部署静态文件

  1. 更新 URL 重写索引

    • 这是为了确保你网站的分类、产品、页面等链接在新域名下依然有效。
    • 通过 SSH(推荐)
      # 在 Magento 根目录下执行
      bin/magento indexer:reindex url_rewrite
    • 如果无 SSH:暂时跳过,如果后续发现 404 错误再考虑通过其他方式处理。
  2. 部署静态内容

    • Magento 的 CSS、JS、图片等静态文件需要被编译和部署。
    • 通过 SSH(推荐)
      # 在 Magento 根目录下执行
      bin/magento setup:static-content:deploy -f
    • 如果无 SSH:你可以清空 pub/staticvar/view_preprocessed 目录,然后访问网站后台,系统会自动重新生成这些文件,但 SSH 方式更彻底、更快速。

第八步:清理所有缓存

我们需要清理 Magento 的所有缓存,确保所有更改生效。

  1. 通过 SSH(最彻底)

    # 在 Magento 根目录下执行
    bin/magento cache:flush
  2. 通过后台管理

    • 登录你的 Magento 后台。
    • 进入 System -> Tools -> Cache Management
    • 全选所有缓存类型。
    • 从“Actions”下拉菜单中选择“Refresh”。
    • 点击“Submit”。
  3. 通过 cPanel(可选)

    • 在 cPanel 的“文件管理器”中,删除 var/cachevar/page_cache 目录下的所有内容(或直接删除这两个目录,然后让 Magento 重新创建)。

第九步:最终检查与收尾工作

  1. 访问网站

    • 在浏览器中输入你的新域名,检查网站首页是否正常显示。
    • 清除浏览器缓存后,再次访问,确保看到的是新网站。
  2. 检查关键页面

    • 访问产品分类页、产品详情页、CMS 静态页面。
    • 检查图片是否能正常加载。
    • 检查链接是否有效。
  3. 检查后台管理

    • 访问 你的新域名.com/admin,尝试登录后台,确保一切正常。
  4. 恢复文件权限

    • 如果之前为了方便将 varpub 目录设置为 777,现在为了安全,请将其改回 755
      • 通过 SSH
        chmod -R 755 var pub
      • 通过 cPanel 文件管理器:重新设置这两个目录及其子目录的权限为 755
  5. 更新 DNS(如果更换了域名)

    如果你更换了域名,请登录你的域名注册商网站,将域名的 NS 记录指向新空间的 DNS 服务器,DNS 解析通常需要几分钟到 48 小时不等。

  6. 旧空间处理

    确认新网站完全正常后,你可以在旧空间上保留网站一段时间(以防万一),或者彻底删除以节省资源。

至此,你的 Magento 网站迁移工作已经全部完成!祝你一切顺利!