在Ubuntu上利用Apache搭建webdav服务器 用于分享局域网文件by ADMIN on 09 3 月,2024
最进研究linux上的Samba文件分享功能,网上资料差不多查遍了,研究了几天也没搞成功。
后来终于发现了另一个分享功能:webdav,亲测成功。虽然ftp也可以分享文件,但是现在的浏览器几乎都停止了对ftp的支持,只能使用专用的客户端(如:filezilla)才能传输文件,所以极度不方便,
一:安装web服务器Apache,如果已经安装过了,则不用重新安装,在命令行输入:
sudo apt-get install apache2
二:启用相关模块,在命令行输入:
sudo a2enmod dav_fs
sudo a2enmod dav
sudo a2enmod dav_lock
三:在文件夹(mods-enabled)下建立文件链接,相当于快捷方式,如果显示文件已存在,说明曾经已经建立了文件链接,在命令行输入:
sudo ln -s /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/dav.load
sudo ln -s /etc/apache2/mods-available/dav_fs.load /etc/apache2/mods-enabled/dav_fs.load
sudo ln -s /etc/apache2/mods-available/dav_lock.load /etc/apache2/mods-enabled/dav_lock.load
sudo ln -s /etc/apache2/mods-available/dav_fs.conf /etc/apache2/mods-enabled/dav_fs.conf
四:为了使webdav服务不和web服务冲突,我们需要单独建立一个端口来给webdav服务使用,如:8080,1234,7086等,但注意不要和MySQL(3306)、ssh(22)、ftp(21)、打印机(631)等端口冲突。使用文本编辑器打开【/etc/apache2/ 】路径下的【ports.conf】文件,在打开的文件中添加一个端口,格式如下:
Listen 8080
五:创建访问WebDav服务的账户和密码,为保安全,该账户应与系统账户和密码不同。如下代码回车后,会要求输入两次密码,然后会在【/etc/apache2/】目录下建立一个【webdav.password】文件,并将账户和密码保存于中,在命令行输入:
sudo htpasswd -c /etc/apache2/webdav.password [账户名]
六:给账户验证文件【webdav.password】设置权限,在命令行输入:
sudo chown root:www-data /etc/apache2/webdav.password
sudo chmod 640 /etc/apache2/webdav.password
七:给webdav服务添加一个虚拟主机,使用文本编辑器打开【/etc/apache2/sites-available/】目录下的【000-default.conf】文件,添加如下内容:
# 新添加一个IP端口8080的虚拟主机,该主机给webDav使用
<VirtualHost *:8080>
#物理路径(根据需要改成自己的位置,例如物理路径为/var/www/share)
DocumentRoot /var/www/share
#针对物理路径的配置
<Directory /var/www/share>
#允许目录浏览和多视图
Options Indexes MultiViews
#禁止使用 .htaccess 文件覆盖配置
AllowOverride None
#控制访问权限,允许所有客户端访问此目录
Order allow,deny
allow from all
</Directory>
#要暴露的网络地址和对应的物理路径
Alias /webdav /var/www/share
#针对 /webdav 网络地址的配置,本机地址:http://127.0.0.1:8080/webdav
<Location /webdav>
#启用 WebDAV 功能
DAV On
#启用基本身份验证,设置认证类型为Basic或者Digest
AuthType Basic
#设置认证对话框的提示信息,自由填写
AuthName "webdav"
#指定用户名和密码的文件
AuthUserFile /etc/apache2/webdav.password
#仅指定用户名叫“admin”的用户可访问,去掉 #号生效
#Require user admin
#允许密码文件中的所有用户访问
Require valid-user
</Location>
</VirtualHost>
八:给主机的物理路径设置权限,在命令行输入:
sudo chown www-data:www-data /var/www/share
九:重启Apache服务,在命令行输入:
sudo /etc/init.d/apache2 restart
十:访问方法,在局域网其他设备端(如手机、平板、电脑等)打开浏览器,在地址栏输入如下地址访问: http://[被访问主机的ip]:[端口]/webdav,也可以在支持的文件管理器里添加一个webdav来访问,如果你的网络有公网IP的,也可以在公网中访问