編者按:隨著辦公方式的靈活化,各個企業當下對在線協作的需求也各有不同。企業內部協作通常采用FTP服務器或微軟SharePoint等平臺實現,但是長距離的在線協作,則往往需要通過HTTP實現。以下介紹在Linux平臺下搭建遠程協作平臺的協議:WebDAV。
WebDAV協議允許用戶通過HTTP保存和共享文件,這是一個非常有價值的突破,因為HTTP通常是只讀的,除了訪問文檔外,用戶可以編輯和重新上傳它們,你可以將其理解為一種基于HTTP的網絡文件系統,或一種支持長距離文件協作的方法。WebDAV協議支持文件鎖和版本控制,因此,當你訪問到WebDAV文件夾后,你就可以編輯文件,不用擔心會覆蓋其他人的編輯成果。時至今日,雖然在線協作的方法越來越多,但WebDAV在文件共享方面仍然有它的用處,特別是有很多的服務器和客戶端軟件支持它。
和FTP不一樣,HTTP提供強認證和加密,以及緩存和代理支持,因為WebDAV是工作在HTTP之上的,因此它也可以利用HTTP的這些特性,SSH可能是另一種選擇,但SSH在移動文件方面有一些限制,并且也沒有那么多客戶端默認就支持它。
WebDAV和Apache2
Apache服務器通過加載ismod_dav可以支持WebDAV文件夾,在Debian或Ubuntu上,輸入下面的命令開啟這個功能:
a2enmod dav a2enmod dav_fs /etc/init.d/apache2 restart
Mod_dav為服務器添加了WebDAV功能,mod_dav_fs提供后臺支持,允許訪問服務器文件系統中的資源,更多關于dav和dav_fs的詳細信息,請參考Apache的幫助手冊。
你也可以設置通過WebDAV可以訪問的文件夾,如:
<Directory "/web/juliet/davfolder"> Dav On Order Allow,Deny Allow from all AuthType Digest AuthName WebDAV-Realm AuthUserFile "/usr/var/webdav.passwd" require user juliet </Directory>
這里最重要的一行是Dav On,它將這個目錄轉換成一個WebDAV文件夾,剩下的部分都是對這個目錄設置的安全訪問限制,在任何目錄上開啟WebDAV功能之前,最重要的是設置認證,否則就會存在很大的漏洞,這里使用了MD5 Digest認證,將訪問權限制到用戶名,你也可以使用require valid-user。
為了允許別人寫入你的目錄,你需要修改它的權限,注意,Apache用戶必須能夠寫入這個目錄,再提醒一下,一定要注意安全問題,最好將WebDAV目錄和你的網站文件適度地分開。
如果要手動設置WebDAV,你需要在Apache配置文件中添加下面的內容:
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so DAVLockDB ${APACHE_LOCK_DIR}/DAVLock
然后重啟Apache,再設置你要共享的目錄。
客戶端DAV
雖然DAV通常由Web服務器提供,但Web瀏覽器不是訪問它的最佳渠道,大多數時候,你得到的是一個目錄列表(如果你已經在Apache設置中開啟這個功能),只能讀取或下載文件,不能編輯或上傳文件。
如果你想圖形化訪問,Nautilus和Konqueror文件瀏覽器都內置了對WebDAV的支持,使用dav://server.example.com/juliet打開文件夾(需要用戶名和密碼),現在你應該能夠編輯和上傳文件了,如果不行,可能需要檢查一下服務端的目錄和文件權限設置。
另一個WebDAV客戶端是cadaver,它是一個純命令行客戶端,它的工作方式和FTP客戶端差不多,使用下面的命令建立一個連接:
cadaver http://juliet.example.com/myfolder
當然,這里也是需要用戶名和密碼的,進入指定文件夾后,你就可以使用get(或mget) filename下載文件,或put(或mput) filename上傳文件了,cadaver也允許你編輯文件的元數據,而Nautilus和Konqueror則不行。還有一個辦法是使用fusedav(Debian或Ubuntu中已包含)作為普通文件系統的一部分訪問WebDAV目錄,你需要使用adduser username fuse將你的用戶添加到fuse用戶組,記住,一定要退出重新登錄才會生效,然后使用:
fusedav http://juliet.example.com/myfolder localfolder
打開遠程目錄,將其掛載為本地文件夾(localfolder),注意這個目錄必須事先創建好。
使用WebDAV還可以做到更多
除Mod_dav_fs允許你使用服務端目錄系統提供WebDAV文件外,還有其它模塊也行,如mod_dav_svn,它可以通過Apache提供一個Subversion倉庫,如果你要這么做,你還需要加載mod_dav_lock模塊(mod_dav_fs不需要鎖模塊,因為它有自己的鎖)。因為WebDAV是一個開放的協議,如果需要,你還可以用它做更多的事情。
英文原文連接:http://www.serverwatch.com/tutorials/article.php/3929346/article.htm