老婆和我说她想写点文字,于是我就用 Docker + Wordpress 帮她搭建了一个在线个人博客站点,本文记录一下过程。
我的云服务器已经安装过 Docker,直接跳过这一步。
运行如下命令确认机器是否安装了 docker 和 docker-compose。
$ docker --version
$ docker-compose --version
创建项目目录 wife-blog,在根目录下创建 docker-compose.yml 文件。
$ mkdir wife-blog && cd mife-blog
$ vi docker-compose.yml
编辑 docker-compose.yml 文件,内容如下:
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootwordpress
MYSQL_DATABASE: mywordpress
MYSQL_USER: mywordpress
MYSQL_PASSWORD: mywordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: mywordpress
WORDPRESS_DB_PASSWORD: mywordpress
WORDPRESS_DB_NAME: mywordpress
volumes:
- wordpress_data:/var/www/html
volumes:
db_data:
wordpress_data:
说明:
在项目根目录下执行以下命令启动项目,-d 表示进入后台运行。
$ docker-compose up -d
启动成功后可以使用如下命令查看数据卷情况。
$ docker volume ls
DRIVER VOLUME NAME
local wordpress-docker_db_data
local wordpress-docker_wordpress_data
数据卷存放路径通常为 /var/lib/docker/volumes
,如果需要备份数据,可以进入该目录下找到对应的数据卷进行备份。
$ cd /var/lib/docker/volumes && ll
总用量 32
drwx-----x 3 root root 4096 12月 22 11:03 wordpress-docker_db_data
drwx-----x 3 root root 4096 12月 22 11:03 wordpress-docker_wordpress_data
容器内的 80 端口和本机的 8080 端口映射,在浏览器中输入 http://<服务器IP>:8080
访问 wordpress。
注意:使用阿里云或者腾讯云服务器时,8080端口默认是不对外开放访问权限的,前往云控制台在安全组配置中开放 8080 端口访问权限后才能访问。
到这一步,通过 http://ip:8080 访问网站,会看到 WordPress 的安装界面,按要求填写信息进行安装即可。
如果有域名并且已经备案通过,可以配置域名。
使用 nginx 进行反向代理,编辑: /etc/nginx/conf.d/wordpress.conf 文件,配置中的域名需要更换为你自己的域名。
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这一步结束可以通过 http://yourdomain.com 访问网站了。
配置 SSL 证书,使网站支持 https 访问。
# 安装 certbot 工具
$ yum install -y certbot python3-certbot-nginx # CentOS
# 给你的域名配置 SSL 证书,按要求操作即可
$ certbot --nginx -d yourdomain.com
这一步结束后可以通过 https://yourdomain.com 访问网站了。
↶ 返回首页