phpMyAdmin作为PHP-FPM容器

我有以下两个容器:

  nginx:
    image: nginx:1.17.4-alpine
    container_name: nginx
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - './certs:/etc/nginx/certs'
      - './site.conf:/etc/nginx/conf.d/site.conf'
  pma:
    image: phpmyadmin/phpmyadmin:4.9-fpm
    container_name: pma
    environment:
      - PMA_ARBITRARY=1
      - 'PMA_ABSOLUTE_URI=https://pma.local/'

在site.conf中,如何将请求“传递”到端口9000上的PhpMyAdmin?我尝试过:

server {
    listen 443 ssl;
    server_name pma.local;
    ssl_certificate /etc/nginx/certs/pma.local.crt;
    ssl_certificate_key /etc/nginx/certs/pma.local.key;

    location / {
        proxy_pass https://pma.local:9000;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

但是,这显然行不通...您能指出我正确的方向吗?谢谢。

xing3993 回答:phpMyAdmin作为PHP-FPM容器

使用docker-compose时,它会自动为所有容器创建一个网络,以便它们可以相互通信。可以使用docker-compose文件中的名称来解析每个容器,文件中使用以下名称:nginxpma

这意味着在搜索fpm(fastcgi_pass)时应使用pma

 location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass pma:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
本文链接:https://www.f2er.com/2746879.html

大家都在问