Prestashop运维手册: 系统的迁移

Prestashop运维手册: 系统的迁移

背景说明:

需要将系统从一台服务器迁移到另外一台服务器,或将域名从A域名迁移到B域名。

适用场景 : prestashop迁移;prestashop服务器变更;prestashop域名变更;prestashop转移服务器

迁移的操作步骤

  1. 暂停店铺

  2. 配置IP访问

  3. 备份数据库

  4. 备份系统文件

  5. 扩展: IP无法访问时,修改SQL备份中域名

  6. 新服务器配置创建数据库

  7. 新服务器数据库配置专用SQL授权账号

  8. 恢复数据库

  9. 恢复系统文件

  10. 扩展: 修改prestashop的数据库连接信息

  11. 启用系统并进后台清除缓存

详细操作步骤

1,暂停店铺

进入系统后台,菜单 -> 配置 -> 一般 -> 维护

将 启用商店,改为 否

修改此项配置是放置前端用户下单丢失以及数据不同步问题。点击保存

2,配置IP访问

菜单路径为 : 菜单 -> 配置 -> 一般 -> 维护

商店选项关闭后,在IP维护中,输入你的公网IP地址。如果你的系统具备图形界面,可以点击 添加我的IP ,点击保存。

3,备份数据库

mysqlmudp -u user -p prestashop > prestashop.bak.sql

mysql命令说明:

  • mysqldump是备份命令

  • -u 选项,指定用户,这里输入你的实际用户,如 root (一般不建议直接使用root用户作为系统方访问)

  • -p 选项,密码认证

  • prestashop,为你备份的数据库名称

  • prestashop.bak.sql 为备份的数据库名称

4,备份系统文件

进入到文件的根目录,使用tar命令进行打包,并忽略缓存文件

tar -zcvf prestashop.bak.tar htdocs/ --exclude='htdocs/var/cache'  --exclude='htdocs/cache'

文件说明:

  • tar -zcvf 是创建tar压缩包命令(-z用gzip压缩,-c是创建新的归档文件,-v是显示过程,-f后面跟着的是目标文件名)

  • prestashop.bak.tar 为备份文件的名字,这里可以自行命令

  • htdocs/ 为你的prestashop的文件目录

  • --exclude= 是排除缓存目录

扩展: 如果你想全部打包,可以不使用排除选项

tar -zcvf prestashop.bak.tar htdocs/

5,扩展: IP无法访问时,修改SQL备份中域名

一般情况下进行迁移,需要在prestashop的后台配置域名访问。但是这样子保存以后,原本的商城就直接无法打开了

但是我们不必这样子做,有更好的方法,既可以兼容原来的商城可以打开,迁移的商城也可以使用新域名。

同时在你迁移完成确定没有问题后再去停止旧商城,比较稳妥。

按以上步骤操作完成后,我们使用notepad++(或者直接使用SQL编辑软件),使用全局替换功能,将原来的域名替换为新域名。

使用其他工具的替换功能一样可以实现。

6,新服务器配置创建数据库

使用具备创建数据库权限的用户登录MySQL,这里默认使用root

mysql -u root -p

登录以后,创建数据库

create database prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
  • prestashop 为你实际的数据库名称

  • CHARACTER SET 设置字符集,这里字符集设置为 utf8mb4

  • 比较和排序的校对规则集为 utf8mb4_bin (区分大小写),如果不区分大小写,则可配置utf8_general_ci (不区分大小写)

7,新服务器数据库配置专用SQL授权账号

使用具备创建用户权限的账号为prestashop创建一个新的MySQL用户

CREATE USER 'shop'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

这里有一个坑,注意在这里细看,稍后会讲到。

命令说明:

  • CREATE USER 创建用户命令

  • 'shop'@'localhost' 为你的用户和用户域,填写你实际的登录名和域

  • IDENTIFIED WITH mysql_native_password BY 配置加密方式为 mysql_native_password

  • 'password',里面的password替换为你的实际密码

如果用户使用的数据库为MySQL5.7,只需要直接创建用户即可,如下

CREATE USER 'shoplhost' IDENTIFIED BY 'password';

如果你的数据库版本为8以及以上,尤其是24年更新版本的MySQL8.4版本,需要按照以上的命令进行创建。

而且需要开启相关的my.conf配置,否则提示: 数据库无法连接,或者 在日志中会见到以下提醒

[Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

解决方法参考该篇文章即可,这里不再讲述。只有MySQL8以及以上用户会遇到

https://huasci.com/archives/mysql8ban-ben-de-mysql_native_password-is-not-loaded-wen-ti-xiu-fu

8,恢复数据库

mysql -u root -p prestashop < prestashop.bak.sql

命令说明

  • mysql -u root -p 为登录命令

  • prestashop 替换为你的实际数据库名字

  • prestashop.bak.sql 替换为你数据库实际的备份文件名

9,恢复系统文件

tar -zxvf prestashop.bak.tar -C htdocs/

命令说明:

  • tar -zxvf 解压命令(-z用gzip压缩,-x是解压归档文件,-v是显示过程,-f后面跟着的是目标文件名)

  • prestashop.bak.tar 替换为你实际的备份文件名

  • -C htdocs/ , -C是解压到指定的目录,htdocs/ 替换为你的实际目录即可

10,扩展: 修改prestashop的数据库连接信息

如果你新服务器的数据库连接信息与原服务器信息有所修改,比如不是同一账号或者同一密码,为防止传输过程中密码泄露,你创建了新的账号密码

可以继续查看本节,否则可以跳过看下一节内容。

进入到你的prestashop根目录后,到相关目录下修改配置文件,目录为

app/config

配置文件为 parameters.php ,关键参数如下

	'database_host' => 'localhost',

    'database_port' => '',

    'database_name' => 'prestashop',

    'database_user' => 'shop',

    'database_password' => 'password',

    'database_prefix' => 'ps_',

参数说明

  • database_host 为你的数据地址

  • database_port 为你的数据库端口,不配置使用默认端口 3306

  • database_name 为你创建的数据库名称,这里使用默认数据库名称 prestashop 。如果你不是这个数据库名称,可以替换为你的实际数据库名称

  • database_user 数据库用户名,shop 替换为你的实际用户名

  • database_password 为数据库连接密码,password 替换为你的实际密码

  • database_prefix 一般默认不用修改。

11,启用系统并进后台清除缓存

前面事项进行完成以后,我们需要进入到系统的后台,开始相关的配置。

清理一次缓存,并查看系统是否有异常

菜单路径: 后台 -> 配置 -> 高级参数 -> 性能 -> 清除缓存

该选项不是必须要操作的。

但为了使系统缓存正确工作,建议迁移以后,进行一次缓存清理工作。

启用商店,删除IP访问选项。

菜单路径为: 后台 ->  配置 -> 商店的参数 -> 一般 -> 维护

  • 启用商店: 是

  • IP维护: 全部清空

至此商城迁移完成。

Comment

华计科技: 中华自主研发设计

华计科技为您提供咨询服务,IT技术支持和项目开发: (+86) 156 2654 0671

联系我们