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