phpMyAdmin не работает с nginx -прокси - php_network_getaddresses - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь получить доступ к phpMyAdmin позади nginx -proxy Docker образа, размещенного на моем VPS.

Когда я пытаюсь войти в phpMyAdmin, Я получаю сообщение об ошибке: php_network_getaddresses: getaddrinfo failed: Name or service not known

error messages by phpMyAdmin

Файл docker, составленный :

version: "3"

services:
  mysql:
    build:
      context: "./bin/mysql8"
    container_name: 'mysql'
    restart: 'always'
    ports:
      - "3306:3306"
    volumes: 
      - ./data/mysql:/var/lib/mysql
      - ./logs/mysql:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'sc-phpmyadmin'
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      PMA_USER: ${MYSQL_USER}
      PMA_PASSWORD: ${MYSQL_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    expose:
      - 80
    environment:
       VIRTUAL_HOST: myadmin.example.com
       LETSENCRYPT_HOST: myadmin.example.com
    volumes: 
      - /sessions

networks:
  default:
    external:
      name: nginx-proxy

Соединение защищено letsencrypt- nginx -proxy-companion (работает правильно). Я уже читал эту ветку об ошибке https://github.com/jwilder/nginx-proxy/issues/596, но рабочего решения нет.

1 Ответ

0 голосов
/ 24 февраля 2020

Это не должно быть проблемой с прокси, так как соединение с pma происходит напрямую на уровне сервера. Прокси никогда не узнает об этом. Поскольку вы можете получить доступ к контейнеру pma (вы можете увидеть страницу входа в систему), ваша настройка прокси, кажется, работает правильно. Можете ли вы добраться до контейнера mysql из контейнера pma?

Попробуйте запустить docker-compose exec phpmyadmin bash, чтобы запустить оболочку внутри контейнера pma, и запустить ping mysql.

. также попробуйте переименовать контейнер mysql в db, так как контейнер pma по умолчанию попытается подключиться к БД на этом хосте.

В заключение, вы можете попробовать установить переменную PMA_ARBITRARY=1 env в контейнер pma, который позволит вам подключиться к любому серверу mysql с него. Затем вы можете попробовать либо mysql, либо db или около того.

(Возможно также, что контейнер mysql еще не был готов и поэтому отклонил соединение - но это было бы другое сообщение об ошибке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...