簡體   English   中英

docker-compose, WordPress 和 MariaDB, PHP異常

[英]docker-compose, WordPress and MariaDB, PHP Fatal error: Uncaught mysqli_sql_exception: Connection refused

我有一個具有以下docker-compose配置的 WP 項目。 當我嘗試連接我的http://localhost以訪問安裝時,我得到 500,我在日志中讀到了這個:

PHP Fatal error: Uncaught mysqli_sql_exception: Connection refused in /var/www/html/web/wp/wp-includes/wp-db.php

我認為 ip 或主機有問題,但奇怪的是 phpmyadmin 工作正常,它與mysql連接沒有問題。

version: '3.9'
services:
  nginx:
    image: nginx:latest
    container_name: ${APP_NAME}-nginx
    ports:
      - '80:80'
    volumes:
      - "./nginx/:/etc/nginx/templates/"
      - ./src:/var/www/html:rw,cached
      - ./certs:/etc/certs
    environment:
      - "NGINX_ENVSUBST_TEMPLATE_SUFFIX=.conf"
      - "DOMAIN=${DOMAIN}"
    depends_on:
      - wordpress
    restart: always

  mysql:
    image: mariadb:latest
    container_name: ${APP_NAME}-mysql
    command: --lower_case_table_names=2
    volumes:
       - './data/db:/var/lib/mysql:delegated'
    environment:
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
      - MYSQL_DATABASE=${DB_NAME}
    restart: always
    ports:
      - '3307:3306'

  wordpress:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ${APP_NAME}-wordpress
    volumes:
      - ./src:/var/www/html:rw,cached
      - ./config/php.ini:/usr/local/etc/php/conf.d/php.ini
    environment:
      XDEBUG_ENABLED: 1
      XDEBUG_CONFIG: remote_host=host.docker.internal
      PHP_IDE_CONFIG: serverName=localhost
    env_file:
      - src/.env
    depends_on:
      - mysql
    restart: always

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: ${APP_NAME}-phpmyadmin
    volumes:
      - ./config/phpmyadmin.ini:/usr/local/etc/php/conf.d/phpmyadmin.ini
    environment:
      PMA_HOST: "${DB_HOST}"
      PMA_PORT: 3306
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
    ports:
      - '8083:80'
    links:
      - mysql:mysql

  mailhog:
    container_name: ${APP_NAME}-mailhog
    image: mailhog/mailhog
    ports:
      - "8025:8025"
      - "1025:1025"

  composer:
    image: composer
    container_name: ${APP_NAME}-composer
    working_dir: /var/www/html
    restart: 'no'
    volumes:
      - ./src:/var/www/html:rw,cached

我的 wordpress .env在其他設置中,將主機設置如下:

DB_HOST="mysql:3307"

但我也試過

DB_HOST="mysql:3306"

或者干脆

DB_HOST="mysql"

你有什么建議嗎?

謝謝。

您的 Wordpress 實例和 MySQL 實例未連接。 嘗試在 docker-compose.yml 上添加networks

nginx:
 ...
 networks:
  - your-network-name

mysql:
 ...
 networks:
  - your-network-name

wordpress:
 ...
 networks:
  - your-network-name

並在文件底部添加:

networks:
 your-network-name:
  driver: bridge

這是配置docker相互連接的方式

暫無
暫無

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

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