在Ubuntu上利用Apache搭建webdav服务器 用于分享局域网文件by ADMIN on 三月 09,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>
        Options Indexes
        #启用 WebDAV 功能
        DAV On
        #启用基本身份验证
        AuthType Basic
        #设置认证提示信息
        AuthName "webdav"
        #指定用户名和密码的文件
        AuthUserFile /etc/apache2/webdav.password
        #要求用户进行验证后才能访问
        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的,也可以在公网中访问

没有评论