wordpress 網站不是靜態網站,因為有部落格系統需要用到 mysql 資料庫,所以我們並不能只建立一個 container 就架設 wp 網站,需要啟動mysqlwordpress兩個 container。
當要同時啟動一個以上的 container 時,就會需要用到 docker-compose


創建專案

首先,創建一個專案資料夾

$ mkdir my-blog
$ cd my-blog

 

設定 docker-compose

新增docker-compose.yml檔案,並貼上以下程式碼:

version: "3.9"

services:
  db:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: admin
      MYSQL_PASSWORD: wp_database_password

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./:/var/www/html
    ports:
      - "5000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: admin
      WORDPRESS_DB_PASSWORD: wp_database_password
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}

其中要注意的是:

  1. MYSQL_ROOT_PASSWORD:請設定高強度的密碼
  2. MYSQL_DATABASEWORDPRESS_DB_NAME 必須是相同的值
  3. MYSQL_USERWORDPRESS_DB_USER 必須是相同的值
  4. MYSQL_PASSWORDWORDPRESS_DB_PASSWORD 必須是相同的值
  5. wordpress.ports 是要對外輸出的端口,假設你設定5000:80,網站建立後訪問網址就是localhost:5000

 

啟動 docker-compose

確認終端機目前位置在跟docker-compose.yml同一層

$ docker-compose up -d

終端機開始下載mysqlwordpress兩個docker image,非常的肥,要等一陣子。

這時候確認一下你的專案資料夾,原本只有一個docker-compose.yml檔案,現在多了一堆什麼wp-***.php之類的東西,表示他成功開始建立囉!

跑完之後請打開瀏覽器,輸入:localhost:5000

會出現 wordpress 初始化的畫面就成功了!

 

錯誤:您關注的鏈接已過期

網站架好後,要上傳檔案或主題時,出現「您關注的鏈接已過期」的錯誤,是因為一開始創建wp網站的時候,上傳檔案的限制是2MB。

可以從「媒體庫」–> 「新增媒體」那邊看到一行字:上傳檔案大小上限: 2 MB

2MB是要傳個屁,所以我們要改寫一下限制。

還記得docker-compose.yml那邊有一行 wordpress.volumes 的路徑是在./:/var/www/html,也就是說我在本地改的內容都可以馬上同不到正在運行的 container 上,不用重啟 docker-compose。

 那我們就來修改參數限制吧!

找到.htaccess,他應該會在docker-compose.yml同一層

# BEGIN WordPress
# 在含有 BEGIN WordPress 及 END WordPress 標記的這兩行間的指示詞內容為動態產生,
# 且應僅有 WordPress 篩選器能進行修改。對這兩行間任何指示詞內容的變更,
# 都會遭到系統覆寫。
php_value memory_limit 256M
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300

# END WordPress

 儲存後,網站重新整理就可以看到上限改成64M囉!

 

停止docker-compose

同樣在docker-compose.yml同層路徑下

$ docker-compose down

這時候再次訪問:localhost:5000,人事已非。

1+
0 回復

發表評論

想要加入討論嗎?
請盡情發表您的想法!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。