簡體   English   中英

在docker-compose環境下開啟Wordpress調試模式

[英]Enabling Wordpress debug mode in docker-compose environment

我在理解如何通過 docker-compose 啟用 wordpress 調試模式時遇到問題。wp -config.php 調試部分的圖片

define( 'WP_DEBUG', !!getenv_docker('WORDPRESS_DEBUG', '') );

這是我應該能夠啟用它的 wp-config.php 文件的一部分。 該文件是只讀的,它似乎旨在通過 docker-compose.yaml 文件啟用此功能,但我不知道如何實現。 我嘗試將WORDPRESS_DEBUG: 'true'添加到 wordpress 服務的環境部分,但它會拋出 true/fals 數據類型的錯誤,並且 'true' 作為字符串似乎不起作用。 我能想到的唯一解決方案是以超級用戶身份編輯文件。

好吧,大約一年前,這讓我大跌眼鏡。 請參閱我的原始問題,該問題導致wp_debug模式被定義兩次,導致管理員中出現常量空白 php 錯誤...

更新 wordpress 5.6.2 至 5.7 通過 docker pull wordpress 后,管理員中的 php-error body class

wp_debugdocker wordpress圖像一起使用時的一些規則。

  1. 你不能使用define('WP_DEBUG', true); wp-config.php / WORDPRESS_CONFIG_EXTRAWORDPRESS_DEBUG: 1同時在docker-compose.yml中。 同時使用它們將始終在管理儀表板中顯示空白 php 錯誤。
  2. 當使用docker-compose.yml部署 wordpress 和 docker 來配置您的環境時,您永遠不必使用chmod 777手動更改項目的權限以使調試模式工作。
  3. 你也不應該編輯你的核心 wordpress docker 容器文件,所有環境配置都應該通過你的docker-compose.yml文件完成,這樣你就可以安全地啟動和更新你的 docker wordpress 容器鏡像。

所以現在我們知道了這些基本規則,這就是在docker-compose.yml中啟用WP_DEBUG的正確方法。 請參閱環境塊。

請注意,如果您嘗試啟動我的示例docker-compose.yml ,則在運行docker-compose up -d之前,您還必須在同一目錄中存在uploads.inierror-logging.ini文件。

請參閱此處的公共要點,其中包含在停靠之前需要實施的.ini文件代碼...

https://gist.github.com/joshmoto/ab7c09ca45291f7e6f9a14cf070fa70c

你的空項目目錄應該是這樣的......

在此處輸入圖像描述

這是完整的docker-compose.yml配置...

version: '3.7'

networks:
  wordpress:
    ipam:
      config:
        - subnet: 172.25.0.0/16

services:

  # here is our mysql database
  db:
    image: mysql:5.7
    volumes:
      - ./db:/var/lib/mysql:delegated
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wordpress

  # here is our wordpress server
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      # our persistent local data re routing
      - ./themes/yourtheme:/var/www/html/wp-content/themes/yourtheme:delegated
      - ./plugins:/var/www/html/wp-content/plugins
      - ./mu-plugins:/var/www/html/wp-content/mu-plugins
      - ./uploads:/var/www/html/wp-content/uploads
      - ./logs:/var/www/html/wp-content/logs
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./error-logging.ini:/usr/local/etc/php/conf.d/error-logging.ini
    ports:
      - "80:80"
    restart: always
    networks:
      - wordpress
    environment:

      # debug mode
      WORDPRESS_DEBUG: 1

      # docker wp config settings
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: wp_
      WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb

      # our local dev environment
      WORDPRESS_CONFIG_EXTRA: |

        /* development parameters */
        define('WP_CACHE', false);
        define('ENVIRONMENT', 'local');

        /* do not re-define WP_DEBUG here or it will throw a blank error in the admin */
        /* you can remove this entirely, this is just to show you what not to do */
        // define('WP_DEBUG', true);

        if (!defined('WP_HOME')) {
          /* force our home url */
          define('WP_HOME', 'http://localhost');
          define('WP_SITEURL', WP_HOME);
        }

現在你有了這個docker-compose.yml集,連同.ini文件,你現在可以安全地在你的項目目錄中運行這個命令來構建你的本地 wordpress 環境......

docker-compose up -d

這個docker-compose.yml示例還使用持久卷映射到您的項目目錄,因此一旦 docker 完成構建您的環境,您的本地項目目錄現在將如下所示...

在此處輸入圖像描述

如果您現在在初始 dockering up 完成后訪問http://localhost/ ,您現在將看到安裝頁面...

在此處輸入圖像描述

錯誤日志文件將保存到您的logs目錄,所有其他必要的 wordpress 目錄現在都映射到您的本地項目。

所以下次你運行docker-compose down然后重新運行docker-compose up -d時,你的本地環境將與你上次 dockered down 時完全一樣。

如果您使用的是 git,那么您可能希望使用.gitignore文件排除繁重的目錄,例如dbpluginsuploadslogs等...

/db
/plugins
/uploads
/logs

我還在gist中添加了.gitignore

祝你好運,希望這會有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM