爲了作個NAS,折騰了超久的Samba,看似簡單,其實Samba的用戶設置實在太繁瑣,坑太深。用戶權限和目錄權限、甚至磁盤格式稍有不一樣,都會致使沒法登陸。實在不靠譜,實際體驗也不是很穩定。
因此在找Alternatives過程當中,發現了這個也存在了好久的WebDav協議。
不像Samba是一個微軟開發的軟件體系,WebDav只是一種協議,確切說是世界上最廣泛的HTTP協議的一個小擴展。它不是一個軟件。nginx
因此就好理解,爲何搜索不到WebDav的官網和官方安裝指南了——由於沒有「官方」。誰均可以開發軟件支持這個協議,就像水均可以開發瀏覽器支持HTTP協議瀏覽網站同樣。
參考:How To Set Up WebDAV With Apache2 On Debian Etchweb
# 安裝Apache2服務器 sudo apt-get install -y apache2 # 開啓Apache2中對WebDav協議的支持 (記住最好在用戶目錄下執行不然報錯) cd ~ sudo a2enmod dav sudo a2enmod dav_fs # 建立共享目錄並修改權限 sudo mkdir -p /var/www/webdav sudo chown -R www-data:www-data /var/www/webdav # 建立WebDav的訪問用戶數據庫,順便建立用戶`pi` sudo htpasswd -c /etc/apache2/webdav.password pi # 建立guest用戶 #sudo htpasswd /etc/apache2/webdav.password guest # 修改用戶數據庫訪問權限 sudo chown root:www-data /etc/apache2/webdav.password sudo chmod 640 /etc/apache2/webdav.password # 打開默認配置文件 sudo vim /etc/apache2/sites-available/000-default.conf # 所有替換爲如下內容(記得先備份): Alias /webdav /var/www/webdav <Location /webdav> Options Indexes DAV On AuthType Basic AuthName "webdav" AuthUserFile /etc/apache2/webdav.password Require valid-user </Location> # 重啓Apache2服務器 sudo systemctl restart apache2 # 或 sudo /etc/init.d/apache2 reload
而後就能夠用任意瀏覽器輸入:http://樹莓派的IP地址/webdav
來訪問了。
注意,webdav
後面沒有/
斜槓。數據庫
網頁中若是正常顯示目錄中的文件結構,則能夠正常訪問:apache
這一步完成,咱們就能夠開始把這個共享文件夾映射到Mac、Windows上的本地文件夾了。vim
網頁裏只能像FTP同樣顯示文件目錄和下載文件。
若是要正常使用,咱們須要把它映射爲本地目錄才行:瀏覽器
CMD+K
打開鏈接服務器選項,輸入http://樹莓派IP地址/webdav
,輸入Webdav建立過的用戶名密碼來完成映射。Readdle Documents
,添加WebDav服務,輸入信息後就能夠訪問。直接看文檔、看視頻、聽歌都行。Windows上:比較麻煩的是,Win7以上默認只支持HTTPS的網絡驅動器,作爲HTTP的WebDav是不能連的。因此要修改Windows註冊表,讓它支持HTTP。方法入下:服務器
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel
這個項目,把值改成2
。net stop webclient
並按回車,中止網絡客戶端net start webclient
並按回車,開啓網絡客戶端映射網絡驅動器
,輸入網址http://樹莓派IP地址/webdav
或\\樹莓派IP地址\webdav
,而後輸入用戶名密碼,就能映射成功了。和Samba同樣,只要在/var/www/webdav/
這個共享出來的文件夾中,建立個空目錄,而後把移動硬盤用mount
命令掛載到這個目錄上。外部就能夠訪問了。網絡
配置上,比Samba不知道簡單到哪裏去了。架構
實驗證實,速度非凡!
Mac映射完成後,訪問就像本地文件夾同樣快,並且能夠直接看視頻、預覽圖片、支持本來各類快捷鍵等。
還能夠直接拖放文件來複制,速度也快到和本地複製文件沒有區別。
若是對比Samba,最明顯的是看圖片和視頻的打開速度。
Samba要等一秒以上,而WebDav幾乎沒有等待,或者說和本地打開文件同樣速度。
惟一缺點是,Windows訪問的話,是很卡很卡的。網站
穩定性上,由於是基於Apache2的,bug很是少,權限也不用傻傻分不清(和本地用戶也不要緊)。
遠程訪問上(我在AWS新加坡服務器上建的WebDav),速度也至關可靠,比我訪問樹莓派的WebDav還快。畢竟亞馬遜服務器配置高網速快。只是視頻訪問就沒那麼方便,常常卡頓、發生異常。可是也比較滿意了。
總結:WebDav配置方便,訪問輕鬆,權限管理輕鬆,穩定,超多平臺支持,完美!
用命令sudo /etc/init.d/apache2 reload
重啓服務器沒有反應,用命令sudo /etc/init.d/apache2 reload
從新加載Apache2時也報錯:
[....] Reloading apache2 configuration (via systemctl): apache2.serviceJob for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details. failed!
通常來說,頗有多是80端口被佔用了,有多是Nginx。
因此要找到佔用端口的服務,並關閉它。
具體方法以下:
# 找到全部nginx相關進程 $ ps -ef |grep nginx # 按照顯示出的nginx進程號逐一關閉 $ sudo kill -TERM 進程號 # 或 $ pkill -9 nginx # 從新加載Apache2服務器 $ sudo /etc/init.d/apache2 reload # 重啓Apache2服務器 $ sudo systemctl restart apache2
Reload後成功後就會顯示:
這樣再用瀏覽器嘗試訪問webdav服務的網址,就OK了
通常來說,不管是WebDav仍是Samba,訪問速度慢主要有這些因素:
因此,若是以上全部緣由都不構成鏈接速度慢的緣由的話,才須要考慮是否是WebDav軟件設置和架構出了問題。