Linux webdav

    11

A simple and standalone WebDAV server.

https://github.com/hacdias/webdav

🖇️webdav

📥️下载

linux-amd64-webdav.tar.gz

mkdir /opt/webdav && cd /opt/webdav && wget https://github.com/hacdias/webdav/releases/download/v5.7.0/linux-amd64-webdav.tar.gz

🛠️解压

tar -zxvf linux-amd64-webdav.tar.gz  && rm -rf linux-amd64-webdav.tar.gz LICENSE README.md

🗜️配置

将解压后的WebDAV复制到/usr/bin路径下

在适当的位置编写配置文件webdav.yaml注意需要使用单引号将用户名、密码和路径括住。

# Server related settings
address: 0.0.0.0
port: 65002
auth: true
tls: false
cert: cert.pem
key: key.pem
 
# Default user settings (will be merged)
scope: '/opt/pikpak'
modify: true
rules: []
 
users:
  - username: 'admin'
    password: 'debian.webdav'
    scope: '/opt/pikpak'

⛓️配置服务

vim /usr/lib/systemd/system/webdav.service
  • 内容

[Unit]
Description=WebDAV server
After=network.target
 
[Service]
Type=simple
User=root
ExecStart=webdav --config /opt/webdav/config.yaml
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

启动服务并查看状态

systemctl daemon-reload
systemctl enable webdav
systemctl start webdav
systemctl status webdav

⛓️‍💥nginx-full

  • core: 标准的 nginx 部署版本

  • full: 在 core 版本的基础上,包含了常用的三方模块

  • light: 简化版

安装 nginx -full

apt-get install nginx-full

添加配置

server {
   listen 80;
   listen [::]:80;

   # 网站根目录,此处即为访问 webDav 的根目录
   root /home;

   index index.html index.htm index.nginx-debian.html;

   # nginx 提供的网站认证,与 WebDav 功能无关,非必需
   auth_basic "Authenticated Users";
   auth_basic_user_file /etc/nginx/.htpasswd;

   location / {
      # 启用 WebDav 的一些关键字        
      dav_methods PUT DELETE MKCOL COPY MOVE;
      # 启用 WebDav 的一些扩展关键字用于支持应用访问
      dav_ext_methods PROPFIND OPTIONS;
      # 设置 WebDav 目录下新增文件的默认权限
      dav_access user:rw group:rw all:r;
      # 创建文件夹时自动创建路径上不存在的文件夹
      create_full_put_path  on;
      # 设置报文最大长度便于文件传输,这里为8MB
      client_max_body_size 8m;

      # 让 nginx 自动生成索引页面,避免 403 错误
      autoindex on;
   }
}

添加nginx认证

echo -n 'admin:' >> /etc/nginx/.htpasswd
openssl passwd -apr1 >> /etc/nginx/.htpasswd
Password: 
Verifying - Password: 

重启nginx

nginx -s reload

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息