【问题标题】:phpMyAdmin as PHP-FPM containerphpMyAdmin 作为 PHP-FPM 容器
【发布时间】:2020-01-18 19:06:26
【问题描述】:

我有这两个容器:

  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;
    }
}

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

【问题讨论】:

  • 您遇到的错误是什么,是 nginx 错误还是应用程序本身无法运行,还是 docker 错误?可以帮助指出问题
  • 你可能想在Server Fault 上问这个问题,因为这更多的是关于配置 nginx

标签: php docker nginx docker-compose fpm


【解决方案1】:

使用 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;
    }

【讨论】:

    猜你喜欢
    • 2017-05-04
    • 2014-06-03
    • 1970-01-01
    • 2021-02-23
    • 2017-08-21
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多