在Ubuntu 16.04的Nginx中设置phpmyadmin和反向代理后,无法获取/ phpmyadmin

时间:2018-08-16 19:06:32

标签: nginx phpmyadmin ubuntu-16.04 digital-ocean

我遵循了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;
         }

}

3 个答案:

答案 0 :(得分: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。尝试注释掉该块或将其删除,它应该会按预期工作。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

}