起因
我曾經(jīng)把 wordpress 搭建在 Vultr 上,但是因?yàn)楸娝苤脑颍@個(gè)地方訪問越來越慢。再后來我選擇了新浪云,新浪云的確夠便宜,也很不錯(cuò),但是要備案,還有評(píng)論功能估計(jì)要閹割,想想還是算了,找個(gè)香港的主機(jī)搭建 wordpress 即可。
購(gòu)買主機(jī)
我這里選擇的是阿里云的輕量應(yīng)用服務(wù)器,這個(gè)主機(jī)的好處就是便宜,夠用。
比如我選擇的香港的主機(jī),一個(gè)月只需要 24 塊錢,一核心一G內(nèi)存,網(wǎng)速為 30Mbps,磁盤空間 25GB,月流量 1TB。
配置如下圖
![](http://img.jbzj.com/file_images/article/202005/2020519102550770.jpg?2020419102637)
初始化 docker 環(huán)境
雖然上面有一件安裝wordpress的功能,但是我不推薦,因?yàn)榕渲枚继狭?br />
最終我選擇的是 ubuntu18.04 系統(tǒng),直接用下面的命令即可完成安裝 docker 并且初始化 docker swarm
curl -o- -L https://gist.githubusercontent.com/hangox/e679464f35dc2a78920e6249a21d7958/raw/c5541e38979dca1e3e1e9704ad171ed2f0556fa1/ubunut-install-docker.sh | bash
編寫 docker-compose
配置一覽
version: '3.7'
services:
caddy:
image: abiosoft/caddy
ports:
- 80:80
- 443:443
environment:
- ACME_AGREE=true
- TZ=Asia/Shanghai
volumes:
- caddy:/root/.caddy
- wp-src:/usr/src/wordpress
configs:
- source: wp_caddy
target: /etc/Caddyfile
app:
image: wordpress:5.4.1-php7.2-fpm
environment:
TZ: Asia/Shanghai
WORDPRESS_DB_HOST: wp_db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: yourpassword
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
- wordpress:/var/www/html
- wp-src:/usr/src/wordpress
db:
image: mysql:8
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: yourpassword
MYSQL_DATABASE: wordpress
command: --default-authentication-plugin=mysql_native_password
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
caddy:
wp-src:
configs:
wp_caddy:
external: true
配置解析
caddy
用來做反向代理,同時(shí)兼顧 https 證書申請(qǐng),配置如下
https://47log.com https://www.47log.com {
root /usr/src/wordpress
gzip
fastcgi / wp_app:9000 php
rewrite {
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?_url={uri}
}
log stdout
errors stderr
}
這里我用到了 docker swarm 的 config 功能,直接把配置寫入到 wp_caddy 這個(gè)配置中。
db
這里用的是 mysql8 , wordpress 是支持的,性能也要更好點(diǎn)
需要注意的,commmand 必須加上 command: --default-authentication-plugin=mysql_native_password 不然是沒辦法進(jìn)行密碼認(rèn)證的,我就是忘記加這個(gè)蛋疼了一陣子。
app
注意連接方式
如果你是用 docker stack 部署的,部署的是什么名字,數(shù)據(jù)庫(kù)連接那里就要加上名字的前綴。比如我這里是 docker stack deploy -c docker-compose.yml wp,我這里數(shù)據(jù)庫(kù)在 docker 網(wǎng)絡(luò)中的 host 就是 wp_db。如果你的 stack 名字為 wordpress , 就要對(duì)應(yīng)的改為 wordpress_db。
注意配置 volume
- wordpress:/var/www/html 這個(gè)東西一定要配置,上次我就是沒有配置這個(gè)東西,刪掉 container,主題直接沒有了。
使用 docker stack 部署
一行命令 docker stack deploy -c docker-compose.yml wp
等一段時(shí)間就能進(jìn)入 wordpress 了
為什么使用 docker swarm。 因?yàn)橛?portainer , docker-swarm 接入到 portainer 之后可以有全功能的配置能力。
到此這篇關(guān)于使用Docker Swarm 搭建Wordpress的方法的文章就介紹到這了,更多相關(guān)Docker Swarm搭建Wordpress內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!