aws的小鸡鸡已经不能满足我了,再加上用的过时的 centos7 显得十分没有品味,换成了hybula的中等鸡鸡,AMD EPYC 9554 2 core,2 GB DDR5 ECC 4800。搞个博客是绰绰有余了。黑五一个季度才15.75欧,属于是血赚。
如果要照抄这篇指北的话,uploads.ini文件应该放在/home/blog/uploads.ini,且创建/home/blog/wp和/home/blog/wpmysql两个文件夹用以在后期简单迁移备份wordpress和mysql
1. 安装docker
前几天写了一个docker安装的小流程,后来跟群友交流后发现意义不大,直接用docker的一键脚本省时省心
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
2. 创建uploads.ini文件
创建/home/blog/uploads.ini文件,省的以后还要进入wordpress镜像修改php.ini。docker-wordpress默认的上传最大文件限制为 2M,最长时间60s,显然是不够的。
file_uploads = On
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 600
3.创建一个docker-compose.yml文件并up
创建/home/blog/docker-compose.yml,我个人用的文件放到这里了,如果有人想照抄应该也没问题,应该是可以直接用的,需要改成自己的邮箱、数据库等地方都注释好了。我个人把docker-compose.yml文件放在了/home/blog下
version: '3.9'
services:
nginx-proxy-manager:
container_name: nginx-proxy-manager
image: zoeyvid/nginx-proxy-manager
restart: always
network_mode: host
volumes:
- "/opt/npm:/data"
- "/var/www:/var/www"
- "/opt/npm-letsencrypt:/etc/letsencrypt"
environment:
- "TZ=Europe/Berlin"
wordpress:
image: wordpress
restart: always
privileged: true
ports:
- 8080:80
- 8081:443
container_name: wordpress
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: #mysql用户名
WORDPRESS_DB_PASSWORD: #mysql密码
WORDPRESS_DB_NAME: #mysql数据库名
volumes:
- /home/blog/wp:/var/www/html
- /etc/letsencrypt
- /home/blog/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
deploy:
restart_policy:
condition: on-failure
mysql:
image: mysql:5.7
restart: always
privileged: true
environment:
MYSQL_DATABASE: #mysql数据库名
MYSQL_USER: #mysql用户名
MYSQL_PASSWORD: #mysql密码
MYSQL_RANDOM_ROOT_PASSWORD: '1'
container_name: mysql
volumes:
- /home/blog/wpmysql:/var/lib/mysql
deploy:
restart_policy:
condition: on-failure
volumes:
wordpress:
db:
在当前目录下up,推荐先docker-compose up看一下有没有什么报错,再docker-compose up -d
4. 配置Nginx proxy manager
这个对我来讲是新东西,很现代,很优雅,有GUI对我这种猴子非常的友好。zoeyvid/nginx-proxy-manager。
先用ip:81 访问后台管理界面,然后输入账号密码进入后台。这个NPM镜像的初始账户密码如下
Email: admin@example.com
Password: iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi
进入后会填写个人信息,重置密码
点击Add Proxy Host,填写成这个样子
Forward Host那么可能和我这个并不一样,如果搭建的wordpress和nginx proxy manager服务所在不是一个服务器,则填写能访问对应服务的IP。如果都在同一台服务器上,则填写在服务器中输入ip addr show docker0
命令获取得到的ip。后者一般是172.17.0.1
搞完了应该就可以访问HTTP的博客了,但是不太安全。可以在TLS Certificates栏中,右侧Add TLS Certificates - certBot申请一个证书,如果不是搞通配符证书很简单
申请完之后再在Proxy Host栏Edit Proxy Host-TLS选择刚才申请好的证书即可。
5.一些可选项
- 如果你用的和我一样是cloudflare的DNS,可以参考[记录]使用Certbot与Cloudflare插件申请通配符证书来获取通配符证书
- NMP部分可以参考这篇【玩转docker】反向代理神器:Nginx Proxy Manager
Comments NOTHING