發佈日期:
如何在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伺服器下載檔案,而不能上傳檔案。
發佈留言