我正在尝试使用 calibre2opds 将我的库放在我的服务器(fedora21)上。一切正常,我可以导航,直到我想下载 epub。
我收到错误 403:
You don't have permission to access /Anonyme/Le Livre Sans Nom (41)/Le Livre Sans Nom - Anonyme.epub on this server.
我通过192.168.1.21/calibre访问服务器。 Calibre2ops 把一切都放进去
/mnt/Sardaukar/web/calibre
HTML 文件由 calibre2opds 放入
/mnt/Sardaukar/web/calibre/_catalog
以及实际的 epub,例如
/mnt/Sardaukar/web/calibre/Anonyme/Le Livre Sans Nom (41)/Le Livre Sans Nom - Anonyme.epub
httpd 文件看起来像
Alias /calibre /mnt/Sardaukar/web/calibre/_catalog
<Directory /mnt/Sardaukar/web/calibre/_catalog>
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
我以前做过,即使使用 .htaccess 并且它以前有效,但现在,我不知道出了什么问题。 /mnt/Sardaukar/web/calibre 的权限是 770,由我 chown:www-users
经过更多研究,我在错误日志中发现:
[Mon Jun 22 21:06:59.774348 2015] [authz_core:error] [pid 10805] [client 192.168.1.5:51992] AH01630: client denied by server configuration: /var/www/html/Anonyme, referer: http://192.168.1.21/calibre/book_0
>>>/book_41.html
/var/www/html
为什么它尝试读取??中的 epub
答案1
首先,请参阅DistrosDefaultLayout - FedoraApache Wiki 上的条目
看起来您可能需要添加一个文档根(以覆盖默认值),并且由于您不从默认根提供文件,因此需要添加一个 ServerRoot(再次覆盖默认值):
Alias /calibre /mnt/Sardaukar/web/calibre/_catalog
ServerRoot "/calibre"
# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
DocumentRoot "/Anonyme/"
ServerName mypubs.local
# Other directives here
</VirtualHost>
<Directory /mnt/Sardaukar/web/calibre/_catalog>
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
这应该使整个路径读取 {ServerRoot} + {DocumentRoot},或 {Alias /calibre} + Anonyme
推理
出于安全原因,Apache 不允许在ServerRoot
.您所有书籍的链接不是 中的有效路径ServerRoot
。因此,我必须告诉 Apache 你的服务器在哪里“服务”如果这些都没有意义阅读Slicehost 上这篇精彩而深入的文章。由于 Gentoo 不是您的发行版,请使用Linux 发行版导航中的链接可找到我为您的特定发行版链接的同一篇文章。作为学习和实践的一部分,我会将您的 epub 保存在安全的地方,并执行以下操作:
- 删除我的黑客
httpd.conf
文件。 - 按照我链接的指南正确启用/配置虚拟主机。
- 将您的 epub 添加到您在步骤 #2 中创建的虚拟主机配置中。