忙了一個下午,終於把Wordpress從原本的RespberryPi上搬到目前的Ubuntu開發主機上! 而會花那麼多時間,主要是因為在開發機上,我想要用docker-compose的方式去佈署這個Wordpress,而不是直接安裝Wordpress於主機上。
這邊簡單列一下整個流程與相關的細節
佈署Wrodpress docker-compose
主要可以參考wrodpress 官方提供的docker-compose,就可以在有docker環境下的機器順利執行整套wordpress。
以下是我更改後的wordpress docker-compose.yaml
:
version: "3.3"
services:
db:
image: mariadb:10.5
ports:
- "3306:3306"
volumes:
- "./my-docker-volumes/db:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: mariadb-root-password
MYSQL_DATABASE: wordpress-user
MYSQL_USER: wordpress-user
MYSQL_PASSWORD: wordpress-password
restart: always
wordpress:
depends_on:
- db
image: wordpress:5.6
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress-user
WORDPRESS_DB_PASSWORD: wordpress-password
volumes:
- "./my-docker-volumes/wordpress:/var/www/html"
這邊所使用的MariaDB與Wordpress版本都是以當初在RespberryPi上的版本為主,主要是希望從RespberryPi回復資料時,不會造成一些資料上的問題。
設定本機的Nginx
這邊一開始設定時,也遇到了些css上的問題,後來參考了這連結以後也順利的解決了!
(原本以為是wp-config.php
內部有檔參數要改,所以也花了不少時間在這上面)
設定完成的nginx 設定檔如下:
server {
listen 80;
server_name blog.gechen.xyz;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name blog.gechen.xyz;
index index.php;
ssl_certificate /cert_path/fullchain.pem;
ssl_certificate_key /cert_path/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2;
client_max_body_size 100M;
location / {
include snippets/wp-reverse-proxy.conf;
proxy_pass http://localhost:8000/;
}
location /login {
try_files $uri $uri/ /wp-login.php;
}
}
wp-reverse-proxy.conf的設定檔如下:
add_header X-Frame-Options SAMEORIGIN;
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;
proxy_hide_header X-Frame-Options;
設定Let’s encrypt certificate
之前的certbot
也是放在RespberryPi上,所以也趁這個機會搬到目前的開發主機上,所以直接參考了之前的設定方式,在目前的主機上完成了wildcard certificate的申請。
備份與還原Wordpress database
這個部分,我是直接透過mysqpdump
的方式,直接把先前整個wordpress db用下面的指令dump:
mysqldump -u wordpress-user -p --all-databases > backup.sql;
再直接還原到新的wordpress db 上:
mysql -h new-wordpress-ip-address -u wordpress-user -p wordpress-db < backup.sql
備份與還原Wordpress files
這部分目前還是有些問題,我主要是參考這篇文章提到的備份整個wordpress files,但在把備份資料夾從Respberry Pi 搬到開發主機並直接用docker-compose mount到內部資料夾後,佈景主題與外掛都有出了點問題!
看來這部分還需要花點時間了解,要如何完整的備份一個Wordpress 網站 !!!