如何将官方 phpmyadmin docker 镜像的访问 url 更改为 http://localhost/phpmyadmin?

far*_*day 5 nginx phpmyadmin docker

我下载了官方 phpmyadmin docker 镜像(https://store.docker.com/community/images/phpmyadmin/phpmyadmin)。一切都好。

对我来说只有一个问题:访问网址是http://localhost,我希望它变成http://localhost/phpmyadmin.

我做了一些研究,发现关键在于/etc/nginx.confsupervisord的调用。这是其中的片段/etc/nginx.conf:

server {
    listen 80 default_server;
    server_name _;

    root /www;

    index index.php index.html index.htm;

    charset utf-8;

    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
       return 405;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
    }

    location ~ \.php$ {
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;

        # regex to split $uri to $fastcgi_script_name and $fastcgi_path
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        # Check that the PHP script exists before passing it
        try_files $fastcgi_script_name =404;

        # Bypass the fact that try_files resets $fastcgi_path_info
        # see: https://trac.nginx.org/nginx/ticket/321
        set $path_info $fastcgi_path_info;
        fastcgi_param PATH_INFO $path_info;

        fastcgi_read_timeout 600;
        fastcgi_buffering off;

        fastcgi_index index.php;

        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  QUERY_STRING       $query_string;
        fastcgi_param  REQUEST_METHOD     $request_method;
        fastcgi_param  CONTENT_TYPE       $content_type;
        fastcgi_param  CONTENT_LENGTH     $content_length;

        fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param  REQUEST_URI        $request_uri;
        fastcgi_param  DOCUMENT_URI       $document_uri;
        fastcgi_param  DOCUMENT_ROOT      $document_root;
        fastcgi_param  SERVER_PROTOCOL    $server_protocol;
        fastcgi_param  REQUEST_SCHEME     $scheme;
        fastcgi_param  HTTPS              $https if_not_empty;

        fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE    nginx;

        fastcgi_param  REMOTE_ADDR        $remote_addr;
        fastcgi_param  REMOTE_PORT        $remote_port;
        fastcgi_param  SERVER_ADDR        $server_addr;
        fastcgi_param  SERVER_PORT        $server_port;
        fastcgi_param  SERVER_NAME        $server_name;

        # PHP only, required if PHP was built with --enable-force-cgi-redirect
        fastcgi_param  REDIRECT_STATUS    200;
    }

    location ~ /\. {
        deny  all;
    }

    location ~ /(libraries|templates) {
        deny all;
    }

}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何修改它nginx.conf以使访问网址变为http://localhost/phpmyadmin?

Von*_*onC 1

您可以尝试简单地location / {使用alias指令进行更改:

location /phpmyadmin/ {
  alias /www;
  ...
Run Code Online (Sandbox Code Playgroud)

这将提供相同的根文件,但仅适用于 urlhttp://localhost/phpmyadmin

关于 docker,这意味着你需要 docker 构建自己的镜像,使用以 开头的 Dockerfile FROM phpmyadmin/phpmyadmin:4.6,并复制 的修改版本nginx.conf,有点像这个3bdigital/docker-phpmyadminrepo。


OP法拉第选择了更简单的方法:

我自己构建了一个 docker 镜像,使用 ubuntu 作为基础镜像并安装了 phpmyadmin。安装后
可以在下面运行。http://localhost/phpmyadmin


归档时间:

查看次数:

3420 次

最近记录:

5 年,2 月 前