在 Ubuntu 16.04 上的 Nginx 中设置 phpmyadmin 和反向代理后无法获取 /phpmyadmin
Posted
技术标签:
【中文标题】在 Ubuntu 16.04 上的 Nginx 中设置 phpmyadmin 和反向代理后无法获取 /phpmyadmin【英文标题】:Cannot GET /phpmyadmin after setting up phpmyadmin and reverse proxy in Nginx on Ubuntu 16.04 【发布时间】: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 信息
【参考方案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;
【讨论】:
以上是关于在 Ubuntu 16.04 上的 Nginx 中设置 phpmyadmin 和反向代理后无法获取 /phpmyadmin的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.3 在 ubuntu16.04 nginx 中使用命令 composer install --no-dev 上传
Ubuntu 16.04、nginx、phpmyadmin - 502 错误网关