#起因
我曾經(jīng)把wordpress 搭建在Vultr
上,但是因?yàn)楸娝苤脑?,這個(gè)地方訪問越來越慢。再後來我選擇了新浪雲(yún),新浪雲(yún)的確夠便宜,也很不錯(cuò),但是要備案,還有評論功能估計(jì)要閹割,想想還是算了,找個(gè)香港的主機(jī)搭建 wordpress 即可。
購買主機(jī)
我這裡選擇的是阿里雲(yún)的輕量應(yīng)用程式伺服器,這臺主機(jī)的好處就是便宜,夠用。
例如我選擇的香港的主機(jī),一個(gè)月只需要 24 塊錢,一核心一G內(nèi)存,網(wǎng)速為 30Mbps,磁碟空間 25GB,月流量 1TB。
配置如下圖
初始化docker 環(huán)境
雖然上面有一件安裝wordpress
的功能,但是我不推薦,因?yàn)榕渲枚继狭?/blockquote>最終我選擇的是
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 憑證申請,設(shè)定如下
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 功能,直接把設(shè)定寫入到
wp_caddy
這個(gè)配置中。db
這裡用的是mysql8 , wordpress 是支援的,效能也要更好點(diǎn)
要注意的,commmand
必須加上command: --default-authentication-plugin=mysql_native_password
不然是沒辦法進(jìn)行密碼認(rèn)證的,我就是忘記加這個(gè)蛋痛了一陣子。app
注意連接方式
如果你是用docker stack 部署的,部署的是什麼名字,資料庫連接那裡就要加上名字的前綴。例如我這裡是docker stack deploy -c docker-compose.yml wp
,我這裡資料庫在 docker 網(wǎng)路中的 host 就是wp_db
。如果你的 stack 名字是 wordpress , 就要對應(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 之後可以有全功能的配置能力。