在windows上使用APACHE设置WEBDAV
1、下载APACHE HTTD服务器,到这个页面(Download - The Apache HTTP Server Project),选择下图所示的链接。
在弹出的如下所示的页面中有四个下载链接,是一样的,都可以下载。
2、下载完成后,直接解压即可,解压后将Apache24文件夹即是程序文件夹,这个文件夹可以放到任何位置,但需要与Apache24/conf/httpd.conf文件中的ServerRoot设置一致,如我将Apache24文件 夹放到了c:/SOFT/中,此处的ServerRoot就应该设置为c:/SOFT/Apache24,即下图中的第39行(第37行只是定义了一个变量SRVROOT,由于这个路径使用的十分频繁,因而将其定义为一个变量)
3、安装httdp服务,Apache24\bin文件夹中的httpd.exe程序可用来安装、启动、关闭、重启、卸载httpd服务,命令分别如下
httpd -k install
httpd -k start
httpd -k stop
httpd -k restart
httpd -k uninstall
使用上述第一个命令安装服务后,在系统的服务列表中会有一个Apache2.4的服务,默认是自动运行的。
在安装服务时由于其安装后会自动启动服务,而此时由于还没有进行配置,因而可能会报错,不过没关系,下面进行配置后再启动就可以了。
4、配置webdav。apaceh http服务器是通过Apache24/conf/httpd.conf这个文件进行配置的。这个文件中每一行是一个语句,语句是由空格分隔的多个部分组成,第一个部分是指定,后面的都是参数。另外,还可以有语句块,使用下述格式(其中的缩进不是必须的),表示块中所有语句将应用于块的标签指令。
<标签指令 参数>
块中语句
</块名>
前面加#的为注释语句
经常用的指令如下
Define:定义变量,如下为定义一个名为SRVROOT,后续可以使用“$SRVROOT”引用;
Define SRVROOT "c:/SOFT/Apache24"
ServerRoot:定义服务器程序的安装路径
ServerRoot "${SRVROOT}"
Listen:定义侦听的端口号,此句之后直到遇到下一个Listen之前的所有语句都是针对这个端口的
Listen 12001
LoadModule:加载模块,这些模块都在Apache24\modules文件夹中,后面的参数斜杠前为模块名称,斜杠后为模块所在的文件。
LoadModule access_compat_module modules/mod_access_compat.so
不同的服务需要加载不同的模块,需要加载哪些模块可以在Apache24\conf\extra文件夹中找到相应的服务对应的conf文件,打开后可以看到头部的注释中有说明。例如我们要配置的webDav服务,在Apache24\conf\extra文件夹下的httpd-dav.conf文件的开头可以看到如下注释,这些就是需要加载的模块。
#
# Distributed authoring and versioning (WebDAV)
#
# Required modules: mod_alias, mod_auth_digest, mod_authn_core, mod_authn_file,
# mod_authz_core, mod_authz_user, mod_dav, mod_dav_fs,
# mod_setenvif
# The following example gives DAV write access to a directory called
# "uploads" under the ServerRoot directory.
#
ServerAdmin:指定服务管理员,出问题的时候客户端会提示与这个邮箱联系
ServerAdmin admin@example.com
ErrorLog:指定错误日志位置,如下表示在安装目录下的位置
ErrorLog "logs/error.log"
Include:包含文件,即是将参数指定的文件中的所有内容放在当前位置,一般是将一个独立的服务单独放到一个文件中,在httpd.conf文件中使用include来包含以便文件结构更清晰,apache默认提供了许多服务配置都放在Apache24/conf/extra文件夹中,可以根据需要包含。
Include conf/extra/httpd-dav.conf
DavLockDB:指定webDav访问冲突控制的数据库位置,如下所示为APACHE默认指供的WEBDAV配置文件Apache24\conf\extra\httpd-dav.conf中的设置,但APACHE并没有默认建立这个文件,需要手动在安装目录下建立var文件夹,并在其中建立一个名为DavLock的文件。如果不建立这个文件则无法上传文件。
DavLockDB "${SRVROOT}/var/DavLock"
Alias:指定虚拟目录,如下所示将本机上的物理目录E:/PHOTODAV映射到虚拟目录/photo上,这样就可以在客户端使用:网址:端口/photo这个地址来访问E:/PHOTODAV目录中的内容了。
Alias /photo "E:/PHOTODAV"
Directory :设置文件夹,下面是针对webdav服务的典型设置,用于使用一个指定的文件夹提供webdav服务
<Directory "E:/PHOTODAV">
Dav On
Options Indexes
AuthType Digest
AuthName photo
AuthUserFile "${SRVROOT}/user.passwd"
AuthDigestProvider file
<RequireAny>
Require method GET POST OPTIONS
Require user test
</RequireAny>
</Directory>
Dav On:表示开启webDav服务
Options Indexes:表示启用列表,即可以在浏览器中看到服务器上的文件和目录列表,如果不设置这个,则当用网络浏览器查看webDav中的内容时会提示Forbbien
AuthType Digest:表示许可类型为Digest,这个与下面的AuthDigestProvider是配套的,除此之外许可类型也可设为Basic,这时相应的许可提供指令应为AuthBasicProvider
AuthName photo:表示许可区域,这个名称是自定义的
AuthUserFile "${SRVROOT}/user.passwd":表示许可用户及密码存储的文件,这个文件使用
Apache24\bin\htdigest.exe和Apache24\bin\htpasswd.exe生成和创建用户,前者用于许可类型为Digest的用户创建,后者用于许可类型为Basic的用户创建。如下命令表示创建一个密码存储文件C:\SOFT\Apache24\user.passwd(这个文件并可存储Digest类型也可存储Basic类型的用户),并在其中添加一个许可区域为photo的用户,用户名为test,在命令行中执行下面的命令后,会提示输入密码,输入后即可。
htdigest.exe -c "C:\SOFT\Apache24\user.passwd" photo test
需要注意上述-c参数表示新建一个密码文件,如果已有密码文件则不需要-c参数,会直接在现有文件中增加一个指定用户。生成的文件内容如下所示,每行表示一个用户。
test:photo:xxxxxx
AuthDigestProvider file:表示许可认证使用文件,与AuthUserFile是配套的。
<RequireAny>:这个标签表示要求访问符合这个块内的任何一个条件即可访问,除此之外还有RequireAll表示访问要符合块内所有条件才行,RequireNone表示
不满足所有条件才能授权通过。
例如上面的示例中的表示要求满足块内的两个条件之一才能访问。
Require method GET POST OPTIONS表示客户端使用的方法为GET(读)、POST(写),OPTIONS(对应上述的OPTIONS指令),这里可用的方法还有PUT(替换)和DELETE(删除)。
Require user test表示客户名要为test,这里还常用Require valid-user表示所有许可文件中的用户。
5、配置完成后,重启服务,另外Apache24\bin\ApacheMonitor.exe是一个服务监控程序,可以直接在这个程序的界面窗口启停服务。启动服务时如果来能成功启动,可查看Apache24\logs\error.log日志文件,对配置文件进行相应修改;
6、在客户端访问或通过网络浏览器访问,如果出现问题可通过Apache24\logs\access.log查看问题所在并进行相应修改。