Apache-Httpd
epub文件上的calibre opds錯誤403
我正在嘗試使用 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?
首先,請參閱 Apache Wiki 上的DistrosDefaultLayout - Fedora條目
看起來您可能需要添加一個 Document Root (以覆蓋預設值),並且由於您不是從預設根目錄提供文件,因此 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 Distros連結查找我為您的特定發行版連結的同一篇文章。作為學習和實踐的問題,我會將您的 epub 保存在安全的地方,並執行以下操作:
- 刪除我的hackish
httpd.conf
文件。- 按照我連結的指南正確啟用/配置虛擬主機。
- 將您的 epub 添加到您在步驟 #2 中創建的 VirtualHost 配置中。