Docker, nginx, phpmyadmin плохое перенаправление при авторизации - PullRequest
0 голосов
/ 08 апреля 2020

При вводе логина и пароля меня выбрасывает в домен root:

www.example.com/phpmyadmin -> www.example.com/index.php

Мне нужно:

www.example.com/phpmyadmin -> www.example.com/phpmyadmin/index.php

my nginx .conf :

resolver 127.0.0.11 valid=15s;

server {
  listen 80;
  server_name localhost;
  set $upstream phpmyadmin:9000;

  location ^~ /phpmyadmin {
    alias /var/www/phpmyadmin/;
    index index.php;
    location ~ \.php$ {
      try_files      $uri = 404;
      include        fastcgi_params;
      fastcgi_split_path_info ^\/phpmyadmin\/(.+\.php)(.*)$;
      fastcgi_param  SCRIPT_FILENAME $fastcgi_script_name;
      fastcgi_pass   $upstream;
    }
  }
}

docker -compose.yml :

phpmyadmin:
    container_name: phpmyadmin
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin:fpm-alpine
    environment:
      - PMA_HOST=mysql
      - MYSQL_ROOT_PASSWORD=somepass 
    volumes: 
      - phpmyadmin:/var/www/html
    networks:
      - web   

webserver:
    image: nginx:1.16.1-alpine
    container_name: webserver
    depends_on: 
      - phpmyadmin
    ports: 
      - "80:80"
      - "443:443"
    volumes:
      - phpmyadmin:/var/www/phpmyadmin
      - ./nginx-conf:/etc/nginx/conf.d
    networks: 
      - web

Я много искал в Inte rnet. Эта проблема возникла у многих людей, и многие просто отказались использовать phpmyadmin на поддомене. Может, наконец-то есть решение?

1 Ответ

0 голосов
/ 14 апреля 2020

В вашем смонтированном каталоге phpmyadmin у вас должны быть файлы конфигурации, включая config.in c. php. Я решил эту проблему, добавив следующий код в конец этого файла:

$cfg['PmaAbsoluteUri'] = 'http:\/\/www.example.com/phpmyadmin';

Теоретически то же самое можно сделать с переменной среды PMA_ABSOLUTE_URI, но она не работает для меня.

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