无论是因为之前是在 www.wordpress.com ,或者托管服务器上运行的wordpress想要搬家,还是为了对自己的vps进行升级,都需要把wordpress搬到新的vps上。这边wordpress有非常好用的插件可以一键搬家。所以这篇文章更像是对安装wordpress的一个补充。因为按照之前的教程 ,安装wordpress会占用80端口,影响其他服务的使用。感谢云五老师在自己的博客中提出这点并提供了详尽的新教程
备份wordpress
这边我用了两个插件:
-
备份插件:UpdraftPlus
-
搬家插件:All-in-One WP Migration
备份插件是我一直在用的,我刚好测试一下这个备份是不是真的能完全恢复。但是这个插件的搬家功能(更换域名)是付费的,有需要这个功能的可以试试另一个搬家插件All-in-One WP Migration,不过这个的免费版对容量限制在250M。以防万一我两个服务都备份了。
配置新服务器
购买VPS,然后去域名的DNS设置那里把域名指向新服务器ip。这步进行之后就打不开旧站了,务必在此之前做好备份,救急可以用 IP:80 的方式打开。
登陆你的VPS,设置ssh-key,设置禁止密码登陆,设置SWAP,安装docker和docker-compose等,这部分可以参考:如何在Docker上从头搭建Mastodon 前两步。防火墙暂时不打开,全部设置好之后再打开,可能会引起调试过程中的bug。
检查一下docker和docker-compose是不是装好了:
$ docker -v
$ docker-compose --version
我个人还建议在docker安装完成之后,开始创建wordpress之前,建一个用户(而不是用root操作):
$ adduser wordpress # 新建wordpress用户
$ usermod -aG sudo wordpress # 添加sudo权限
$ su wordpress # 切换用户
$ cd ~ # 转到用户home目录
开始安装wordpress
本段主要参考云五老师的用Nginx反代实现docker安装WordPress与其他服务并存 。相比于之前的教程,这个不会占用80和443端口,对VPS后续安装其他服务(包括另一个wordpress)很有帮助,非常推荐。需要在命令行前加sudo
。
这里我按照教程走下来很顺利,额外提醒一下,在80端口测试的时候,意思是你需要打开 http://example.com ,而不是 https://example.com 。因为现在只配置了80端口,只有http可以打开。
另外还有一点是,我不确定是不是因为我的防火墙设置,在配置证书前 http://example.com 一直显示127.0.0.1 已拒绝连接。总之配完SSL之后就可以用 https://example.com 打开了。
自动更新证书
参考:Centos7安装certbot获得并更新证书(使用Snap) ,certbot会自动更新,可运行以下命令测试自动更新能否正确运行:
$ sudo certbot renew --dry-run
迁移站点
安装之前迁移用的插件,选择还原。
我这边先使用了UpdraftPlus,关联Google Drive后,重新扫描远程存储,我之前的备份就出现了,然后点击恢复。确定站点稳定运行后,再进入插件,会提示你删除旧目录。
(2023.2.7更新)扩充媒体容量上限
进入docker
docker exec -it wordpress /bin/bash
cp一个设置文件
cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
修改设置文件
vi /usr/local/etc/php/php.ini
修改这三个值并保证
memory_limit>post_max_size>upload_max_filesize
PS:vim查找命令为:/要查找的字符串,n下一个,N上一个
退出后重启容器
docker restart wordpress
啊我怎么没有早点看到你这篇文章,能节省好多脑细胞!
啊呀!下次主动送上!