1. 程式人生 > >Mac Apache WebDav 伺服器配置

Mac Apache WebDav 伺服器配置

1、WebDav 伺服器

  • 基於 http 協議的 “檔案” 伺服器。

  • 實現檔案的上傳/下載/修改/刪除。

  • WebDav 許可權

    • 授權資訊的格式 BASIC (使用者名稱:口令)base64
    • 安全性並不高,密碼很容易被攔截和破解。
  • 應用場景:開發企業級的管理系統,可以用 WebDav 搭建一個內部的檔案管理伺服器,只是在公司內網使用。

2、配置準備工作

  • 1)配置伺服器的工作

    • 修改了兩個配置檔案。
    • 建立 web 訪問使用者的使用者名稱和口令。
    • 建立了兩個目錄,並且設定管理許可權。
  • 2)配置伺服器注意事項

    • 關閉中文輸入法。
    • 命令和引數之間需要有 “空格”。
    • 修改系統檔案一定記住 “sudo”,否則會沒有許可權。
  • 3)示例配置環境

    • macOS 10.11.6
    • macOS 10.13.3
  • 4)WebDav 伺服器配置指令碼檔案

3、配置伺服器

  • 開啟終端,按照下面的操作開始配置,$ 開頭的,可以直接拷貝,但是不要拷貝 $

    # 切換工作目錄
    $ cd /etc/apache2
    
    # 備份檔案,以防不測,只需要執行一次就可以了,格式 cp (copy 的縮寫) (原始檔) (目標檔案)
    # 如果後續操作出現錯誤,可以使用以下命令恢復  $ sudo cp httpd.conf.bak httpd.conf
    $ sudo cp httpd.conf httpd.conf.bak
    
    # 用 vim 開啟 httpd.conf 檔案(sudo 操作需要輸入系統密碼)
    $ sudo vim httpd.conf
    
    # 查詢 httpd-dav.conf,命令模式下輸入 /(查詢內容),區分大小寫,回車跳轉到查詢的內容處
    /httpd-dav.conf
    
    # 將游標移動到 #Include /private/etc/apache2/extra/httpd-dav.conf 行首
    # 命令模式下直接按鍵盤上的 0 鍵
    0
    
      #Include /private/etc/apache2/extra/httpd-dav.conf
      
    # 刪除行首註釋 #,命令模式下直接按鍵盤上的 x 鍵
    x
    
      Include /private/etc/apache2/extra/httpd-dav.conf
    
    # 注意:在 macOS 10.10+ 配置時還需要在 httpd.conf 中同樣開啟以下三個模組
    
      LoadModule dav_module libexec/apache2/mod_dav.so
      LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
      LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
    
    # 儲存並退出,命令模式下輸入 :wq ,不儲存退出為 :q!
    :wq
    
    # 切換工作目錄
    $ cd /etc/apache2/extra
    
    # 備份檔案(只要備份一次就行)
    $ sudo cp httpd-dav.conf httpd-dav.conf.bak
    
    # 用 vim 開啟 httpd-dav.conf 檔案(sudo 操作需要輸入系統密碼)
    $ sudo vim httpd-dav.conf
    
    # 查詢 Digest,命令模式下輸入 /(查詢內容),區分大小寫,回車跳轉到查詢的內容處
    /Digest
    
      AuthType Digest   
    
    # 進入編輯模式,命令模式下直接按鍵盤上的 i 鍵
    i
    
    # 將 Digest 修改為 Basic
    
      AuthType Basic
    
    # 返回到命令列模式,編輯模式下直接按鍵盤上的 esc 鍵
    esc
    
    # 儲存並退出,命令模式下輸入 :wq ,不儲存退出為 :q!
    :wq
    
    # 切換工作目錄,切換儲存 WebDav 伺服器配置指令碼檔案的目錄
    $ cd (儲存 put 指令碼的目錄)
    
    # 以管理員許可權執行 put 配置指令碼(對於 macOS 10.11+ 使用者,需要關閉 SIP 安全設定)
    $ sudo ./put
    
    # 輸入系統密碼
    (當前使用者開機密碼)
    
    # 設定兩次 WebDav 密碼
    adminpasswd(密碼隨便設定)
    
    # 如果出現以下提示,表示配置完成
    
      drwxr-xr-x	2 _www  _www   68  3 30 11:50 uploads
      -rw-r--r--	1 root  _www   44  3 30 11:50 user.passwd
      drwxr-xr-x	2 _www  _www   68  3 30 11:50 var
    
    # 設定的使用者名稱為:admin,密碼為:adminpasswd(上面兩次輸入的 WebDav 密碼)
    
    # 開啟 Finder,在 Finder 的選單中依次選擇 前往 => 連結伺服器(command + k)
    # 在彈出的對話方塊的伺服器位址列中輸入伺服器地址
    # 如      http://127.0.0.1/uploads
    # 或者輸入 http://localhost/uploads
    # 或者輸入 http://本機 IP 地址/uploads 進行測試,
    # 輸入使用者名稱:admin,密碼:adminpasswd 進行連線,
    # 能夠開啟 uploads 資料夾表示配置成功。
    
  • WebDav 伺服器配置指令碼檔案 put 內容

    # 切換目錄
    $ cd /usr
    
    # 設定使用者 admin 的密碼
    $ htpasswd -c /usr/user.passwd admin
    
    # 設定密碼檔案的訪問群組
    $ chgrp www /usr/user.passwd
    
    # 建立 var 資料夾,儲存 DavLockDB 相關檔案
    $ mkdir -p /usr/var
    
    # 修改 var 資料夾使用者群組
    $ chown -R www:www /usr/var
    
    # 建立上傳資料夾:uploads
    $ mkdir -p /usr/uploads
    
    # 修改 uploads 資料夾使用者群組
    $ chown -R www:www /usr/uploads
    
    # 確認
    $ ls -lG
    
    # 重新啟動 Apache
    $ apachectl -k res
    

4、常見問題

  • 1)mac root 使用者 在 usr 目錄下沒有寫許可權

    • 對於 macOS 10.11+ 使用者,由於系統啟用了 SIP(System Integrity Protection), 導致 root 使用者也沒有許可權修改 /usr 目錄。

  • 2)Windows 電腦連線 Mac 電腦建立的 WebDav

    • 修改登錄檔

      • 在 “系統選單” => “執行” 中輸入 regedit,開啟“登錄檔”。
      • 在以下路徑中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 把 BasicAuthLevel 值改成 2,即同時支援 http 和 https,預設只支援 https。
    • 重啟 webclient 服務

      • 在“命令提示符”中輸入以下命令,重啟 webclient 服務,注意需要以管理員身份執行。

        # 停止 webclient 服務
        $ net stop webclient
        
        # 啟動 webclient 服務
        $ net start webclient
        
        # 設定 webclient 服務自動啟動
        sc condig webclient start= auto
        
        在 cmd 下可有兩種方法開啟,net 和 sc
        
        net 用於開啟沒有被禁用的服務,語法是:
        
          net start 服務名
          net stop  服務名
        
        sc 可開啟被禁用的服務,語法是:
        
          sc config 服務名 start= demand    // 手動
          sc condig 服務名 start= auto      // 自動
          sc config 服務名 start= disabled  // 禁用
          
          sc start 服務名
          sc stop  服務名
        
      • 或者在“控制面板”中依次開啟 “管理工具” => “服務” => “WebClient”,重啟 webclient 服務,同時將 WebClient 的“啟動型別”改為“自動”。

    • 對映網路驅動器

      • 右鍵單擊“我的電腦”,選擇“對映網路驅動器”。
      • 在“資料夾”輸入框中輸入“http:// WebDav 伺服器的 IP 地址/uploads”。
      • 在彈出的“Windows 安全”介面中輸入上面設定的使用者名稱 admin 和密碼 adminpasswd。
      • 連線成功後在“我的電腦”的“網路位置”分組中即可看到多出來一個磁碟。