【Linux瞎折腾】基于Linux搭建Webdav服务

3,658 阅读2分钟

基于Linux搭建Webdav服务

0.前言

观看本文章需要的前置环境:

  • 一台装有LInux的服务器/虚拟机/PC

  • Linux中安装了乌班图

    • sudo apt install apache2

      • 并可以根据ip进行正常访问

        • ip addr show

如果未配置请去查找其他文章

Let's Go 1.开始搭建一个WebDev服务器

  1. Frist 安装dev模块
  • sudo a2enmod dev

  • sudo a2enmod dev_fs

image-20221013182951679.png

根据提示信息重启apache2

  • systemctl restart apache2

Let's Go 2.开始让我们开始配置文件吧

前言

作为一个网盘我们是不是需要一个文件夹进行存储呢?

  • 你看是吧,那么我们用魔法的指令创造一个文件夹吧~(当然这里只是举个例子)

    • mkdir /var/www/pan
  • 魔法释放完毕~~

  • 创建完毕不要忘了给文件夹权限🍞

    • chown www-data:www-data /var/www/pan(这里是目录)

      • 这样你可以 上传和下载文件数据
    • 或者使用 sudo chmod -R 775 /var/www/pan

image-20221013193401985.png

现在打开,我们的apche2配置文件

  • vim /etc/apache2/sites-available/000-default.conf

image-20221013200406714.png

  • 在尾部添加绿框框内容

    Alias 访问路径 映射路径

    <Directory 映射路径>

    DAV ON

    <-/Directory> /输入到linux的时候请去掉-/

  • 写入完毕后保存退出,重启apache2服务器

    • image-20221013193547745.png
  • OK搭建完成喽🚀

Let's Go 3.进一步的使用

在windows上创建网络硬盘

net use z: \192.168.87.131\pans

或者我的电脑,空白处右键

image-20221013200458616.png

添加网络位置这边直接填上 刚刚访问的URL就可以了

image-20221013200535319.png

好了是不是可以了呢~

Snipaste_2022-10-13_21-18-11.png

我们可以利用家里的路由器将内网IP 端口映射到外网去 ,可以在外地远程访问 当然这也⚠非常危险容易被hacker入侵。

Let's Go 4.给WebDav加把锁【后续更新】

  • 毕竟要放到外网了,是不是不能随便被别人访问需要一把🔒呢?

    • 我想大多数人回答是YES,🤭毕竟每个人都不想裸奔
  • So,我们采用HTTPS进行加密🔒

    1. 安装证书?

      • apt install certbot python3-certbot-apache -y
    2. 创建用户

      • 创建存放用户文件的目录

        • mkdir -p /usr/local/apache
      • 授予权限

        • chown www-data:www-data /usr/local/apache
      • 创建用户文件

        • touch /usr/local/apache/webdav.users
      • 授予权限

        • chown www-data:www-data /usr/local/apache/webdav.users
      • 创建用户

        • 创建用户名

          • htdigest /usr/local/apache/webdav.users webdav 用户名
        • 后面会自动让你输入密码

    3. 打开配置文件

      • vim /etc/apache2/sites-available/000-default.conf

      • 添加绿框内容

image-20221013205020739.png

4.  绑定请求下发证书

    -   cerbot --apache -d 域名/IP [-d 域名/IP]
    -   被墙了访问不了,笔者在找找其他法子,待更新x.x
5.  重新启动Apache服务
  - systemctl restart apache2

被墙了问题待解决X...X