前言
Serv00 搭建了兰空图床(也就是 Lsky Pro),可正当我上传了第一个图片准备看一看时,结果它 403 了:
于是便有了这篇文章。
复现
复现的方法很简单,在使用兰空图床默认配置(使用本地储存)不对其改动的情况下,随便上传一个图片,引用或直接打开,即可复现该问题。
解决
什么是 403?
要解决问题,首先要知道问题的本质。
状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。1 这个状态类似于 401,但进入 403 状态后即使重新验证也不会改变该状态。该访问是长期禁止的,并且与应用逻辑密切相关(例如没有足够的权限访问该资源)。1
通常一下三种场景会返回 403 错误2:
用户访问只能被内网访问的文件;
访问禁止目录浏览的目录,例:设置 autoindex off 后访问目录;
网站禁止特定的用户访问所有内容,例:网站屏蔽某个 ip 访问。
是什么原因导致的?
初步判断是文件权限的问题,因为我其他配置都是按照教程来的,也反复试了好几次还是 403。那么接下来开始解决问题吧。
解决方案
首先打开 Serv00 的面板,在打开自带的文件管理器。
就是侧边栏这个
并选择主目录下的 domains
文件夹(如果你没有安装在 domains
文件夹内,请以实际为准,变通一下),再点上面的 More
。
在点击 File Permissions
给文件夹授予权限。
把权限全部点上,别忘了勾选 Apply recursively?
(这样可以给文件夹内的所有文件也一并授予权限)
虽然权限已经授予了,但是在兰空图床默认设置下,图片路径命名规则是 年/月/日
,也就是说,你第二天上传图片,它又会创建一个新的文件夹,经过测试发现,新的文件夹的权限依然不足,这就导致第二天的图片无法访问。这样一天天的太麻烦了,别着急,且看下一步。
我们来的 你的域名/admin/groups
,在里面选择你要更改的角色组(若没有其他特殊要求,就改 系统默认组&游客组
,毕竟建这东西也是给自己用的),点击这个编辑:
把 路径命名规则
改成空值,这样兰空图床就不会每天更改路径了。(别忘了点右下角保存)
或者将图片名称改为{Y}{m}{d}{uniqid},既避免了图片重复又解决了问题。
现在问题就得到了解决。
参考链接
1.https://xshaw.top/posts/serv00ls403/