WordPress 备份迁移

Posted by icoding168 on 2020-02-27 18:54:45

分类: 软件安装  

2021-11-17 总结:

用 All-in-One WP Migration 插件备份不要导出媒体库,不然好几个 G 的文件很难用这个插件恢复,手工打包压缩媒体库文件即可,压缩软件用 7zip。如果要下载媒体库的压缩文件,最好把它的文件名后缀改成 wpress,然后复制到 All-in-One WP Migration 的下载目录,这样可以利用 Apache 服务器的比较成熟稳定可靠的下载功能。

Wordpress 必备插件:

  • All-in-One WP Migration
  • automatic upload images
  • Big File Uploads
  • Delete Post Revision In Wordpress
  • Post Types Order
  • WP Webhooks
  • WP文件管理器

由于我使用自研的前台站点,所以我只需要以上这几个插件。

备份

首先用 All-in-One WP Migration 插件做备份,导出前勾选下面这些选项,可以减少导出包的体积以及降低迁移失败的概率:

恢复

在新站点也安装一个 All-in-One WP Migration 插件。注意新站点的 WordPress 版本最好要与旧的站点保持一致,否则可能会出现插件不兼容的情况。而且不要在新站点安装其它的插件,否则会有可能导入失败。

上传备份文件

新站点的上传文件大小限制要改大一点才能上传大文件,修改 php.ini 文件中的 upload_max_filesize 和 post_max_size 这两个参数的值即可。

如果不行就安装一些 Wordpress 插件比如 Big File Uploads,更方便快捷。

如果使用 CloudFlare 来代理网站,那么要注意的是,CloudFlare 免费版最多只提供 100M 的上传文件限制,因此要先关掉 CloudFlare 代理再进行上传。

Nginx 的配置要把客户端上传限制改大一点:client_max_body_size 2048m;

在新站点通过 All-in-One WP Migration 插件导入备份文件即可恢复全部的文章和文件。

修改密码

如果恢复之后,你跟我一样忘记了之前的登录密码,可以在 MySQL 中重置密码:

update wp_users set user_pass=md5("123456") where user_login='admin';

支持 https

Let's Encrypt 提供免费 SSL 证书。

配置好 apache 的 ssl 证书,然后将 wordpress 的 wp-config.php 中的主页地址和站点地址这两个参数改成 https 连接,重启 apache 。

如果 wordpress 运行在 apache 中,由 nginx 负责反向代理和 SSL,那么需要将下面这句代码粘贴到 wp-config.php 中,否则会出现重定向次数过多的错误。

$_SERVER['HTTPS'] = 'On';

Nginx 相关配置:

proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;

Docker

执行 df 命令,可以看到有 /var/lib/docker 文件夹,cd 进去可以看到有 volumes 文件夹,再 cd 进去可以看到有 docker_wordpress_data 文件夹,因此删掉 wordpress 的 docker container 实际上不会删掉 wordpress 插件等数据。