[英]phpMyAdmin as PHP-FPM container
I've these two containers:我有这两个容器:
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/'
In site.conf, how can I "pass" requests to PhpMyAdmin on port 9000?在 site.conf 中,如何在端口 9000 上将请求“传递”给 PhpMyAdmin? I've tried:
我试过了:
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;
}
}
But this is clearly not working...could you please point me in the right direction?但这显然不起作用......你能指出我正确的方向吗? Thanks.
谢谢。
When using docker-compose it automatically creates a network for all containers so they can communicate with each other.当使用 docker-compose 时,它会自动为所有容器创建一个网络,以便它们可以相互通信。 Each container can be resolved using it's name in the docker-compose file, the following names are used in your file:
nginx
and pma
.可以使用 docker-compose 文件中的名称解析每个容器,您的文件中使用以下名称:
nginx
和pma
。
This means pma
should be used when searching for the fpm(fastcgi_pass):这意味着在搜索 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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.