文章大綱
wordpress 網站不是靜態網站,因為有部落格系統需要用到 mysql 資料庫,所以我們並不能只建立一個 container 就架設 wp 網站,需要啟動mysql
、wordpress
兩個 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: {}
其中要注意的是:
MYSQL_ROOT_PASSWORD
:請設定高強度的密碼MYSQL_DATABASE
與WORDPRESS_DB_NAME
必須是相同的值MYSQL_USER
與WORDPRESS_DB_USER
必須是相同的值MYSQL_PASSWORD
與WORDPRESS_DB_PASSWORD
必須是相同的值wordpress.ports
是要對外輸出的端口,假設你設定5000:80
,網站建立後訪問網址就是localhost:5000
。
啟動 docker-compose
確認終端機目前位置在跟docker-compose.yml
同一層
$ docker-compose up -d
終端機開始下載mysql
跟wordpress
兩個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
,人事已非。
發表評論
想要加入討論嗎?請盡情發表您的想法!