凌峰创科服务平台

Magento网站搬家步骤有哪些?

下面我将为您提供一个详细、分步、通用的 Magento 网站搬家指南,涵盖了从准备到收尾的整个过程,无论您是使用 cPanel、宝塔面板还是通过命令行操作,核心逻辑都是一致的。

Magento网站搬家步骤有哪些?-图1
(图片来源网络,侵删)

核心流程概览

  1. 准备工作:在新服务器上部署环境,获取旧站点的所有文件和数据库。
  2. 上传文件:将旧站点的文件上传到新服务器。
  3. 导出/导入数据库:导出旧数据库,在新服务器上导入。
  4. 更新核心配置:修改数据库中的关键路径和域名信息。
  5. 文件权限设置:确保新服务器上的文件权限正确。
  6. 清理和验证:清除缓存,测试网站功能。

第一步:准备工作

在开始之前,请确保你已经准备好了新旧两台服务器。

记录当前网站信息

在旧服务器上,请务必记录以下信息,这将在后续步骤中至关重要:

  • 网站根目录路径/home/username/public_html/var/www/html
  • 数据库信息
    • 数据库名称
    • 数据库用户名
    • 数据库密码
    • 数据库主机 (通常是 localhost)
  • Magento 版本:是 Magento 1 还是 Magento 2?它们的操作有显著差异,本指南以更常见的 Magento 2为例,最后会补充 Magento 1 的关键区别。
  • 基础 URLhttp://www.old-domain.comhttps://www.old-domain.com

在新服务器上准备环境

  • 安装 Web 服务器 (Nginx/Apache)PHPMySQL/MariaDB
  • 确保 PHP 版本与 Magento 版本兼容,Magento 2.4.x 需要 PHP 7.4 或更高版本。
  • 创建一个新的数据库和数据库用户,并记录下它们的名称和密码。

第二步:下载并上传文件

从旧服务器下载文件

使用 SSH 连接到旧服务器,或者通过 cPanel/宝塔面板的文件管理器,将整个 Magento 网站的根目录(包括所有文件和文件夹)打包并下载到你的本地电脑。

# 使用 SSH 和 tar 命令打包(推荐,速度快)
cd /path/to/your/magento/root
tar -czf magento_backup.tar.gz .

下载 magento_backup.tar.gz 文件到本地。

Magento网站搬家步骤有哪些?-图2
(图片来源网络,侵删)

上传文件到新服务器

将下载到的 magento_backup.tar.gz 文件上传到新服务器的 Magento 网站根目录,同样可以通过 SSH 或文件管理器完成。

# 使用 SSH 和 scp 命令上传
scp magento_backup.tar.gz user@new_server_ip:/path/to/your/new/magento/root/

在新服务器上解压文件

连接到新服务器,进入网站根目录,解压文件。

cd /path/to/your/new/magento/root
tar -xzf magento_backup.tar.gz
rm magento_backup.tar.gz # 删除压缩包

第三步:数据库迁移

这是最关键的一步。

在旧服务器上导出数据库

使用 SSH 连接到旧服务器,执行以下命令:

Magento网站搬家步骤有哪些?-图3
(图片来源网络,侵删)
# 格式: mysqldump -u [username] -p[password] [database_name] > [backup_file].sql
mysqldump -u magento_user -p'your_old_password' magento_db > magento_db_backup.sql

注意-p 和密码之间没有空格。

将导出的 magento_db_backup.sql 文件下载到本地。

在新服务器上导入数据库

将下载到的 magento_db_backup.sql 文件上传到新服务器。

# 使用 scp 上传
scp magento_db_backup.sql user@new_server_ip:/path/to/your/new/magento/root/

连接到新服务器,进入网站根目录,导入数据库:

# 先登录到 MySQL
mysql -u root -p
# 在 MySQL 命令行中创建新数据库并导入
CREATE DATABASE magento_new_db;
EXIT;
# 退出 MySQL,执行导入命令
mysql -u new_db_user -p'your_new_password' magento_new_db < magento_db_backup.sql

第四步:更新核心配置(Magento 2 专属)

这是让 Magento 知道自己“搬家”了的核心步骤,我们需要修改数据库中的 core_config_data 表。

使用命令行(推荐)

  1. SSH 登录到新服务器,并切换到 Magento 安装目录的根目录(通常是 pub 目录的上一级)。

    cd /path/to/your/new/magento/root
  2. 执行 setup:config:status 命令,检查配置是否需要更新。

    bin/magento setup:config:status

    如果输出显示配置与数据库不符,就需要执行更新。

  3. 执行 setup:upgrade 命令,这个命令会自动检测并更新数据库配置,包括 URL 等。

    bin/magento setup:upgrade

    注意bin/magento 不存在,说明你的文件权限或路径有问题,请确保文件权限正确,并且你位于正确的目录下。

手动修改数据库

如果命令行方法失败,你可以手动修改数据库。

  1. SSH 登录到新服务器,并连接到 MySQL。

    mysql -u new_db_user -p'your_new_password' magento_new_db
  2. 执行 SQL 查询,更新 URL

    -- 更新 unsecure base URL
    UPDATE core_config_data SET value = 'http://www.new-domain.com/' WHERE path = 'web/unsecure/base_url';
    -- 更新 secure base URL
    UPDATE core_config_data SET value = 'https://www.new-domain.com/' WHERE path = 'web/secure/base_url';
  3. 退出 MySQL

    EXIT;

第五步:更新 env.php 文件

app/etc/env.php 文件中也存储了数据库连接信息和一些基础 URL,需要手动更新。

  1. 使用文件编辑器(如 nanovim)打开新服务器上的 app/etc/env.php 文件。

    nano app/etc/env.php
  2. 找到并修改以下部分:

    • 'db' => [ 'table_prefix' => '', 'connection' => [ 'default' => [ 'host' => 'localhost', 'dbname' => 'magento_new_db', 'username' => 'new_db_user', 'password' => 'your_new_password', ... ] ] ]
    • (可选)如果文件里也有 base_url 相关配置,也一并更新。
  3. 保存并关闭文件。


第六步:设置文件权限

Magento 2 对文件权限有严格要求,在新服务器上,执行以下命令来设置正确的权限。

# 假设你的 Magento 根目录是 /var/www/html/magento
cd /var/www/html/magento
# 设置所有权(将 'www-data' 替换为你的 Web 服务器用户,如 'nginx', 'apache')
sudo chown -R www-data:www-data .
# 设置文件权限
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
# 设置关键目录的执行权限
sudo chmod u+x bin/magento
sudo chmod -R 755 var/ pub/ generated/ static/

第七步:清理缓存并验证

  1. 清理所有缓存

    # 在 Magento 根目录下执行
    bin/magento cache:clean
    bin/magento cache:flush

    你也可以通过删除 var/cache, var/page_cache, var/generation 等目录来强制清理(但通常不推荐,用命令更安全)。

  2. 访问新域名:在浏览器中输入你的新域名 http://www.new-domain.com,检查网站是否正常显示。

  3. 检查关键功能

    • 前台页面是否正常加载?
    • 后台登录 (/admin) 是否正常?
    • 产品、分类页面是否正常?
    • 购物车和结账流程是否正常?
    • 图片是否能正常显示?

第八步:最终收尾

  1. 更新 DNS:登录你的域名注册商(如 GoDaddy, 阿
分享:
扫描分享到社交APP
上一篇
下一篇