Docker - WordPress 設定



WordPress是一個著名的開源CMS,用於開發網站和部落格。在不同的環境中部署WordPress需要處理各種依賴項,例如Web伺服器、MySQL、PHP等等。使用Docker可以簡化此過程,它提供了一種標準化的方法來管理WordPress可以執行的環境。

Docker化WordPress的先決條件

在Docker化WordPress之前,請確保您擁有以下內容:

  • Docker基礎知識 - 瞭解Dockerfile、容器和映象將使您更容易地瀏覽本指南。
  • WordPress基礎 - 建議您瞭解MySQL資料庫的基礎知識,以便理解WordPress的通訊方式。
  • 已安裝Docker - 確保Docker已安裝並在您的系統上執行。您可以直接從Docker官方網站安裝它。
  • 文字編輯器 - 可用於編輯檔案的文字編輯器示例包括Notepad++、VSCode和Sublime Text。
  • 命令列介面(CLI) - 您需要能夠輕鬆地使用命令列介面執行命令。

使用Dockerfile Docker化WordPress

讓我們使用官方的WordPress映象,它是生產就緒的。如有必要,您可以修改預設的WordPress映象進行自定義。

這是一個自定義WordPress檔案的簡單Dockerfile示例

FROM wordpress:latest

# Copy custom themes or plugins if necessary
COPY ./themes /var/www/html/wp-content/themes

# Expose port 80
EXPOSE 80

它添加了自定義主題或外掛,併為WordPress服務公開了80埠。

建立WordPress Docker映象

建立自定義Dockerfile後,我們可以使用以下命令構建映象:

$ docker build -t custom-wordpress .

這將建立一個名為custom-wordpress的Docker映象。

Creating WordPress Docker Image

執行WordPress Docker容器

建立Docker映象後,我們可以使用以下命令執行與該映象關聯的容器:

$ docker run -d -p 8000:80 --name my-wordpress custom-wordpress
Running WordPress Docker Container 1

您可以訪問https://:8000來訪問WordPress儀表盤。

Running WordPress Docker Container 2

在Docker Compose上執行WordPress

讓我們使用Docker Compose進行WordPress的多容器部署。

步驟1:建立一個專案目錄

為了保持一切井然有序,首先為您的WordPress專案建立一個目錄。所有Docker元件和配置檔案都將儲存在此處。

$ mkdir wordpress-docker
$ cd wordpress-docker

步驟2:建立一個Docker Compose檔案

為了指定WordPress執行所需的各項服務,我們可以使用Docker Compose。讓我們在專案目錄中建立一個docker-compose.yml檔案。

$ touch docker-compose.yml

在您的文字編輯器中開啟此檔案,並新增以下配置:

version: "3.8"

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

   wordpress:
      depends_on:
         - db
      image: wordpress:latest
      ports:
         - "8000:80"
      restart: always
      environment:
         WORDPRESS_DB_HOST: db:3306
         WORDPRESS_DB_USER: wpuser
         WORDPRESS_DB_PASSWORD: wppassword
         WORDPRESS_DB_NAME: wordpress
      volumes:
         - ./wp-content:/var/www/html/wp-content

volumes:
   db_data:

此配置定義了兩項服務:

  • WordPress - 主要WordPress程式在8000埠執行,並使用最新的映象。
  • MySQL - WordPress的資料庫,包含預先配置的登入資訊。

步驟3:啟動Docker Compose服務

讓我們透過使用Docker Compose執行WordPress和MySQL來測試設定。在您的專案目錄中,執行以下命令來啟動WordPress和MySQL:

$ docker-compose up -d
Launch Docker Compose Services

步驟4:進入WordPress儀表盤

服務啟動並執行後,您可以開啟瀏覽器並訪問WordPress安裝。

https://:8000
Go to WordPress Dashboard

現在應該可以看到WordPress安裝頁面,您可以繼續設定您的網站。

使用Docker設定HTTPS

您可以使用Let's Encrypt透過HTTPS保護您的WordPress網站,這是提供資料安全功能的標準程式。Let's Encrypt提供免費的SSL證書,並且使用Docker可以輕鬆地自動化此過程。

步驟1 - 將Nginx作為反向代理新增到docker-compose.yml檔案中。

步驟2 - 將Let's Encrypt工具Certbot放入Nginx容器中。

步驟3 - 修改nginx.conf檔案以新增SSL指令,以便為SSL配置Nginx。

步驟4 - 使用Certbot命令自動請求SSL證書

$ certbot --nginx -d yourdomain.com

步驟5 - 使用cron設定Let's Encrypt證書自動續訂。

使用Docker自動備份WordPress

WordPress需要備份,尤其是對於檔案和資料庫系統。可以使用Docker卷和cron作業來自動化此備份過程。

步驟1 - 建立一個備份指令碼檔案,該檔案使用mysqldump備份資料庫。

步驟2 - 在Dockerfile中安裝cron以自動執行備份指令碼。

步驟3 - 掛載儲存備份的卷,並在docker-compose.yml中新增備份服務。

步驟4 - 要定期執行備份,請使用此命令

$ crontab -e

步驟5 - 使用cron作業計劃備份時間表(例如:每週或每月)。

將Docker和WordPress與自定義域名一起使用

為了使WordPress Docker與自定義域名(例如www.abc.com)一起使用,必須正確設定DNS和域名配置。

步驟1 - 購買域名並將DNS設定配置為指向您的伺服器IP地址。

步驟2 - 為伺服器中使用的Nginx反向代理設定域名,在server_name指令中使用。

步驟3 - 配置wp-config.php檔案中的WordPress設定以啟用自定義域名。

define('WP_HOME', 'https://abc.com');
define('WP_SITEURL', 'https://abc.com');

步驟4 - 使用此命令重新啟動Docker服務:

$ docker-compose restart

步驟5 - 確保域名正確指向您的WordPress網站。

在Docker中為WordPress新增多個數據庫

某些複雜的WordPress設定可能需要多個數據庫,以提高系統的組織性或效能。使用Docker,您可以設定多個MySQL資料庫。

步驟1 - 要定義多個MySQL資料庫服務,請編輯docker-compose.yml檔案。

步驟2 - 為每個資料庫分配唯一的憑據,並掛載唯一的卷以確保資料的永續性。

步驟3 - 透過更新wp-config.php檔案來整合對多個數據庫設定的更改:

define('DB_HOST', 'db1');
define('DB_NAME', 'exampledb1');

步驟4 - 可以使用單獨的子域名或新的路徑訪問每個WordPress安裝。

結論

在本章中,我們討論瞭如何使用Docker和Docker Compose成功地容器化WordPress。此設定為WordPress應用程式在開發和生產伺服器上執行提供了一致的環境。它也易於擴充套件。

關於Docker化WordPress的常見問題

在本節中,我們收集了一組關於Docker化WordPress的常見問題及其答案。

1. 如何在Docker容器中設定WordPress網站?

您可以使用WordPress基礎映象在Docker容器中設定WordPress網站。這包括WordPress和所需的依賴項(例如,Apache、MySQL)。

您可以使用配置檔案在容器中配置WordPress。您必須在執行容器之前公開必要的埠。

2. 如何處理Docker容器中WordPress的資料永續性?

您可以使用捲來持久化WordPress資料。這包括資料庫資料、上傳檔案和其他站點內容。您可以將卷掛載到容器內的目錄,並配置WordPress以使用這些卷。請確保有適當的資料備份和恢復程式。

3. 如何在Docker容器中為WordPress配置HTTPS?

要為WordPress配置HTTPS,請獲取SSL/TLS證書並將其安裝在您的Web伺服器(例如,Apache)上。配置WordPress以使用該證書並將HTTP流量重定向到HTTPS。考慮使用Let's Encrypt之類的工具進行自動證書管理。

廣告