Apache配置WebDAV

我下载的Apache服务器版本是: httpd-2.4.27-ossl11-x64-vc14
在Apache2.X的版本中,是带有WebDAV的。

首先搞明白什么是WebDAV

WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。
它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,
使应用程序可对Web Server直接读写,
并支持写文件锁定(Locking)及解锁(Unlock),
还可以支持文件的版本控制。

我的Apache所在的目录是D:\Program Files\apache-server\Apache24

找到这个目录下面的conf文件夹,里头有个httpd.conf文件。

☆ 第一步,修改httpd.conf的配置

LoadModule alias_module modules/mod_alias.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
LoadModule setenvif_module modules/mod_setenvif.so 
# Distributed authoring and versioning (WebDAV) 
Include conf/extra/httpd-dav.conf

☆ 第二步,创建用户和密码

WebDAV的认证接入

在安装目录下,要用到下面的命令

htdigest -c "D:/Program Files/apache-server/Apache24/user.passwd" DAV-upload admin

这里我得说一下,我的目录都是windows的斜杠,命令当中用的都是linux的斜杠

然后就是下面的画面

这里写图片描述

这个命令执行完了以后,就产生了一个效果,就是下面的图画:

这里写图片描述

生成了这么一个小文件user.passwd

★ 第三步,配置WebDAV文件夹

我先是在我的目录下面,新建了一个文件夹,sites。

这里写图片描述

然后我进入了我的目录下的conf文件夹,里头有个extra文件夹,接着进去,找到了httpd-dav.conf这个小文件。

然后我在这个小文件当中添加了下面的代码。

DavLockDB "D:/Program Files/apache-server/Apache24/DavLock"
Alias /sites "D:/Program Files/apache-server/Apache24/sites"

<Directory "D:/Program Files/apache-server/Apache24/sites">
    Dav On

    Order Allow,Deny
    Allow from all

    AuthType Digest
    AuthName DAV-upload

    Options Indexes

    AuthUserFile "D:/Program Files/apache-server/Apache24/user.passwd"
    AuthDigestProvider file

    # Allow universal read-access, but writes are restricted
    # to the admin user.
    <LimitExcept GET OPTIONS>
        require user admin
    </LimitExcept>
</Directory>

这一段就说明了一个意思。
启动WebDAV访问sites文件夹。
访问的时候用user.passwd文件进行身份验证。
AuthNameDAV-upload的。


☆ Apache服务器

上面忙活了一通,主要就是改动了两个配置文件的。关键是我的服务器还没有启动的。

第一个错误

启动的命令是httpd -k start
我运行了一下,就报出了下面的错误

这里写图片描述

然后我修改了httpd-conf当中的服务器root目录的配置

这里写图片描述

这个错误就不再出现了。

然后我就信心满满地重新又启动了一下。

接着就出现了第二个错误。

第二个错误

这里写图片描述

我首先认为的第一个原因是缺少必要的模块
也就是authz_host_module模块
然后我就跑到了conf当中httpd.conf当中加入下面的一个小段:

LoadModule authz_host_module bin/mod_authz_host.so

然后我又重新启动了一下。

猜你喜欢

转载自blog.csdn.net/oneqinglong/article/details/77918059