【问题标题】:Cannot GET /phpmyadmin after setting up phpmyadmin and reverse proxy in Nginx on Ubuntu 16.04在 Ubuntu 16.04 上的 Nginx 中设置 phpmyadmin 和反向代理后无法获取 /phpmyadmin
【发布时间】:2019-01-23 19:34:08
【问题描述】:

我遵循了 Digital Ocean 的关于设置 Nginx、PHP 和 phpmyadmin 的教程。

https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-ubuntu-16-04

但是我仍然无法使用我设置的地址(my-ip-address/phpmyadmin)访问phpmyadmin。

我为在 localhost:8010 上侦听的 node.js 应用程序设置了反向代理。

这是 /etc/nginx/sites-available/default 文件中的设置:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;
    server_name "my ip address";

    location / {
        proxy_pass http://localhost:8010/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    }

    location ~ /\.ht {
            deny all;
         }

}

【问题讨论】:

  • fastcgi 正在运行吗?
  • @ErvalhouS 是的,我使用 'sudo nano /var/www/html/info.php' 创建了一个 info.php 文件并编写了 .然后我可以使用地址“my-ip-address/info.php”访问我服务器上的 php 信息

标签: nginx phpmyadmin ubuntu-16.04 digital-ocean


【解决方案1】:

您正在使用此块将所有请求代理到http://localhost:8010

location / {
    proxy_pass http://localhost:8010/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

没有一个请求可以到达 phpmyadmin。尝试将此块注释掉或删除它,它应该可以按预期工作。

【讨论】:

  • 我为监听 localhost:8010 的 node.js 应用设置了反向代理。我应该改变它吗?
  • 哦,在这种情况下,您只需要添加一个新的location /phpmyadmin 块,其中root 指向您的phpmyadmin 安装。从现在开始,默认情况下所有请求都会发送到您的 node.js 应用程序。
  • 谢谢。我已经添加了 phpmyadmin 块并且它可以工作。
【解决方案2】:

您需要专门为您的location /phpmyadmin 设置一个块。由于您已经设置了一个规则,仅当显式扩展名是 location ~ \.php$ { 块上的 .php 时才重定向到您的 fastCGI,所以 /phpmyadmin 位置将作为对您的代理应用程序的请求进行处理。你必须添加这个:

location /phpmyadmin {
   root /path/to/phpmyadmin;
   include snippets/fastcgi-php.conf;
   fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
}

【讨论】:

  • 感谢您的回答。
【解决方案3】:

我添加了以下代码来访问 phpmyadmin:

  location /phpmyadmin {
     root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

}

【讨论】:

    猜你喜欢
    • 2013-10-21
    • 2016-09-05
    • 2017-03-27
    • 2016-08-20
    • 2016-08-24
    • 2021-06-11
    • 2020-10-23
    • 2018-07-26
    相关资源
    最近更新 更多