Qnap安裝WordPress筆記

安裝 Container Station APP

應用程式建立

services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8088: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: mariadb:latest
    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

volumes:
  wordpress:
  db:
  redis:

正常情況下,輸入192.168.xx.xx:8088 就能進站,但我遇到連線錯誤

Error establishing a database connection

因此我們必須要進入終端機執行安裝 mariadb-client

應用程式進入 8088-wordpress-1,再點右上執行,就能進入終端機模式

apt-get update && apt-get install -y mariadb-client

執行完成後,就能順利看到安裝畫面

然後加碼來啟用Redis

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"
]

瀏覽次數:41