IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

分類:

,

如何在XAMPP中‧建立WebDAV伺服器

01. 之前做法是用Nextcloud伺服器中,建立WebDAV服務。但來到Apache環境,又要如何做到,就是今天的題目。

02. 手上已有XAMPP安裝在電腦上,在『網上世界』尋找一下,很容易就找到相關資料。

03. 首先,先在本機建立WebDAV伺服器放置檔案位置,如今次我會用『c:\webdav』資料夾。

04. 打開XAMPP Apache httpd.conf設定檔。

05. 啟用『mod_dav.so』及『mod_dav_fs.so』模組。

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

06. 同時,因為我埠位(port)80及443,已用在網頁伺服器上,所以我會建立一個新埠位,作為WebDAV服務之用,如今次我會用埠位『6464』。同時,在httpd.conf設定檔中,加入『Listen 6464』。

Listen 6464

07. 既然我已有網頁伺服器,為令WebDAV URL中與原來網頁URL分開不同放置檔案位置,我會用上Alias功能,所以需要在httpd.conf設定檔中,啟用『mod_alias.so』模組。

LoadModule alias_module modules/mod_alias.so

08. 打開『httpd-xampp.conf』設定檔中。

09. 加入WebDAV設定內容。

<VirtualHost *:6464>
Alias /webdav "d:\webdav"
DavLockDB "c:\davLock"
<Directory "c:\webdav">
Require all granted
Dav On
AuthType Basic
AuthName "webdav"
AuthUserFile "c:\webdav.pwd"
Require valid-user
</Directory>

10. 上面WebDAV設定內容,除了設定了WebDAV伺服器放置檔案資料夾位置,亦加上登入/密碼設定『AuthName “webdav”』及『AuthUserFile “c:\webdav.pwd”』。所以需要用到『htpasswd』指令,設定密碼檔案。

11. 在Windows執行CMD指令。切換到『C:\xampp\apache\bin』資料夾,執行以下命令,『c:\webdav.pwd』為登入/密碼檔案名稱,『webdav』是上面設定登入用戶名稱,『password』為此用戶設定密碼。

htpasswd -b "c:\webdav.pwd" "webdav" "password"

12. 完成後,重新啟動XAMPP Apache服務,便會看到埠位(port)6464已正在使用。

13. 打開網頁瀏覽器,輸入『http://<WebDav_server_ip>:6464/webdav』,便會看到『Forbidden: You don’t have permission to access this resource』錯誤。

14. 檢查Apache log檔案,未能存取錯誤(Forbidden),是因為在『c:\webdav』資料夾中,缺少了DirectoryIndex檔案。所以在『c:\webdav』資料夾中,加入『index.html』檔案,便不會再出現錯誤。

15. 其實設定WebDAV目的,除了下載檔案,亦會上載檔案,但一般的網頁瀏覽器,在沒有加上Add-on時,大多不能上傳檔案到WebDAV伺服器。所以有了像『CarotDAV』的WebDAV客戶端。

16. 打開『CarotDAV』客戶端。

17. 在『File』、『New connection』、『WebDAV』位置,輸入有關WebDAV伺服器設定。

18. 按『Test』執行測試,應該會看到錯誤405。有關錯誤405,是因為之前加入『index.html』檔案所做成。

19. 所以解決方法只能2選1,要不刪除『index.html』檔案,要不在『httpd-xampp.conf』設定檔加入以下內容,便不會再出現錯誤405。

DirectoryIndex disabled

20. 在『CarotDAV』客戶端連上WebDAV伺服器,便會看到資料夾內容。

21. 要解決網頁瀏覽器上問題,可以安裝Add-on,如Mozilla Firefox,可以找到『WebDAV Browser』這個Add-on。

22. 安裝後,就算WebDAV伺服器資料夾中,沒有『index.html』或Apache設定檔加入了『DirectoryIndex disabled』,也不會出現錯誤。但如果WebDAV伺服器中設定了密碼,就只能從WebDAV伺服器下載檔案,而不能上傳檔案。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *