Wordpress 建站笔记

参考教程: https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-docker-compose

Step 1 设置反代

这一步主要是对nginx进行设置。

反代是什么?为什么要反代?一般而言例如VPN这样的服务就是正向代理,代理客户端访问各个网站。而反向代理是服务器的代理。

listen:告诉nginx要监听哪个端口。这步暂时只用了80端口,也就是HTTP用的。之后SSL下来了以后加上443,也就是HTTPS用的。

server_name:域名,这里似乎其实只需要写blog.konata.co就够了?前后只是优先级?

index:网页的index文件,按照优先级排序

root:这个是根目录地址,之后会在dockerfile里mount到这个目录下。

Step 2 设置环境变量

这一步主要是把密码用户名加到环境变量里,然后由于涉及敏感信息,所以额外添加了.gitignore和.dockerignore

Step 3 设置docker-compose

Docker-compose和dockerfile是两个东西,各自用处见:

https://www.runoob.com/docker/docker-dockerfile.html

https://www.runoob.com/docker/docker-compose.html

Docker-compose是用来配置容器内服务的。这里依次配置了db(数据库),wordpress,webserver(nginx反代)和certbot(https证书)。

在services中,每个服务器的image指定了是从哪个镜像启动服务。这里用的都是公开的现成的镜像,所以可以直接启动。

这一步wordpress用的镜像是image: wordpress:5.1.1-fpm-alpine,版本比较旧,可以替换成这里 更新的tag,如5.9.0-fpm-alpine,也许就可以解决php版本过老的问题(待确认)。

Step 4 获取SSL证书

要用https而不是http,需要获取SSL证书。在上一步已经配置好了certbot,这一步首先启动docker-compose。

docker-compose up 是启动,加上-d是在后台运行。

docker-compose ps 可以检查服务运行情况。

docker-compose exec webserver ls -la /etc/letsencrypt/live 这句话指的是启动webserver的docker然后查看域名是否设置成功。从名字上看似乎用的是Let’s Encrypt的服务。如果设置成功,就可以进入docker-compose.yml--staging这个调试用的参数改成--force-renewal,重新申请一个正式的证书。

docker-compose up --force-recreate --no-deps certbot 使最新的docker-compose.yml生效。

Step 5 修改nginx

因为已经申请到了SSL证书,现在要返回修改nginx

先把webserver服务停了,然后下载certbotnginx配置文件options-ssl-nginx.conf,删除旧的nginx.conf改成新的nginx.conf,再修改docker-compose.ymlwebserver的配置,把443端口添加上去。

docker-compose up --force-recreate --no-deps webserver 使最新的docker-compose.yml生效。

Step 6 前端安装

到这步为止,nginx反代,SSL证书,wordpress,全部都安装好并且在后台运行了。这时候访问域名,就会出现wordpress的安装界面。全程网页操作,简单易懂。

Step 7 定期更新证书

因为证书90天内有效,所以要写一个脚本每隔一段时间(小于90天)就重新申请一次证书。脚本内容大概是renew certbot并删除多余镜像,之后把脚本的权限设为可执行。调用crontab来定期运行脚本。

*/5 * * * *是每五分钟运行一次,为了快速出测试结果。

\>> /var/log/cron.log 2>&1是把输出写到log文件里,方便查看。

确认没有问题以后,改为0 12 * * *,是每12小时更新一次,需要更新得这么频繁吗?

同时把调试用的参数--dry-run从脚本里删掉。