我 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 1
@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 报错,可能就像上面那位朋友说的匹配优先级问题?
|