Raspberry Pi 5(樹莓派 5)- WordPress 架站:使用 Docker Compose 建置自媒體應用網站

Raspberry Pi 5(樹莓派 5)- WordPress 架站:使用 Docker Compose 建置自媒體應用網站

Reading Mode

前言

💡
用途:WordPress 網站可以快速部署和管理一個高效且靈活的個人、商業或自媒體應用網站。
 

在數位時代,建立個人品牌和線上影響力已成為不可或缺的能力,WordPress 作為全球最受歡迎的內容管理系統,不僅提供了直觀的介面和強大的功能,更具備高度的客製化彈性。本教學將帶領您使用樹莓派 5 搭配 Docker 容器化技術,建立一個專業的 WordPress 自媒體應用網站。

透過 Nginx 處理網頁請求、MySQL 管理資料庫、Redis 提供快取加速,以及各種優質外掛和主題的整合,打造一個高效能且安全的網站平台,從基礎環境建置到進階功能優化,協助您實現個人或企業的網站建置需求。

WordPress 相關名詞解釋

在這個數位時代,擁有一個屬於自己的網站已經不再是科技專家的專利。無論是記錄生活點滴的部落格、展示作品的個人頁面,還是推廣業務的專業網站,WordPress 都是一個理想的選擇。作為全球最受歡迎的網站建置工具之一,WordPress 提供了高度靈活的架構,讓初學者能夠輕鬆上手,同時也滿足進階使用者的需求。

Docker 是什麼?

Docker 是一個開源的容器化平台,用於開發、執行和部署應用程式。它讓開發者能夠將應用程式及其所需的所有環境(如程式碼、工具和設定)打包到一個標準化的單位,稱為容器(Container)。

Docker Compose 是什麼?

Docker Compose 是一個用於定義和執行多容器 Docker 應用程式的工具。它允許開發者通過一個簡單的設定檔案(通常是 docker-compose.yml)來描述應用程式的服務、網路和卷,並使用一條命令管理這些服務的啟動和執行。

Docker 環境建置

請參閱下列教學說明:
🔗 Raspberry Pi 5(樹莓派 5)- Ubuntu Server 24.04 Docker 環境安裝

Nginx 是什麼?

Nginx 是一款高效、輕量級、以事件驅動為基礎的Web 伺服器和反向代理伺服器,也可用作負載平衡器、HTTP 快取及郵件代理等用途。因其高性能和低資源消耗而廣受歡迎,特別適合處理大量同時連線和高流量的應用。

WordPress 是什麼?

WordPress 是一個以 PHP 和 MySQL 為基礎的開放原始碼內容管理系統(CMS),廣泛用於建立和管理各類型的網站,包括部落格、企業網站、電子商務平台等。

MySQL 是什麼?

MySQL 是一個開源的關聯式資料庫管理系統(RDBMS),常用於儲存和管理結構化資料,它採用SQL(結構化查詢語言)來操作資料,是網站開發中最受歡迎的資料庫之一。

WordPress 網站架設流程

  1. 申請域名、設定 DNS
    目的:為網站建立一個容易記住且具辨識性的網址,讓使用者可以透過域名快速瀏覽網站,而不需要記住伺服器的 IP 位址。
    請參閱下列教學說明:
    🔗 自建免費「動態DNS (DDNS)」ChangeIP – 教學
    🔗 自建免費域名(US.KG)、託管和實做 Cloudflare DDNS – 教學
    🔗 Cloudflare 付費網域購買、託管和透過 API 實做 DDNS – 教學

  2. 啟用 SSL 憑證 HTTPS 與 CDN 服務
    目的:加密網站與訪客之間的資料傳輸,提高安全性,保護敏感資訊,並提升搜尋引擎排名及使用者信任度。
    請參閱下列教學說明:
    🔗 Cloudflare 免費啟用 SSL 憑證 HTTPS 與 CDN 服務 – 教學

  3. 建置虛擬主機
    目的:提供網站儲存空間和執行環境,用於存放網站的程式碼、資料庫及相關資源,並確保網站能被訪客正常瀏覽。
    請參閱下列教學說明:
    🔗 Raspberry Pi 5(樹莓派 5)M.2鋁合金外殼 – 開箱
    🔗 Raspberry Pi 5(樹莓派 5)- 安裝 Ubuntu Server 24.04 LTS (64-bit)
    🔗 Raspberry Pi 5(樹莓派 5)- Ubuntu Server 24.04 基礎環境設定
    🔗 Raspberry Pi 5(樹莓派 5)- Ubuntu Server 24.04 Docker 環境安裝

  4. 建置 WordPress 網站
    請參閱本文章下個章節的內容說明。

  5. 網站安全保護機制
    目的:增強網站的安全性防護,透過 Cloudflare 防火牆功能限制只允許特定 IP 位址存取 WordPress 後台,防止未授權的登入嘗試。
    請參閱下列教學說明:
    🔗 Cloudflare 防火牆保護機制:限制 IP 存取 WordPress 後台 – 教學

建置 WordPress 網站

前台:https://您的域名
後台:https://您的域名/wp-admin

 
  1. 建立與切換到專用目錄
    mkdir www && cd www
    
  2. 資料夾結構
    www/                         # 網站目錄
    │
    ├── .env                     # 環境變數檔(儲存私密資料)
    │
    ├── docker-compose.yml       # Docker Compose 設定檔
    │
    ├── nginx/                   # Nginx 設定目錄
    │   ├── nginx.conf           # Nginx 主要設定檔
    │   ├── conf/                # Nginx 虛擬主機目錄
    │   │   └── default.conf     # Nginx 虛擬主機設定檔
    │   │
    │   ├── html/                # 靜態資源目錄
    │   │   ├── index.html       # 預設靜態網頁
    │   │   └── assets/          # 其他資源 (CSS, JS, 圖片等)
    │   │
    │   ├── logs/                # Nginx 日誌目錄
    │   │   ├── access.log       # 存取日誌
    │   │   └── error.log        # 錯誤日誌
    │   │
    │   └── ssl/                 # SSL 憑證目錄
    │       ├── server.pem       # Cloudflare 原點憑證
    │       └── server.key       # Cloudflare 私密金鑰
    │
    ├── wordpress/               # WordPress 資料目錄
    │   ├── wp-content/          # WordPress 靜態內容 (外掛、主題、上傳檔案)
    │   ├── wp-config.php        # WordPress 設定檔
    │   └── ...                  # 其他 WordPress 核心檔案
    │
    ├── php/                     # PHP 資料目錄
    │   └── php.ini              # 自訂 php.ini
    │
    ├── rdeis/                   # Redis 資料目錄 (快取加速)
    │   └── data/                # Redis 快取資料目錄
    │
    └── mysql/                   # MySQL 資料目錄
        ├── my.cnf               # MySQL 主要設定檔
        ├── data/                # MySQL 資料庫檔案
        └── ...                  # 其他資料庫檔案
    
  3. 建立 .env(環境變數檔)儲存私密資料
    # WordPress 環境變數設定
    WORDPRESS_DB_NAME=wordpress   # 資料庫名稱
    WORDPRESS_DB_USER=wpuser      # 資料庫使用者名稱
    WORDPRESS_DB_PASSWORD=Pass01  # 資料庫使用者密碼
          
    # MySQL 環境變數設定
    MYSQL_ROOT_PASSWORD=Pass02  # 設定 MySQL root 使用者的密碼
    MYSQL_DATABASE=wordpress    # 資料庫名稱
    MYSQL_USER=wpusr            # 資料庫使用者名稱
    MYSQL_PASSWORD=Pass01       # 資料庫使用者密碼
    
  4. 建立 docker-compose.yml
    services:  # 定義 Docker 容器服務設定
      nginx:  # 定義 Nginx 服務,用於反向代理和靜態資源的處理
        image: arm64v8/nginx:alpine  # 使用 ARM64 架構 Nginx 的精簡版 alpine 映像
        container_name: nginx  # 容器名稱為 nginx
        ports:  # 定義容器對外開放的端口設定
          - "80:80"    # 將本機的 80 埠對應到容器內的 80 埠 (HTTP)
          - "443:443"  # 將本機的 443 埠對應到容器內的 443 埠 (HTTPS)
        volumes:  # 定義容器本機資料的掛載設定
          # 將本機的 conf 資料夾掛載到容器內的虛擬主機設定目錄
          - ./nginx/conf:/etc/nginx/conf.d
          # 將本機的 nginx.conf 檔案掛載到容器內
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf
          # 將本機的 html 資料夾掛載到容器內的靜態資源目錄
          - ./nginx/html:/usr/share/nginx/html
          # 將本機的 logs 資料夾掛載到容器內的日誌目錄
          - ./nginx/logs:/var/log/nginx
          # 將本機的 ssl 資料夾掛載到容器內的 SSL 憑證目錄
          - ./nginx/ssl:/etc/nginx/ssl
          # 將本機的 cache 資料夾掛載到容器內的快取目錄
          - ./nginx/cache:/var/cache/nginx
        deploy:
          resources:
            limits:
              memory: 512M  # 預留最多記憶體
            reservations:
              memory: 256M  # 預留最少記憶體
        restart: always  # 容器異常關閉後自動重啟
    
      wordpress:  # 定義 WordPress 服務,用於網站內容管理
        image: wordpress:latest  # 使用最新版本的 WordPress 映像
        container_name: wordpress  # 容器名稱為 wordpress
        environment:  # 定義容器內的環境變數
          WORDPRESS_DB_HOST: mysql:3306  # 指定資料庫主機為 mysql 並使用 3306 埠
          # 使用 .env 中的環境變數
          WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME}          # 資料庫名稱
          WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}          # 資料庫使用者名稱
          WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}  # 資料庫使用者密碼
          WORDPRESS_REDIS_HOST: redis                      # 指定 Redis 主機名稱
        volumes:  # 定義容器本機資料的掛載設定
          # 將本機的 wordpress 資料夾掛載到容器內的 WordPress 主目錄
          - ./wordpress:/var/www/html
          - ./php/php.ini:/usr/local/etc/php/conf.d/custom.ini  # 掛載自訂 php.ini
        depends_on:  # 定義啟動順序
          - mysql  # 確保在啟動時,MySQL 容器已啟動
          - redis  # 確保 Redis 容器已啟動
        deploy:
          resources:
            limits:
              memory: 1.5G    # 預留最多記憶體
            reservations:
              memory: 1G      # 預留最少記憶體
        restart: always  # 容器異常關閉後自動重啟
    
      mysql:  # 定義 MySQL 服務,作為 WordPress 的資料庫
        image: arm64v8/mysql:8.0  # 使用 ARM64 架構 MySQL 8.0 映像
        container_name: mysql  # 容器名稱為 mysql
        ports:  # 定義容器對外開放的端口設定
          - "3306:3306"  # 將本機的 3306 埠對應到容器內的 3306 埠
        environment:  # 定義容器內的環境變數
          # 使用 .env 中的環境變數
          MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}  # 設定 MySQL root 使用者的密碼
          MYSQL_DATABASE: ${MYSQL_DATABASE}            # 資料庫名稱
          MYSQL_USER: ${MYSQL_USER}                    # 資料庫使用者名稱
          MYSQL_PASSWORD: ${MYSQL_PASSWORD}            # 資料庫使用者密碼
        volumes:  # 定義容器本機資料的掛載設定
          # 將本機的 mysql 資料夾掛載到容器內的 MySQL 資料目錄
          - ./mysql:/var/lib/mysql
          # 將本機的 my.cnf 設定檔掛載到容器內
          - ./mysql/my.cnf:/etc/mysql/my.cnf
        deploy:
          resources:
            limits:
              memory: 2G    # 預留最多記憶體
            reservations:
              memory: 1G    # 預留最少記憶體
        restart: always  # 容器異常關閉後自動重啟
        
      redis:  # 定義 Redis 服務,用於快取加速
        image: arm64v8/redis:alpine  # 使用 ARM64 架構 Redis 的精簡版 alpine 映像
        container_name: redis  # 容器名稱為 redis
        command: redis-server --appendonly yes  # 啟用持久化(AOF 模式)
        ports:
          - "6379:6379"  # 將本機的 6379 埠對應到容器內的 6379 埠
        volumes:
          - ./redis/data:/data  # Redis 資料目錄,用於儲存持久化資料
        deploy:
          resources:
            limits:
              memory: 256M  # 預留最多記憶體
            reservations:
              memory: 128M  # 預留最少記憶體
        restart: always  # 容器異常關閉後自動重啟
    
  5. 建立 my.cnf(路徑:./mysql)
    [mysqld]
    skip-host-cache
    skip-name-resolve
    datadir=/var/lib/mysql
    socket=/var/run/mysqld/mysqld.sock
    secure-file-priv=/var/lib/mysql-files
    user=mysql
    pid-file=/var/run/mysqld/mysqld.pid
    
    innodb_buffer_pool_size = 3G  # 設定 InnoDB Buffer Pool 大小
    max_connections = 1000  # 設定最大連接數
    
    [client]
    socket=/var/run/mysqld/mysqld.sock
    
    !includedir /etc/mysql/conf.d/
    
  6. 建立 php.ini(路徑:./php)
    ; 設定單個上傳檔案的最大容量
    upload_max_filesize = 128M
    
    ; 設定單次 POST 請求的資料大小上限(應包含上傳的檔案及其他 POST 資料)
    post_max_size = 128M
    
    ; 設定 PHP 腳本執行的最大記憶體
    memory_limit = 1024M
    
    ; 設定 PHP 腳本執行的最大時間(避免長時間執行腳本導致超時)
    max_execution_time = 300
    
    ; 設定 PHP 腳本輸入的處理時間
    max_input_time = 300
    
  7. 建立 nginx.conf(路徑:./nginx)
    user  nginx;
    worker_processes  auto;  # 定義使用的工作進程數量
    
    error_log  /var/log/nginx/error.log notice;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;  # 每個工作進程的最大連接數
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    
  8. 建立 default.conf (路徑:./nginx/conf)
    # 處理 HTTP 請求的設定
    server {
        listen 80;  # 監聽 HTTP 請求的埠號 80
        server_name 您的域名 www.您的域名;  # 指定伺服器處理的域名
        return 301 https://您的域名$request_uri;  # 將 HTTP 請求重導向到 HTTPS
    }
    
    # 處理 HTTPS 請求的設定
    server {
        listen 443 ssl;  # 監聽 HTTPS 請求的埠號 443,啟用 SSL 支援
        server_name 您的域名 www.您的域名;  # 指定伺服器處理的域名
        client_max_body_size 128M;  # 設定檔案上傳最大容量
      
        # Cloudflare 憑證設定
        ssl_certificate /etc/nginx/ssl/server.pem;      # 設定 Cloudflare 原點憑證
        ssl_certificate_key /etc/nginx/ssl/server.key;  # 設定 Cloudflare 私密金鑰
    
        # SSL/TLS 設定
        ssl_protocols TLSv1.2 TLSv1.3;  # 僅支援安全的 TLS 版本
        # 使用高強度加密套件,禁用不安全的算法
        ssl_ciphers HIGH:!aNULL:!MD5:!PSK:!DSS:!RC4;
        
          # 提高安全性設定
        ssl_prefer_server_ciphers on;  # 使用伺服器的加密套件,確保安全性
        # 使用共享緩存來提升 SSL 握手效率,緩存時間為 30 分鐘
        ssl_session_cache shared:SSL:30m;
        # 設定 SSL 握手會話的過期時間為 30 分鐘
        ssl_session_timeout 30m;
          # 強制瀏覽器僅使用 HTTPS,HSTS 有效期為 1 年,包括子域名
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        
        # 將 www子域名重導向到主域名
        if ($host = www.您的域名) {
            return 301 https://您的域名$request_uri;
        }
    
        # WordPress 代理設定
        location / {
            # 將以 / 開頭的請求代理到名為 wordpress 容器的 80 埠
            proxy_pass http://wordpress:80;
            # 傳遞請求的 Host 標頭
            proxy_set_header Host $host;
            # 傳遞真實客戶端 IP
            proxy_set_header X-Real-IP $remote_addr;
            # 傳遞 X-Forwarded-For 標頭(記錄多個代理 IP)
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 傳遞請求的協議(HTTP 或 HTTPS)
            proxy_set_header X-Forwarded-Proto $scheme;
    
        }
    
        # 防止存取敏感文件
        location ~ /\.(ht|git|svn) {
            deny all;  # 禁止存取以 .ht .git .svn 開頭的檔案,保護敏感資訊
        }
    }
    
    

    若您已經在 Cloudflare 上啟用了「一律使用 HTTPS」(Always Use HTTPS)﹑「自動改寫 HTTPS」(Automatic HTTPS Rewrites),可以簡化 Nginx 的設定,避免重複功能。
    請參閱下列教學說明:
    🔗 Cloudflare 免費啟用 SSL 憑證 HTTPS 與 CDN 服務 – 教學

      刪除的項目說明

    1. 刪除 HTTP 轉 HTTPS 的規則
      由於 Cloudflare 的 Always Use HTTPS 已經自動處理 HTTP 到 HTTPS 的重導向,這段規則變得多餘

      # 主域名的 HTTP 重導向已由 Cloudflare 處理(Always Use HTTPS),因此刪除相關設定
      # 處理 HTTP 請求的設定
      # server {
          # listen 80;  # 監聽 HTTP 請求的埠號 80
          # server_name 您的域名 www.您的域名;    # 指定伺服器處理的域名
          # return 301 https://您的域名$request_uri;  # 將 HTTP 請求重導向到 HTTPS
      # }
      
    2. 刪除 www 子域名到主域名的重導向
      Cloudflare 的 Always Use HTTPS 和 Automatic HTTPS Rewrites 會自動將 www 子域名重導向到主域名,Nginx 中的規則不再需要

      # www 子域名重導向主域名已由 Cloudflare 處理
      #(Always Use HTTPS﹑Automatic HTTPS Rewrites),因此刪除相關規則
      # 將 www子域名重導向到主域名
      # if ($host = www.您的域名) {
          # return 301 https://您的域名$request_uri;
      # }
      

    優化後的好處

    1. 減少重複設定:Nginx 和 Cloudflare 功能不再重疊,避免衝突。
    2. 提高效能:Nginx 無需執行多餘的重導向規則,減少處理負擔。
    3. 簡化管理:將 HTTPS 和子域名重導向統一交由 Cloudflare 管理,降低維護成本。
     
  9. 啟動服務
    在 docker-compose.yml 檔案所在目錄,執行指令

    docker-compose up -d
    

    停止服務 在 docker-compose.yml 檔案所在目錄,執行指令

    docker-compose stop
    

    重啟服務 在 docker-compose.yml 檔案所在目錄,執行指令

    docker-compose restart
    
  10. 存取服務
    使用瀏覽器輸入 http://您的域名https://您的域名 開始建置您的 WordPress 網站

  11. 下拉到底下點選「繁體中文」後再點選「繼續」
    下拉到底下點選「繁體中文」後再點選「繼續」

  12. 輸入「網站標題」、「使用者名稱」、「密碼」及「電子郵件地址」,再點選「安裝 WordPress」
    輸入「網站標題」、「使用者名稱」、「密碼」及「電子郵件地址」,再點選「安裝 WordPress」

  13. 點選「登入」
    點選「登入」

  14. 輸入「使用者名稱」和「密碼」,再點選「登入」,就會進入 WordPress 後台
    輸入「使用者名稱」和「密碼」,再點選「登入」,就會進入 WordPress 後台

  15. 設定永久連結
    後台點選「設定」→「永久連結」,建議將「永久連結結構」修改成「文章名稱」,再點選「儲存設定」
    後台點選「設定」→「永久連結」,建議將「永久連結結構」修改成「文章名稱」,再點選「儲存設定」

安裝佈景主題(免費版推薦)

  1. 安裝佈景主題(Astra)
    後台點選「外觀」→「佈景主題」→「安裝佈景主題」
    後台點選「外觀」→「佈景主題」→「安裝佈景主題」

    「搜尋佈景主題」輸入「astra」,再點選「安裝」
    後台點選「外觀」→「佈景主題」→「安裝佈景主題」

    點選「啟用」
    點選「啟用」

    使用「Astra 主題」優點

    1. 快速且輕量級:載入速度快,對網站效能有幫助。
    2. 高度可客製:提供豐富的設計選項和自訂功能,適合各種網站需求。
    3. 內建範本庫與設計工具支援:提供多種範本與建置工具,方便快速建立網站。
    4. SEO 優化:對網站的 SEO 優化有利,提升搜尋引擎排名。
    5. 響應式設計:在各種設備上都能夠良好顯示。
    6. 多語言與 RTL 支援:支援多語言功能,適合國際化需求。
    7. 相容性高與擴展性強:與許多其他外掛相容,擴展功能強大。
    8. 免費與付費版本選擇:提供免費版本和付費版本可選擇,適合不同的預算。

  2. 安裝子主題(Astra Child)
    安裝子主題(Astra Child)

    點選上面的網頁連結,再點選底下的「Generate」(生成) 下載子主題 astra-child.zip(334KB)
    點選上面的網頁連結,再點選底下的「Generate」(生成) 下載子主題
    astra-child.zip(334KB)

    使用「Astra 子主題」優點

    1. 保護自訂內容:避免父主題更新時覆蓋你的修改。
    2. 更容易維護:自訂樣式和功能分開管理,方便除錯和調整。
    3. 安全與穩定:父主題更新解決漏洞,自訂內容不受影響。
    4. 彈性客製化:輕鬆新增樣式、功能或修改模板檔案。

    簡單說,使用子主題能讓你安全地客製化網站,並保持升級時的靈活性!

  3. 後台點選「外觀」→「佈景主題」→「安裝佈景主題」
    後台點選「外觀」→「佈景主題」→「安裝佈景主題」

  4. 點選「上傳佈景主題」
    點選「上傳佈景主題」

  5. 點選「選擇檔案」,瀏覽「astra-child.zip」,再點選「立即安裝」
    點選「選擇檔案」,瀏覽「astra-child.zip」,再點選「立即安裝」

  6. 佈景主題完成安裝後點選「啟用」
    佈景主題完成安裝後點選「啟用」

  7. 然後會有兩個 Astra 佈景主題(Astra Child、Astra),只能選擇一個主題,可以看到 Astra 子主題已經正常啟用
    然後會有兩個 Astra 佈景主題(Astra Child、Astra),只能選擇一個主題,可以看到 Astra 子主題已經正常啟用

安裝外掛(免費版推薦)

WordPress 外掛是用來擴展網站功能的小工具,無需編寫程式碼即可使用,用途包括:

  1. 網站優化:SEO、速度提升、安全防護。
  2. 功能擴展:電商、會員系統、多語言支持。
  3. 內容管理:表單、流量分析、文章樣式編輯。
  4. 設計強化:頁面建構器、圖片壓縮。
  5. 社群互動:分享按鈕、即時聊天。

外掛方便又強大,但應避免安裝過多並定期更新以保持效能和安全性。

  1. Akismet Anti-spam
    Akismet Anti-spam

    垃圾留言防護(預設已安裝)
    用於自動篩選和阻擋網站中的垃圾留言,幫助維護評論區的品質,節省站長管理時間,可以申請免費的 API 金鑰。

  2. Easy Table of Contents
    Easy Table of Contents

    自動產生文章目錄
    用於自動生成文章或頁面的目錄,提升內容導航效率,讓讀者更快速找到所需資訊,特別適合長篇內容的網站。

  3. Elementor
    Elementor

    網站編輯器
    這是可視化編輯外掛,讓用戶透過拖放方式輕鬆設計專業網站,提供即時預覽、大量模板與高度自訂化功能,適合各類型網站建置。

  4. PrettyLinks
    PrettyLinks

    產生短網址
    用於縮短、管理和追蹤網站中的連結,讓網址更美觀並提高點擊率,同時方便分析流量來源。

  5. Rank Math SEO
    Rank Math SEO

    SEO 優化工具
    用於優化網站的搜尋引擎排名,提供關鍵字分析、內容建議及技術 SEO 設定,幫助提升流量與可見性。

  6. Site Kit by Google
    Site Kit by Google

    串接 Google 服務
    整合 Google 工具如 Analytics、Search Console 和 AdSense,提供網站流量、效能與營收資料的簡單存取與分析。

  7. Starter Templates
    Starter Templates

    Astra 佈景主題 – 免費網站範本
    提供一系列預設範本,用來快速建立和自訂 WordPress 網站,節省開發時間並提升設計建置的效率。

  8. UpdraftPlus
    UpdraftPlus

    網站備份及轉移
    提供備份和恢復功能,幫助用戶儲存網站資料,防止資料遺失,並方便進行網站還原或轉移。

  9. W3 Total Cache
    W3 Total Cache

    網站快取優化工具
    提高網站載入速度,通過快取技術優化網站效能,減少伺服器負擔,提升用戶體驗。

  10. WP-Optimize
    WP-Optimize

    資料庫清理
    用於優化和清理 WordPress 資料庫,減少資料庫大小,提升網站速度和效能。

  11. Login Lockdown
    Login Lockdown

    後台登入保護
    用於限制登入嘗試次數與封鎖可疑 IP,防止暴力破解攻擊,增強 WordPress 後台的安全性。

  12. Redis Object Cache
    Redis Object Cache

    Redis 快取加速工具
    用於提升網站效能的記憶體快取系統,透過將常用資料儲存在記憶體中,減少資料庫查詢次數,加快網站回應速度。


    在 WordPress 的 wp-config.php 檔案中手動加入 Redis 的設定,這樣外掛就會連線到正確的主機,步驟如下:

    1. 編輯 wp-config.php 在 WordPress 主目錄中,找到 wp-config.php 檔案並開啟。
       
    2. 新增 Redis 設定 在檔案的底部(/* That’s all, stop editing! Happy publishing. */ 前)新增以下內容:
      // Redis 設定
      define('WP_REDIS_HOST', 'redis'); // Redis 容器名稱
      define('WP_REDIS_PORT', 6379);    // Redis 預設埠
      define('WP_REDIS_PASSWORD', 'your_redis_password'); // 如果設定了密碼,填入此處
      
    3. 重新啟用 Redis 外掛
      1. 前往 WordPress 管理後台,停用並重新啟用 Redis Object Cache 外掛。
         
      2. 測試連線,確認可以連線並「啟用物件快取」。
     
  13. Yoast Duplicate Post
    Yoast Duplicate Post

    頁面複製工具
    用於快速複製現有的文章、頁面或自訂文章類型,保留原始內容的格式和設定,提高內容管理的效率。

結語

透過本文的完整教學,可以在樹莓派 5 上建立一個專業的 WordPress 網站環境,從 Docker 容器化部署、Nginx 伺服器設定,到資料庫優化和快取加速,每個環節都經過精心規劃,特別是透過精選的外掛組合,如 SEO 優化工具、安全防護機制、效能加速方案等,為網站提供了全方位的功能支援。

採用 Astra 主題及其子主題的設計,更確保了網站的可維護性和擴展性,這套解決方案不僅適合個人部落格、自媒體應用,也能滿足企業網站的需求,讓您在數位時代中展現專業的形象,創造獨特的線上價值。

閱讀完成

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端