我也打这个。我设法恢复了,但这实际上等于硬清除了之前安装 Web Station、PHP 7.2、phpMyAdmin 和任何其他 Web 相关服务的任何证据。然后手动删除一些带有损坏的符号链接/权限的坏目录。
我的假设是我在此之前尝试安装 adminer - 没有为 Web Station 等进行任何设置。人。 - 它使文件系统处于错误状态。
我不愿意再次尝试安装 adminer 来检验这个假设。
我做了什么来解决这个问题:
- 备份您需要的内容(例如,任何个人网站)。
- SSH 进入您的磁盘站。 请注意您在做什么,并牢记大局。不要随意删除东西。
- 卸载 Web Station、PHP 7.2、Apache、phpMyAdmin 等。Web Station 最终倾向于阅读和提供的任何内容。
- 确认
/var/services/web 不包含您关心的任何内容,然后将其删除 (sudo rm -rf /var/services/web)。
- 确认
/volume1/web 不包含您关心的任何内容,并删除其中的所有内容 (sudo rm -rf /var/services/web)。您可能需要为此设置 chmod 权限 - 我最终将 Web 目录本身完好无损,但里面什么都没有。
- 重新启动。挂载任何加密磁盘等。
- 检查
/var/services/web 现在是否显示它已符号链接到/volume1/web,例如sudo readlink -e /var/services/web。
- 还要检查
/volume1/web 的权限,例如ls -al /volume1。它应该由 root:root 拥有并具有许可 (777) 位。
- 按此顺序安装 Web Station、PHP 7.2 和 phpMyAdmin。
之后,我可以打开 phpMyAdmin 并看到它的登录屏幕。
调试说明:
对我来说,当我通过 SSH 登录时,我会在日志中看到类似的问题:
2020/12/17 10:36:35 [error] 32658#32658: *1028 "/var/services/web/phpMyAdmin/index.php" is forbidden (13: Permission denied),
ps 表示 nginx 工作人员以 http 用户 (uid=1023(http) gid=1023(http) groups=1023(http)) 运行。
目录/var/services/web/ 似乎归根用户所有,包括组和用户:
# ls -al /var/services/web/
total 424
drwxr-xr-x 3 root root 4096 Dec 17 10:29 .
drwxr-xr-x 3 root root 4096 Dec 17 10:22 ..
-rw-r--r-- 1 root root 27959 Apr 13 2016 adminer.css
-rw-r--r-- 1 root root 82 Apr 13 2016 .htaccess
-rw-r--r-- 1 root root 387223 Apr 13 2016 index.php
drwxr-xr-x 10 root root 4096 Dec 17 10:29 phpMyAdmin
鉴于不匹配,我完全不清楚 Web Station 的 nginx 打算如何工作 - 也许我之前采取的某些操作导致它决定以错误的所有权进行安装。
我决定将所有内容保留为 root,但更改了组权限,以便 http 可以访问:
# chown -R root:http /var/services/web/
# chmod -R 775 /var/services/web/
这克服了最初的错误,但出现了一个新错误:
"/usr/syno/synoman/phpMyAdmin/index.cgi" is not found (2: No such file or directory)
确实,该目录中的任何地方都没有 phpMyAdmin 的踪迹。安装错误的证据。
我决定卸载任何与 Web 相关的东西:phpMyAdmin、PHP 7、Apache(碰巧已安装)、nginx 和 Web Station。完成后,/var/services/web 中仍有两个文件:adminer.css index.php。
在此之前我曾尝试过 adminer。在/var/services 中,有指向特定卷位置的符号链接,例如:
# ls -al /var/services/
total 12
drwxr-xr-x 3 root root 4096 Dec 17 10:22 .
drwxr-xr-x 17 root root 4096 Dec 17 10:21 ..
lrwxrwxrwx 1 root root 18 Jan 20 2020 download -> /volume1/@download
lrwxrwxrwx+ 1 root root 14 Dec 17 10:22 homes -> /volume1/homes
lrwxrwxrwx 1 root root 24 Jan 20 2020 pgsql -> /volume1/@database/pgsql
lrwxrwxrwx 1 root root 13 Dec 17 10:22 tmp -> /volume1/@tmp
lrwxrwxrwx 1 root root 13 Dec 17 10:22 web
有趣的是,网络没有符号链接。我完全删除了/var/services/web。
查看/volume1,我确实看到了/volume1/web,它再次完全由root拥有,但权限极其受限:
d---------+ 1 root root 52 Dec 17 10:14 web
这里只有几件事,看起来与 Web Station 的空白安装有关。我完全删除了/volume1/web 中的所有内容,但保持原样。将所有东西都清理干净后,我重新启动了。
在启动时,/var/services/web 现在符号链接到 /volume1/web,它现在也有有用的权限位 (777),并归 root:root 所有。也许这是由一些引导恢复过程完成的,谁知道呢。 (此时我还没有安装任何与网络相关的东西。)
我安装了 Web Station,然后是 PHP 7.2,然后是 phpMyAdmin。