Apache 2:只讀掛載文件系統的符號連結
我有一個大型數據儲存庫,為了安全起見,我希望為執行 Ubuntu 14.04 的 VM 保持只讀掛載。
此 VM 執行 Apache 伺服器,我希望將某些文件從只讀掛載資源符號連結到
public_html
.當試圖通過瀏覽器訪問這些子目錄時,它們是空的。檢查 Apache error.log,我看到以下錯誤:
AH00032: Symbolic link not allowed or link target not accessible
根據來自的答案:
很明顯,我需要
chmod +x
文件和目錄才能讓 Apache 訪問它們。但是,這顯然不能對只讀文件系統進行。我相信這個問題無法通過 解決
FollowSymLinks
,因為它是導致問題的文件系統的基本訪問。儘管如此,我已經為 Apache 配置了以下符號連結,並在指向讀寫文件系統上的其他文件時驗證它是否有效。(非常)不雅的解決方案是將文件從只讀掛載臨時復製到一些本地暫存空間並符號連結到那裡,但是文件很大,需要額外的內務管理來防止這個區域膨脹,我需要這些文件通過請求伺服器在適當的時間尺度上提供服務。
關於如何訪問只讀驅動器上託管的符號連結文件,是否有人有任何其他建議?
非常感謝,
大衛
在某種程度上,感謝 Iain 的回答,我找到了解決方案。
事實上,這個問題似乎是由 fstab 中的掛載選項引起的。我從:
data_raid /data_raid/ vboxsf defaults 0 0
到
data_raid /data_raid/ vboxsf defaults,gid=1000,uid=1000 0 0
哪裡
gid=1000
對應於我的使用者名。安裝資源(rw)的主機已經是
chmod+x
. 但是,由於它是根安裝的,我相信這會導致上述訪問問題。在新的掛載選項下重新啟動(組和使用者現在是我登錄的使用者)允許在 Apache 下訪問符號連結文件。
將文件系統臨時掛載為 RW,修復權限並再次掛載 RO。