我下载了官方的phpmyadmin docker镜像(https://store.docker.com/community/images/phpmyadmin/phpmyadmin)。一切都很好。
对我来说只有一个问题:访问url是http://localhost,我希望它变成http://localhost/phpmyadmin。
我做了一些研究,发现关键是在/etc/nginx.conf中,它被称为supervisord。下面是/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;
}
}谁知道如何修改这个nginx.conf使访问url变成http://localhost/phpmyadmin?
发布于 2021-08-03 23:55:17
我不建议在Nginx中解决这个问题。它可能容易出错,特别是当有人进行反向代理时。
似乎官方的phpmyadmin镜像是基于Apache的。
不幸的是,从2021年起,/phpmyadmin不能提供phpmyadmin
所以你必须自己构建额外的层:
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,它可以为你做同样的事情:
laimison/phpmyadmin:latest关闭主题:如果有人问反向代理中什么配置是足够的:
location /phpmyadmin {
proxy_pass http://pma:80;
proxy_set_header Host $http_host;
break;
}就这样。
发布于 2017-02-04 13:40:11
您可以尝试使用alias directive简单地更改location / {
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下工作。
https://stackoverflow.com/questions/42035947
复制相似问题