在Apache中设置WEBDAV的一点技巧
背景:Apache2.2.6安装在c:/apache22下,操作系统是windowsXP sp2。
要求: 1、在虚拟目录/uploads中的所有文件,只有指定用户(pub1、pub2、pub3、pub4)才有权阅读。 2、在虚拟目录/uploads中的101.doc只能够由pub1编辑,其他三个人不能编辑。201.doc只能够由pub2编辑,其他三个人不能编辑。 3、除101.doc、201.doc外的其他文件,pub1、pub2、pub3、pub4只能阅读,都不能编辑。 4、pub1、pub2、pub3、pub4也不能在虚拟目录/uploads中建立(删除)文件夹和文件。
设置过程: 第一步,在c:/apache22下建立user文件夹。 第二步,使用htpasswd.exe,在user文件夹下生成用户文件userfile.pass,增加pub1、pub2、pub3、pub4四个用户。 第三步,在c:/apache22下建立var文件夹。 第四步,在C:/Apache22/conf/extra文件夹下,建立配置文件httpd-dav-uploads.conf,内容如下: # ##### start #### DavLockDB "C:/Apache22/var/DavLock" # Alias /uploads "C:/Apache22/uploads" # <Directory "C:/Apache22/uploads"> Order Allow,Deny Allow from all AuthType Basic AuthName "FILE WEBDAV TEST" AuthUserFile "C:/Apache22/user/userfile.pass" Require valid-user <Files 101.doc> Dav On <Limit PUT POST DELETE MOVE COPY> Require user pub1 </Limit> <Limit GET OPTIONS> Require valid-user </Limit> </Files> <Files 201.doc> Dav On <Limit PUT POST DELETE MOVE COPY> Require user pub2 </Limit> <Limit GET OPTIONS> Require valid-user </Limit> </Files> </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 # ##### end #### # 第五步,修改主配置文件C:/Apache22/conf/httpd.conf: (1)在主配置文件末尾增加一行: Include conf/extra/httpd-dav-uploads.conf (2)将主配置文件中的以下两行的第一个字符#删除(如果有#号的情况下),变为如下样子(即启用相应的2个功能模块): LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so (3)保存主配置文件
第六步,重新启动Apache。
OK,上述4个要求都可以满足了。
技术看点: 1、Files指令的使用; 2、针对单个文件启用WEBDAV(即使用Dav On指令); 3、Limit指令的使用。
附錄:如何在win xp和win7系統下訪問webdav
Win XP:
- Install update:Download details: Software Update for Web Folders (KB907306)
- Start -> Run -> regedit
- Quote:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\WebClient\Parameters
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\WebClient\Parameters
- UseBasicAuth -> Change to 1
- Added new D-WORD value: FileAttributesLimitInBytes
- Give FileAttributesLimitInBytes value 20000
- Open Network Locations
- Add new network location
- Use this url:
Win 7
- Start -> Run -> Services.msc
- Start Webclient service, make it start automatically.
- Start -> Run -> regedit
- Quote:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\WebClient\Parameters
- UseBasicAuth -> Change to 2
- start IE8 ->Tools -> Internet Options -> Connections -> LAN settings / Automatic configuration -> Switch off Automaticaly detect setting
- Start -> Run -> cmd
- net stop Webclient
- net start Webclient
- net use * http://full./dav/username/
- Now you have a share.
|