当前位置:   article > 正文

Linux Ubuntu 手动搭建webDav_ubuntu webdav

ubuntu webdav

1、安装

因为需要跟 zotero 进行交互,因此需要在服务器搭建一个webDav
以下是搭建步骤:

  1. sudo apt-get update
  2. sudo apt-get install apache2

Ubuntu 安装apache2来实现

不同于Centos

安装好了之后,运行

  1. a2enmod dav_fs
  2. a2enmod dav

激活模块。

2、配置ports

进入到 /etc/apache2 目录下。修改port,使得它不跟nginx起冲突

Listen 后面加上自己要自定义的接口

3、生成密码

然后我们就要生成密码了:

htpasswd -c /etc/apache2/webdav.password 你的用户名

输入密码。

4、配置要暴露的文件路径

然后进入到 /etc/apache2/sites-available 目录下。

可以选择新建一个conf文件,也可以选择修改原来的 000-default.conf

  1. <VirtualHost *:7080>
  2. ServerAdmin webmaster@localhost
  3. DocumentRoot /home/imp/edc_demo/webdav
  4. ErrorLog ${APACHE_LOG_DIR}/error.log
  5. CustomLog ${APACHE_LOG_DIR}/access.log combined
  6. DavLockDB "/var/DavLock"
  7. <Directory /home/imp/edc_demo/webdav/>
  8. DAV On
  9. Options Indexes MultiViews
  10. AllowOverride None
  11. Order allow,deny
  12. allow from all
  13. </Directory>
  14. Alias /webdav /home/imp/edc_demo/webdav
  15. <Location /webdav>
  16. DAV On
  17. AuthType Basic
  18. AuthName "agile"
  19. AuthUserFile /var/passwd.dav
  20. Require valid-user
  21. </Location>
  22. </VirtualHost>

解释一下上面的几个参数哈。

  • <VirtualHost *:7080>:代表监听的端口,也是之后要在浏览器输入的端口,这个端口和刚刚ports.conf里配的是同一个

  • ServerAdmin webmaster@localhost:设置管理员邮箱地址。

  • DocumentRoot /home/imp/edc_demo/webdav:指定网站的根目录。

  • ErrorLog ${APACHE_LOG_DIR}/error.log:指定错误日志文件的位置。

  • CustomLog ${APACHE_LOG_DIR}/access.log combined:设置访问日志的位置和格式。

  • DavLockDB "/var/DavLock":指定 WebDAV 的锁定数据库文件位置。

  • <Directory /home/imp/edc_demo/webdav/>:配置 /home/imp/edc_demo/webdav 目录的访问权限。

    • DAV On:启用 WebDAV 功能。

    • Options Indexes MultiViews:允许目录浏览和多视图。

    • AllowOverride None:禁止使用 .htaccess 文件覆盖配置。

    • Order allow,denyallow from all:控制访问权限,允许所有客户端访问此目录。

  • Alias /webdav /home/imp/edc_demo/webdav:创建别名 /webdav,指向 /home/imp/edc_demo/webdav 目录。

  • <Location /webdav>:针对 /webdav 路径的配置。

    • DAV On:启用 WebDAV 功能。

    • AuthType Basic:启用基本身份验证。

    • AuthName "agile":设置认证提示信息。

    • AuthUserFile /var/passwd.dav:指定用户名和密码的文件。

    • Require valid-user:要求用户进行验证后才能访问 /webdav 目录。

有点多,没事,我概括一下 

把 

             AuthName "agile"
             AuthUserFile /etc/apache2/webdav.password

改成 自己的用户名,把刚才生成的password文件的位置放进来。

         Alias /webdav /home/imp/edc_demo/webdav

后面改成你要暴露的linux 文件路径地址。

5、重启apache

sudo systemctl restart apache2

6、验证一下

打开浏览器输入 http://ip:host/webdav/

输入用户名密码

6、我写了一个脚本

我写了一个脚本。这个脚本可以在你搭建好这套之后,通过传入用户名、密码,自动创建一个账号,并且在 目录下 建一个 和用户同名的 文件夹

它分成2个部分

add_user.exp

  1. #!/usr/bin/expect
  2. set user [lindex $argv 0]
  3. set password [lindex $argv 1]
  4. spawn sudo htpasswd -c /etc/apache2/webdav.password $user
  5. expect "New password:"
  6. send "$password\r"
  7. expect "Re-type new password:"
  8. send "$password\r"
  9. interact

add_user.sh

  1. #!/bin/bash
  2. user=$1
  3. password=$2
  4. # 创建文件夹
  5. echo "创建文件夹 /home/imp/edc_demo/webdav/$user"
  6. mkdir -p "/home/imp/edc_demo/webdav/$user"
  7. # 添加用户
  8. echo "添加 $user 对应的webdav配置"
  9. expect ./add_user.exp "$user" "$password"
  10. # 更新配置文件
  11. file="/etc/apache2/sites-available/000-default.conf"
  12. if grep -q "Location /webdav/$user\b" "$file"; then
  13. echo "Location already exists in $file"
  14. else
  15. sed -i "/<\/VirtualHost>/ i\\
  16. \\
  17. \t<Location /webdav/$user>\\
  18. \t\tDAV On\\
  19. \t\tAuthType Basic\\
  20. \t\tAuthName \"$user\"\\
  21. \t\tAuthUserFile /etc/apache2/webdav.password\\
  22. \t\tRequire valid-user\\
  23. \t</Location>\\
  24. " "$file"
  25. systemctl restart apache2
  26. fi
  27. echo "添加用户成功!!!!"

使用的话,就是

./add_user.sh 用户名 密码

执行完这套之后,可以在浏览器里访问

http://ip:port/webdav/用户名,访问到这个用户才能访问到的文件夹。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/718032
推荐阅读
相关标签
  

闽ICP备14008679号