Ubuntu 9.10 Server 配置Apache + WebDav 实现文档协同管理
2010-06-01 16:36
417 查看
先来了解一下百度百科关于WebDav(Web-based Distributed Authoring and Versioning)的解释
1安装软件及模块一览
(1)Apache2.2.14 自己下载编译。未用ubuntu 9.10 server 下apt-get安装的apache2 是因为这个版本的apache2在启用ssl的时候总是报undefined symbol apr_ldap_ssl_init错误,此处我怀疑可能是ubuntu9.10 server的问题,我在虚拟机ubuntu 8.04 desktop下配置成功。
2 加载Dav Module
在对Apache进行编译时已经开启了dav的设置(具体参见Ubuntu 9.10 Server 配置基于SSL的Subversion,svn需要webdav协议支持)
注意enable-dav和enable-dav-fs是我们文档协同所需要的。我们可以通过
来查看已加载的Module。另外自主编译的方式无法通过修改httpd.conf,加入
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
来完成,modules文件夹下也没有这两个so文件,启动apache后会报文件已加载,我搞了很长时间才明白这点。
3 配置WebDav
在httpd.conf文件下 将#Include conf/extra/httpd-dav.conf的注释去掉,我们来看一下httpd-dav.conf的配置
DavLockDB "/usr/local/apache2/var/DavLock"
Alias /uploads "/usr/local/apache2/uploads"
<Directory "/usr/local/apache2/uploads">
Dav On
Options Indexes FollowSymLinks
Order Allow,Deny
Allow from all
AuthType Basic
AuthName DAV-upload
Require valid-user
# You can use the htpasswd program to create the password database:
# htpasswd -c "/usr/local/apache2/user.passwd" DAV-upload admin
AuthUserFile "/svn/authfile"
<Limit GET OPTIONS PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
</Limit>
</Directory>
注意一定是Allow from all 另外我使用了Basic的验证方法,要求用户验证;这里Subversion和WebDav使用的是同样的用户文件;Options Indexes FollowSymLinks允许我们在浏览器访问时遍历文件。
4 权限
#cd /usr/local/apache2
#sudo mkdir uploads
#sudo chown www-data:www-data uploads
#sudo chmod 777 uploads
以上创建上传目录并设置权限为可读可写 www-data为ubuntu的用户和组
另外可能需要手动创建 DavLockDB
#cd /usr/local/apache2
#sudo mkdir var
#cd var
#sudo vim DavLock
#cd ..
#cd ..
#sudo chown www-data:www-data uploads
#sudo chmod -R 777 var/
5 WebDav客户端
分别使用了XP和Vista自带的web folder
使用方法,在XP的资源管理器下选择增加网上邻居(Vista为添加一个网络位置)输入http://your ip or sitename/uploads 并输入用户名和密码。然后再word里就可以直接对文件进行增加修改了,而且当一个用户在更改的时候,其他用户只能只读访问。
当一个用户打开某文件,会加一个只读锁,其他的用户打开该文件时提示
最后附上fiddler抓到的http包,(webdav协议是http协议的扩展,所以可以观察到)
HTTP/1.1 207 Multi-Status
Date: Tue, 01 Jun 2010 08:30:34 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8g DAV/2 SVN/1.6.2
Content-Length: 966
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response xmlns:lp1="DAV:" xmlns:lp3="http://subversion.tigris.org/xmlns/dav/" xmlns:lp2="http://apache.org/dav/props/">
<D:href>/uploads/blackjack/Post.doc</D:href>
<D:propstat>
<D:prop>
<lp1:resourcetype/>
<lp1:creationdate>2010-06-01T06:11:10Z</lp1:creationdate>
<lp1:getcontentlength>46080</lp1:getcontentlength>
<lp1:getlastmodified>Tue, 01 Jun 2010 06:11:10 GMT</lp1:getlastmodified>
<lp1:getetag>"23a06-b400-487f1d6fea216"</lp1:getetag>
<lp2:executable>F</lp2:executable>
<D:supportedlock>
<D:lockentry>
<D:lockscope><D:exclusive/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
<D:lockentry>
<D:lockscope><D:shared/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
</D:supportedlock>
<D:lockdiscovery/>
<D:getcontenttype>application/msword</D:getcontenttype>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
下面来看如何实现文档的协同管理1安装软件及模块一览
(1)Apache2.2.14 自己下载编译。未用ubuntu 9.10 server 下apt-get安装的apache2 是因为这个版本的apache2在启用ssl的时候总是报undefined symbol apr_ldap_ssl_init错误,此处我怀疑可能是ubuntu9.10 server的问题,我在虚拟机ubuntu 8.04 desktop下配置成功。
2 加载Dav Module
在对Apache进行编译时已经开启了dav的设置(具体参见Ubuntu 9.10 Server 配置基于SSL的Subversion,svn需要webdav协议支持)
#sudo ./configure –enable-dav –enable-dav-fs –enable-so –enable-ssl –enable-maintainer-mode -prefix=/usr/local/apache2 –enable-mods-shared=all
注意enable-dav和enable-dav-fs是我们文档协同所需要的。我们可以通过
cd /usr/local/apache2/bin sudo ./httpd -l
来查看已加载的Module。另外自主编译的方式无法通过修改httpd.conf,加入
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
来完成,modules文件夹下也没有这两个so文件,启动apache后会报文件已加载,我搞了很长时间才明白这点。
3 配置WebDav
在httpd.conf文件下 将#Include conf/extra/httpd-dav.conf的注释去掉,我们来看一下httpd-dav.conf的配置
DavLockDB "/usr/local/apache2/var/DavLock"
Alias /uploads "/usr/local/apache2/uploads"
<Directory "/usr/local/apache2/uploads">
Dav On
Options Indexes FollowSymLinks
Order Allow,Deny
Allow from all
AuthType Basic
AuthName DAV-upload
Require valid-user
# You can use the htpasswd program to create the password database:
# htpasswd -c "/usr/local/apache2/user.passwd" DAV-upload admin
AuthUserFile "/svn/authfile"
<Limit GET OPTIONS PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
</Limit>
</Directory>
注意一定是Allow from all 另外我使用了Basic的验证方法,要求用户验证;这里Subversion和WebDav使用的是同样的用户文件;Options Indexes FollowSymLinks允许我们在浏览器访问时遍历文件。
4 权限
#cd /usr/local/apache2
#sudo mkdir uploads
#sudo chown www-data:www-data uploads
#sudo chmod 777 uploads
以上创建上传目录并设置权限为可读可写 www-data为ubuntu的用户和组
另外可能需要手动创建 DavLockDB
#cd /usr/local/apache2
#sudo mkdir var
#cd var
#sudo vim DavLock
#cd ..
#cd ..
#sudo chown www-data:www-data uploads
#sudo chmod -R 777 var/
5 WebDav客户端
分别使用了XP和Vista自带的web folder
使用方法,在XP的资源管理器下选择增加网上邻居(Vista为添加一个网络位置)输入http://your ip or sitename/uploads 并输入用户名和密码。然后再word里就可以直接对文件进行增加修改了,而且当一个用户在更改的时候,其他用户只能只读访问。
当一个用户打开某文件,会加一个只读锁,其他的用户打开该文件时提示
最后附上fiddler抓到的http包,(webdav协议是http协议的扩展,所以可以观察到)
HTTP/1.1 207 Multi-Status
Date: Tue, 01 Jun 2010 08:30:34 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8g DAV/2 SVN/1.6.2
Content-Length: 966
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response xmlns:lp1="DAV:" xmlns:lp3="http://subversion.tigris.org/xmlns/dav/" xmlns:lp2="http://apache.org/dav/props/">
<D:href>/uploads/blackjack/Post.doc</D:href>
<D:propstat>
<D:prop>
<lp1:resourcetype/>
<lp1:creationdate>2010-06-01T06:11:10Z</lp1:creationdate>
<lp1:getcontentlength>46080</lp1:getcontentlength>
<lp1:getlastmodified>Tue, 01 Jun 2010 06:11:10 GMT</lp1:getlastmodified>
<lp1:getetag>"23a06-b400-487f1d6fea216"</lp1:getetag>
<lp2:executable>F</lp2:executable>
<D:supportedlock>
<D:lockentry>
<D:lockscope><D:exclusive/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
<D:lockentry>
<D:lockscope><D:shared/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
</D:supportedlock>
<D:lockdiscovery/>
<D:getcontenttype>application/msword</D:getcontenttype>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
相关文章推荐
- ubuntu server 12.04 配置webdav(Apache)
- 集中化管理平台saltstack——自动化实现apache的安装与配置
- 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览
- Ubuntu Server 10.0.4+Apache 下配置 mono 下运行 asp.net
- Ubuntu 9.10 NFS server & client 配置安装
- Ubuntu 9.10 Server 配置基于SSL的Subversion
- Ubuntu server 11.04 下配置Apache的Worker模式+mod_fcgid+APC
- Ubuntu 9.10 ffserver的配置及使用
- Ubuntu Server Rsync服务端与Windows cwRsync客户端实现数据同步配置教程
- Ubuntu系统下搭建Redmine项目管理系统详细说明(包括配置apache服务器)(一)搭建本地Redmine
- Ubuntu 16.04 LAMP server 指南 - 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)
- Ubuntu 安装配置MySQL,并使用VS的Server Explorer UI界面远程管理MySQL
- 完成Ubuntu桌面版的Apache+php+mysql(手动配置LAMP)的全过程及实现细节
- Ubuntu 9.10 ffserver的配置及使用
- EC2 Ubuntu Server 16.04 初始化配置相关文档
- Ubuntu下Apache+SVN+submin实现WEB管理SVN
- Ubuntu14.04 Server amd64 配置 Apache+MySQL+Django
- UBuntu9.10 server上配置Pure FTPd 常用功能
- Ubuntu下为Apache简单配置SSL的方法(HTTPS的实现)
- Ubuntu下Apache SSL的简洁配置方法(HTTPS的实现)