
我 LNMP 环境安装 Nextcloud,因为要设置伪静态,所以根据官方文档做了以下配置:
location = /phpmyadmin {
root /var/www/html/nextcloud; index index.html index.htm index.php; } location / { rewrite ^ /index.php$request_uri; } 我想通过 nginx 访问 phpmyadmin 来管理 mysql,但是我访问 http://localhost/phpmyadmin 时,Nginx 会报 404 错
误(默认 webroot 是 /var/www/html/nextcloud ),想请教下 location 应该怎么配置才能正确访问到 phpmyadmin
tail /var/log/nginx/error.log 查看错误信息,报错如下:
"/usr/share/nginx/html/pma/index.html" is not found (2: No such file or directory)
1 wly19960911  2019-01-06 12:09:28 +08:00 via Android 看不懂你的规则想表达什么,location / 下面访问哪个目录了?还有 location /phpMyAdmin 居然是 nextcloud 文件夹。 |
2 msg7086 2019-01-06 12:12:06 +08:00 phpmyadmin 指向 nextcloud ? |
3 0ZXYDDu796nVCFxq 2019-01-06 12:13:30 +08:00 via Android location = /phpmyadmin 改为 location /phpmyadmin |
4 care OP @wly19960911 我创建了 default.conf,root 指定的 var/www/html/nextcloud,所以 phpmyadmin 放置在上面的 root 目录内( var/www/html/nextcloud/phpmyadmin )我想通过 http://localhost/phpmyadmin 访问管理 mysql |
5 care OP @msg7086 我创建了 default.conf,root 指定的 var/www/html/nextcloud,所以 phpmyadmin 放置在上面的 root 目录内( var/www/html/nextcloud/phpmyadmin )我想通过 http://localhost/phpmyadmin 访问管理 mysql,默认通过 http://localhost 现在是可以访问 nextcloud 的,但是访问 phpmyadmin 就不行 |
6 wly19960911 2019-01-06 12:30:46 +08:00 via Android 我不清楚,这个样子我感觉有可能不仅是这两个规则影响,= 也可以去掉,错误日志和规则表现完全不一样… |
7 msg7086 2019-01-06 12:32:31 +08:00 1. root 或者 alias 可以直接改 root 地址。你可以在 location /phpmyadmin {} 段里面直接 alias 到另一个目录,不需要把 PMA 复制进 NC 里。(而且复制进 NC 是很不好的习惯。) 2. root 和 index 一般是放在 server 段里的,而不是放在 location 段里的。 3. 如上面所说,location 后面的等号要去掉。有等号说明只匹配 /phpmyadmin 而不匹配目录和其中的文件。 |
9 zen9073 2019-01-06 12:36:55 +08:00 你先把 root 挪到 location 外面来试试 |
10 care OP @zen9073 配置里 server 段已经定义了 root 目录(/var/www/html/nextcloud ),但是还是无法正常访问,所以我 google 了类似的案例,得到的这段 /phpmyadmin 的代码 |
11 care OP @msg7086 这样的话,我是不是重新开个 vhost 来访问 phpmyadmin 的意思?因为现在 default 我用 NC 目录作为 webroot 目录了。 |
12 msg7086 2019-01-06 16:55:13 +08:00 @care root /xxx/netcloud location /pma { alias /yyy/pma; } 顺便,不要把 phpmyadmin 作为目录的名字,除非你想让别人猜到目录名然后爆破你的数据库密码。 |
14 bin456789 2019-01-06 21:43:29 +08:00 location /pma { alias /var/www/html/pma/; } 注意最后的斜杆 |
16 msg7086 2019-01-07 05:27:23 +08:00 pma 也是被害重地啊,最好起个完全无关的名字,让人联想不到是 pma 的最好。 然后我先问一句,你改了配置以后重启过 nginx 么? 以及你说的不行是怎么个不行? 403 ? 404 ?还是什么。 |
17 care OP @msg7086 我改完配置都会执行 systemctl reload nginx.service 打开 http://localhost/pma 都是报 404 |
18 roadli 2019-01-07 10:06:18 +08:00 需要注意 location 的匹配优先级,匹配.php 的正则优先于普通前缀匹配 /pma 了 |
19 linxiaojialin 2019-01-07 10:36:44 +08:00 你可以把 phpmyadmin 做成跟 pma 一样啊,放到。 location /pma { alias /var/www/html/pma; } |
20 linxiaojialin 2019-01-07 10:37:46 +08:00 @linxiaojialin 放到 /var/www/html/phpmyadmin |
21 care OP @linxiaojialin 我现在已经把 phpmyadmin mv 为 pma 了的,但是打开还是 404 报错,可能就像上面那位朋友说的匹配优先级问题? |