咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

9、Docker-部署WordPress站点

本文利用 Docker Compose 快速部署一个WordPress站点。

环境:VMWare 、Ubuntu 、 Docker

编写docker-compose.yml文件

参考docs.docker.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: '3.3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

启动容器

1
$ docker-compose up

等待Docker下载安装直至完成,并且启动。

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
listen [::]:80;

server_name www.domain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location / {
proxy_pass http://127.0.0.1:8000;
}
}

由于WordPress只能在80端口启动,所以通过Docker网络将宿主机的8000端口映射到docker容器网络80端口,Nginx再通过反向代理将80端口代理到8000。
然后再设置DNS,将域名指向服务器的IP地址就可以了。

爬坑

确认可以了?访问域名,自动跳转到WordPress “famous five-minute installation” 著名的5分钟安装界面,但是发现css等东西没生效。

安装完成之后,登录就有问题了,直接跳转到 http://127.0.0.1:8000 ,而且目前这种情况还没法设置站点地址。

这个坑本来想在 docker-compose.yml 找到解决办法,但是没找到设置站点地址的参数,改数据库太麻烦。

刚好本地PC机也装有nginx,于是用nginx的反向代理临时解决登录问题,进去控制台再设置站点地址。

1
2
3
4
5
6
7
8
server {
listen 8000;
server_name localhost;

location / {
proxy_pass http://www.domain.com;
}
}

这样在本地访问 localhost:8000 就能访问到Docker的WordPress,并且可以登录了。
登录之后,将站点的URL地址为你的域名,然后就OK了,本地的nginx也可以删掉了。

WordPress

写的题外的内容:WordPress的使用。
安装完成WordPress,默认它是一个博客,但一般我们用WordPress不是做一个博客,而是做企业官网、内容展示、电子商务等。
要实现这些的话,就要安装主题了,安装了主题之后,你就能基于主题来修改它的具体内容,比如一些标题,图片等,跟装饰淘宝店一样,或者说和基于PPT母板来做PPT一样。

那么如果找一个合适的主题?

可以在WordPress内浏览,或者在Google搜索,主题的安装可以在线安装,也可以上次压缩包安装。在Google搜索到的合适主题,如果想在线安装,可以在WordPress内搜索一遍,也许会找到,直接在线安装就好。
比如,在Google搜索到 Sparker 主题,上传压缩包提示安装失败,在WordPress搜索一下,结果上面就有,直接点安装。

那么,如果你客户对网站的个性化比较强,没有主题模板符合需要怎么办?

业内有一些 主题编辑器 ,可以不写代码,编辑一份自定义的主题,导出来就能安装到WordPress,比如 elementor 就是其中一个。
elementor使用教程
elementor使用教程