2009年8月13日

【Apache】WebDav 相關設定

最近發現個好玩的東西



叫webdav



怎麼好玩呢?



當一台 web server 上沒有任何其他service時



要怎麼把檔案傳上web server呢?



其實可以靠Apache 的WebDav模組!



而且在Windows上有個軟體叫NetDrive



可以把ftp、webdav的連線內容模擬成一個磁碟來操作(當然需要相對的權限)



如此方便的功能,一定要來玩玩看得啦



首先要確定Apache有無安裝wevdav module



打開httpd.conf



搜尋



LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so



這兩行的註解記得拿掉



並且加上



Include conf/extra/httpd-dav.conf



路徑是妳webdav的設定檔



接下來就是設定httpd-dav.conf了



幾個重要參數介紹一下



DAVLockDB /usr/local/apache/var/DAVLock



這個必須要放在所有設定的最上面



DAVLock這個檔案mod_dav會在地一次執行時建立



但路徑裡的資料夾必須是要存在的



Alias /webdav "C:/xampp/webdav"



這是設定webdav的資料夾



<Directory "C:/xampp/webdav">

#將DAV功能開啟

Dav On

#設定該資料夾權限

    Order allow,deny

    Allow from all

#類似title

    AuthName DAV-upload


    AuthType Basic

#該資料夾登入時所用的帳號密碼檔(可用htpasswd建立)

#使用方法:htpasswd.exe -c "C:/yourPath/user.pwd" username

    AuthUserFile "C:/xampp/security/htpasswd.webdav"

 

#設定使用權限,GET是read權限,PUT是write權限  

<LimitExcept GET PROPFIND OPTIONS PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

#哪個user適用這個權限

require valid-user

 </LimitExcept>

</Directory>



最後在加上

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully

BrowserMatch "MS FrontPage" redirect-carefully

BrowserMatch "^WebDrive" redirect-carefully

BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully

BrowserMatch "^gnome-vfs/1.0" redirect-carefully

BrowserMatch "^XML Spy" redirect-carefully

BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On



就完成一個簡單的設定了



之後重新啟動Apache



就可以使用webdav的功能摟!







ps. 補上CentOS上的設定




<IfModule mod_dav_fs.c>


        LimitXMLRequestBody 131072


#WebDAV資料夾必須更改擁有者與擁有群組為apache:apache

<Directory /home/sites/your.domain.tld/webdav>

        # Options none

        Options Indexes FollowSymLinks

        IndexOptions FancyIndexing

        AllowOverride None

        Order allow,deny

        Allow from all

</Directory>


Alias /webdav "/home/sites/your.domain.tld/webdav"


<Location /webdav>

        DAV On

        AuthType Basic

        AuthName DAV

        AuthUserFile /etc/httpd/your.webdav.users.pwd

        <LimitExcept GET HEAD OPTIONS>

                require valid-user

        </LimitExcept>

</Location>

</IfModule>

沒有留言:

張貼留言