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 插件等数据。