首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将官方phpmyadmin docker镜像的访问url改为http://localhost/phpmyadmin?

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

Stack Overflow用户
提问于 2017-02-04 10:48:58
回答 2查看 2K关注 0票数 4

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

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

我做了一些研究,发现关键是在/etc/nginx.conf中,它被称为supervisord。下面是/etc/nginx.conf中的代码片段

代码语言:javascript
复制
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;
    }

}

谁知道如何修改这个nginx.conf使访问url变成http://localhost/phpmyadmin

EN

回答 2

Stack Overflow用户

发布于 2021-08-03 23:55:17

我不建议在Nginx中解决这个问题。它可能容易出错,特别是当有人进行反向代理时。

似乎官方的phpmyadmin镜像是基于Apache的。

不幸的是,从2021年起,/phpmyadmin不能提供phpmyadmin

所以你必须自己构建额外的层:

代码语言:javascript
复制
FROM phpmyadmin

RUN mv /var/www/html /var/www/phpmyadmin
RUN mkdir -p /var/www/html
RUN mv /var/www/phpmyadmin /var/www/html/phpmyadmin

或者你可以使用image,它可以为你做同样的事情:

代码语言:javascript
复制
laimison/phpmyadmin:latest

关闭主题:如果有人问反向代理中什么配置是足够的:

代码语言:javascript
复制
    location /phpmyadmin {
      proxy_pass http://pma:80;
      proxy_set_header Host $http_host;
      break;
    }

就这样。

票数 2
EN

Stack Overflow用户

发布于 2017-02-04 13:40:11

您可以尝试使用alias directive简单地更改location / {

代码语言:javascript
复制
location /phpmyadmin/ {
  alias /www;
  ...

这将服务于相同的根文件,但仅用于url http://localhost/phpmyadmin

关于docker,这意味着您需要docker构建自己的镜像,Dockerfile以FROM phpmyadmin/phpmyadmin:4.6开头,COPYing是nginx.conf的修改版本,有点像这个3bdigital/docker-phpmyadmin代码库。

OP faraday选择了更简单的方法:

自己构建了一个docker镜像,安装了ubuntu作为基础镜像并安装了phpmyadmin。

它在安装后在http://localhost/phpmyadmin下工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42035947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档