การปรับใช้ WebDAV บน Debian 10 โดยใช้ WsgiDAV

บทนำ

Web Distributed Authoring and Versioning (WebDAV) เป็นส่วนขยาย HTTP ที่ให้เฟรมเวิร์กสำหรับการสร้างและแก้ไขไฟล์บนเซิร์ฟเวอร์จากระยะไกล WsgiDAV เป็นเซิร์ฟเวอร์ WebDAV ที่เขียนด้วยไพ ธ อน คู่มือนี้จะช่วยคุณในการติดตั้ง WsgiDAV เวอร์ชั่น 3.0 บนเซิร์ฟเวอร์ Vultr ที่ใช้ Debian 10 นอกจากนี้เรายังจะได้รับใบรับรอง SSL เพื่อให้การเชื่อมต่อที่ปลอดภัยเช่นเดียวกับการรับรองความถูกต้องของ PAM

ข้อกำหนดเบื้องต้น

  • ระบบ Debian 10 ที่คุณมีสิทธิ์เข้าถึง (ผ่านผู้ใช้รูทหรือผู้ใช้ sudo ใด ๆ )
  • $EDITORตัวแปรสภาพแวดล้อมจะต้องตั้งค่าโปรแกรมแก้ไขข้อความที่คุณเลือก
  • ต้องมีชื่อโดเมนที่ลงทะเบียน เซิร์ฟเวอร์ชื่อจะต้องกำหนดค่าด้วยAบันทึกที่ชี้ไปยังที่อยู่ IPv4 ของเซิร์ฟเวอร์ของคุณและเลือกAAAAบันทึกที่ชี้ไปยังที่อยู่ IPv6
  • แนะนำให้คุ้นเคยกับไวยากรณ์ YAML

ตัวยึดตำแหน่งdav.example.comจะใช้สำหรับชื่อโดเมนของเซิร์ฟเวอร์ของคุณ

การติดตั้ง

ใบรับรอง SSL

เราจะเริ่มต้นด้วยการปรับปรุงระบบและการได้รับใบรับรอง SSL ฟรีจากLet 's เข้ารหัส ในการทำเช่นนั้นก่อนอื่นให้อัพเดตระบบของคุณและติดตั้งcertbotยูทิลิตี้:

 sudo apt update
 sudo apt upgrade -y
 sudo apt install -y certbot

ในคำสั่งด้านล่างให้แทนที่dav.example.comและemail@domain.tldด้วยชื่อโดเมนและที่อยู่อีเมลตามลำดับก่อนดำเนินการ:

sudo certbot certonly --standalone --agree-tos -m email@domain.tld -d dav.example.com

เซิร์ฟเวอร์ของคุณจะถูกส่งคำขอเพื่อยืนยันว่าคุณเป็นผู้ควบคุมชื่อโดเมนที่ระบุ ถ้ามันประสบความสำเร็จใบรับรองจะมีการออกและบันทึกไว้พร้อมกับไฟล์อื่น ๆ /etc/letsencrypt/live/dav.example.com/เช่นคีย์ส่วนตัวภายใต้

กำลังติดตั้ง WsgiDAV

ก่อนอื่นให้ติดตั้งตัวจัดการแพคเกจหลามpip:

sudo apt update
sudo apt install -y python3-pip

WsgiDAV ต้องการเซิร์ฟเวอร์ HTTP ที่สนับสนุน WSGI เราจะติดตั้งตัวเลือกเริ่มต้นซึ่งเป็น Cheroot เราจะติดตั้งไลบรารี lxml python ซึ่งมีแนวโน้มที่จะทำงานได้ดีกว่าไลบรารี XML ที่ติดตั้งโดยค่าเริ่มต้น จำเป็นต้องมีไลบรารี PAM (โมดูลการพิสูจน์ตัวตนแบบเสียบได้) python3 เช่นกัน ติดตั้งแพ็คเกจที่ต้องการโดยใช้pipเครื่องมือ:

sudo pip3 install wsgidav cheroot lxml python-pam

การกำหนดค่า WsgiDAV

ไฟล์เรียกทำงาน WsgiDAV นั้นถูกเก็บไว้/usr/local/binดังนั้นเราจะวางไฟล์การกำหนดค่าไว้ใน/usr/local/etcไดเรกทอรี ดาวน์โหลดไฟล์การกำหนดค่าตัวอย่างด้วยคำสั่งต่อไปนี้:

sudo mkdir -p /usr/local/etc
sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml

เปิดด้วยเครื่องมือแก้ไขของคุณ:

sudo $EDITOR /usr/local/etc/wsgidav.yaml

ค้นหาบรรทัดต่อไปนี้ในส่วน "การสนับสนุน SSL":

# ssl_certificate: "wsgidav/server/sample_bogo_server.crt"
# ssl_private_key: "wsgidav/server/sample_bogo_server.key"
# ssl_certificate_chain: null

แทนที่ด้วยสิ่งต่อไปนี้:

ssl_certificate: "/etc/letsencrypt/live/dav.example.com/cert.pem"
ssl_private_key: "/etc/letsencrypt/live/dav.example.com/privkey.pem"
ssl_certificate_chain: "/etc/letsencrypt/live/dav.example.com/chain.pem"

ต่อไปเราจะกำหนดค่าเส้นทางที่ใช้ร่วมกันโดยการแมปเส้นทาง HTTP (เช่น/) ไปยังตำแหน่งที่สอดคล้องกันในระบบไฟล์ (เช่น/var/www/dir1) เพื่อวัตถุประสงค์ในการสาธิตเราจะแบ่งปันสองไดเรกทอรีซึ่งหนึ่งในนั้นจะเป็นแบบอ่านอย่างเดียว ค้นหาprovider_mappingบล็อกในส่วน "หุ้น":

provider_mapping:
    "/": "/path/to/share1"
    "/pub":
        root: "/path/to/share2"
        readonly: true
    "/share3":
        provider: path.to.CustomDAVProviderClass
        args: ["/path/to/share3", "second_arg"]
        kwargs: {"another_arg": 42}

แทนที่:

provider_mapping:
    "/":
    root: "/var/www/html/documents"
    readonly: false
"/reports":
    root: "/var/www/html/reports"
    readonly: true

ด้วยการแม็พเหล่านี้https://dav.example.com:8080/จะสอดคล้องกับ/var/www/html/documentsไดเร็กทอรีบนเซิร์ฟเวอร์ขณะที่https://dav.example.com:8080/reportsแม็พ/var/www/html/reportsกับไม่มีการเข้าถึงเพื่อเขียน

สำหรับการตรวจสอบสิทธิ์เราจะใช้ไดรเวอร์ PAM สิ่งนี้จะลบความจำเป็นในการแยกบัญชีผู้ใช้ WebDAV และอนุญาตให้ผู้ใช้ระบบเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวปกติ

ในส่วน "การตรวจสอบ" ค้นหาบรรทัดเหล่านี้:

accept_basic: true
accept_digest: true
default_to_digest: true
domain_controller: null

แทนที่ด้วยสิ่งต่อไปนี้:

accept_basic: true
accept_digest: false
default_to_digest: false
domain_controller: wsgidav.dc.pam_dc.PAMDomainController

ตอนนี้คุณสามารถทดสอบเซิร์ฟเวอร์ของคุณ:

sudo wsgidav -c /usr/local/etc/wsgidav.yaml

เปิดhttps://dav.example.com:8080/ในเว็บเบราว์เซอร์ของคุณ เนื่องจากเรากำหนดค่าการรับรองความถูกต้อง PAM คุณจะต้องเข้าสู่ระบบด้วยบัญชีผู้ใช้ Linux ของคุณ ใช้CTRL+ Cเพื่อหยุดเซิร์ฟเวอร์ก่อนดำเนินการต่อ

การติดตั้งเป็นบริการ

ในการรันเซิร์ฟเวอร์ WebDAV ของคุณในฐานะบริการระบบที่จัดการโดย systemd ให้สร้างไฟล์หน่วย:

sudo $EDITOR /etc/systemd/system/wsgidav.service

ป้อนต่อไปนี้:

[Unit]
Description=WsgiDAV WebDAV server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/wsgidav -c /usr/local/etc/wsgidav.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=wsgidav_service

[Install]
WantedBy=multi-user.target

จากนั้นสร้างไฟล์กำหนดค่าสำหรับบริการบันทึกระบบ:

sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf

เติมไฟล์ด้วยข้อมูลต่อไปนี้:

 if $programname == 'wsgidav_service' then /var/log/wsgidav.log
 & stop

บันทึกและออกจากนั้นใช้คำสั่งด้านล่างเพื่อสร้างไฟล์บันทึก:

sudo touch /var/log/wsgidav.log
sudo chown root:adm /var/log/wsgidav.log

สุดท้ายให้โหลดไฟล์ systemd unit ใหม่และเริ่มบริการการบันทึกก่อนเริ่ม WsgiDAV:

sudo systemctl daemon-reload
sudo systemctl restart rsyslog.service
sudo systemctl start wsgidav.service

ตอนนี้คุณสามารถใช้systemctlเพื่อเริ่มหยุดและรีสตาร์ทเซิร์ฟเวอร์ WebDAV ของคุณ ออกมาตรฐาน WsgiDAV และข้อผิดพลาดจะถูกบันทึกไปและยังสามารถเข้าถึงได้โดยใช้/var/log/wsgidav.logsudo journalctl -u wsgidav.service

หากคุณต้องการให้เซิร์ฟเวอร์ WebDAV เริ่มต้นโดยอัตโนมัติเมื่อเวลาบูตระบบให้ดำเนินการ:

 sudo systemctl enable wsgidav.service

อ่านเพิ่มเติม

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true