Docker環境佈建好後,新增目錄 wordpress
在目錄中建立檔案 docker-compose.yml
version: '3.1'
services:
wordpress:
image: arm64v8/wordpress:6.0.1-php7.4-apache
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: arm64v8/mariadb:10.5
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
redis:
image: redis:latest
restart: always
ports:
- 6379:6379
# 如需要資料持久化,可啟用下列設定
# volumes:
# - redis-data:/data
volumes:
wordpress:
db:
# redis-data:
使用終端機模式在目錄中執行
docker-compose up -d
執行完成後,就能順利看到安裝畫面
然後加碼來啟用Redis,可以用桌面版的Docker進入終端機模式
apt-get install -y libz-dev libzip-dev
pecl install redis
docker-php-ext-enable redis
到WordPress外掛安裝並啟用 Redis Object Cache
啟用後再到終端機 (看習慣用哪個編輯器自己選用)
apt-get install -y vim nano
到 wp-config.php加入
define('WP_REDIS_HOST', 'redis'); // 這裡的 'redis' 指向 docker-compose 服務名稱
define('WP_REDIS_PORT', 6379);
順利的話,就能在 wp-admin/options-general.php?page=redis-cache#diagnostics 看到使用 PhpRedis 連線的資訊
Status: Connected
Client: PhpRedis (v6.1.0)
Drop-in: Valid
Disabled: No
Ping: 1
Errors: []
PhpRedis: 6.1.0
Relay: Not loaded
Predis: 2.1.2
Credis: Not loaded
PHP Version: 7.4.30
Plugin Version: 2.5.4
Redis Version: 7.4.2
Multisite: No
Metrics: Enabled
Metrics recorded: 231
Filesystem: Writable
Global Prefix: "wp_"
Blog Prefix: "wp_"
Timeout: 1
Read Timeout: 1
Retry Interval:
WP_REDIS_HOST: "redis"
WP_REDIS_PORT: 6379
WP_REDIS_PLUGIN_PATH: "/var/www/html/wp-content/plugins/redis-cache"
Global Groups: [
"blog-details",
"blog-id-cache",
"blog-lookup",
"global-posts",
"networks",
"rss",
"sites",
"site-details",
"site-lookup",
"site-options",
"site-transient",
"users",
"useremail",
"userlogins",
"usermeta",
"user_meta",
"userslugs",
"redis-cache",
"blog_meta"
]
Ignored Groups: [
"counts",
"plugins",
"themes"
]
Unflushable Groups: []
Groups Types: {
"blog-details": "global",
"blog-id-cache": "global",
"blog-lookup": "global",
"global-posts": "global",
"networks": "global",
"rss": "global",
"sites": "global",
"site-details": "global",
"site-lookup": "global",
"site-options": "global",
"site-transient": "global",
"users": "global",
"useremail": "global",
"userlogins": "global",
"usermeta": "global",
"user_meta": "global",
"userslugs": "global",
"redis-cache": "global",
"blog_meta": "global",
"counts": "ignored",
"plugins": "ignored",
"themes": "ignored"
}
Drop-ins: [
"advanced-cache.php v by ",
"Redis Object Cache Drop-In v2.5.4 by Till Krüss"
]