Membangun Server WebDAV Menggunakan SabreDAV Pada Sistem Operasi Windows 7

Haddad Sammir twitter.com/hSammir | cybernetix.or.id/cx/hsammir Padang – 20 Januari 2014

Pengantar WebDAV – Web Distributed Authoring and Versioning adalah ekstensi protokol HTTP yang memfasilitasi kolaborasi antar pengguna dalam menyunting dan mengelola dokumen yang tersimpan pada web server. WebDAV menjadikan media web bersifat read-write. WebDAV terdiri dari server dan client. Pada kesempatan ini kita akan menggunakan SabreDAV sebagai server WebDAV dan menggunakan Cyberduck dan Microsoft Windows Network Drive sebagai client.

Catatan SabreDAV merupakan server WebDAV yang diimplementasikan menggunakan bahasa pemprograman PHP sehingga membutuhkan webserver. Untuk menyederhanakan pekerjaan kita, gunakanlah XAMPP yang memaketkan Apache, PHP dan Mysql yang menyediakan mekanisme instalasi yang sederhana dan mudah. Sila download XAMPP di: http://www.apachefriends.org/en/xampp-windows.html . Penggunaan SabreDAV pada dasarnya tidak berbeda baik pada sistem operasi Windows maupun Linux. Hanya saja Linux memiliki mode permisi file / direktori yang berbeda dengan Windows. Seandainya Anda menggunakan Linux pastikan direktori yang akan digunakan oleh SabreDAV untuk penyimpanan file dapat ditulis oleh Web Server.

Persiapan Sebelum memulai instalasi SabreDAV ada beberapa persiapan yang harus dilakukan yaitu: 1. Mendefinisikan nama domain yang akan digunakan 2. Konfigurasi virtual host Dalam artikel ini kita akan menggunakan nama domain http://mywebdav.lab . Tentu saja nama domain ini tidak berlaku umum. Kita cukup mengedit file host yang berada di: C:\Windows\System32\drivers\etc\hosts dengan menambahkan entri:
127.0.0.1 127.0.0.1 mywebdav.lab www.mywebdav.lab

Perlu diperhatikan bahwa file host dikunci oleh sistem sehingga untuk menulis file tersebut kita perlu memberikan full akses kepada user yang sedang menyuntingnya.

1

File Apache httpd virtual host dibutuhkan untuk melakukan pemetaan direktori dan konfigurasi lainnya untuk host mywebdav.lab . Dalam instalasi default XAMPP file tersebut berada pada: C:\xampp\apache\conf\extra\httpd-vhosts.conf . Sebelum menyunting file vhost, kita perlu mendefinisikan dahulu direktori instalasi SabreDAV. Berikut konfigurasi direktori saya: Direktori: C:\xampp\mywebdav

2

1. C:\xampp\mywebdav\files Digunakan untuk meletakkan file dan sebagat root directory WebDAV. 2. C:\xampp\mywebdav\htdocs Adalah document root web server. 3. C:\xampp\mywebdav\include Lokasi program SabreDAV. SabreDAV di-install pada direktori yang tidak dapat diakes langsung dari luar. File virtual host:

3

Ada beberapa hal yang perlu diperhatikan pada konfigurasi virtual host di atas yaitu pada baris ke 17 kita mendefinisikan direktori C:\xampp\mywebdav\include kedalam include_path PHP sehingga modul-modul SabreDAVdapat diakses oleh aplikasi PHP kita, yang dalam kasus ini adalah server.php . Pada baris 20 sampai 23 kita mendefiniskan rewrite rule dimana semua akses dialihkan ke server.php . Server.php adalah server WebDAV yang akan kita buat dengan memanfaatkan SabreDAV.

Instalasi SabreDAV SabreDAV adalah software opensource yang dapat di-download di: https://code.google.com/p/sabredav/ . Setelah selesai men-download, ekstrak file SabreDAV ke direktori C:\xampp\mywebdav\include .

Sampai disini instalasi sudah selesai, setelah ini kita perlu mengetik kode PHP untuk membuat server WebDAV benar-benar bekerja. Mari aktifkan code editor dan mulai mengetikkan kode dan simpan sebagai server.php .

Kode di atas mengkonfigurasi sebuah server WebDAV yang memiliki root directory yang berada pada C:/xampp/mywebdav/files . Setelah konfigurasi dipersiapkan, lalu server 4

WebDAV dieksekusi pada baris 8. Coba akses http://mywebdav.lab melalui browser, jika Anda menemukan Error berikut berarti semua berjalan dengan semestinya: <d:error><s:exception>Sabre\DAV\Exception\NotImplemented</s:exception><s:message>G ET is only implemented on File objects</s:message><s:sabredav-version>1.8.7</s:sabredavversion></d:error> Sejauh ini kita sudah berhasil menciptakan server WebDAV dengan menggunakan SabreDAV. Untuk mengakses server WebDAV kita membutuhkan client WebDAV. Salah satu client WebDAV yang terbaik adalah Cyberduck yang dapat di-download di: http://cyberduck.io/ . Instalasi Cyberduck sama dengan aplikasi Windows lainnya sehingga tidak memerlukan perhatian khusus. Untuk mengakses WebDAV yang baru saja kita buat, aktifkan Cyberduck dan mengklik ikon “Open Connection”.

5

Selanjutnya akan muncul dialog Open Connection, isi textbox “Server” dengan alamat web dav kita yaitu: mywebdav.lab .

Jika semua berjalan dengan semestinya kita akan terkoneksi dengan server WebDAV.

6

Saat ini kita belum melihat ada file di sini. Untuk menambahkan file klik icon “Upload”.

Pilih file yang akan di-upload dan tunggu prosesnya sampai selesai.

7

Jika semua berjalan dengan semestinya maka file yang kita upload akan berada di server dan dapat diakses melalui mekanisme WebDAV.

8

Selain menggunakan Cyberduck, Windows secara default juga mendukung protokol WebDAV dan mengintegrasikannya dengan Windows Explorer. Namun ada beberapa masalah beserta solusi yang dapat dibaca di sini: https://code.google.com/p/sabredav/wiki/Windows . Windows Vista membutuhkan patch ini: http://www.microsoft.com/en-us/download/details.aspx?id=15123 sedangkan untuk Windows 7 hanya mengalami masalah performa yang dapat diselesaikan dengan menghilangkan centang "Automatic Detect Settings" pada IE8 / Tools / Internet Options / Connections / LAN Settings.

Untuk mengakses WebDAV pada Windows 7, aktifkan Windows Explorer, lalu klik kanan pada ikon “Network” dan pilih “Map Network Drive”

Pada jendela dialog Map Network Drive, pilih drive yang akan di-map dan isi text box dengan alamat WebDAV kita.

9

Jika semua berjalan dengan semestinya, maka akan muncul direktori WebDAV (Z:) yang dapat diakses seperti layaknya direktori lokal.

10

Direktori Network Drive ini bekerja seperti layaknya direktori lokal. File dan direktori yang terdapat didalamnya dapat langsung diakses dan file dapat langsung dibuka melalui doubel klik.

Security Kita telah berhasil membuat server WebDAV. Namun kita perlu menambahkan faktor keamanan dalam server kita. Server WebDAV yang telah kita buat sama sekali tidak terproteksi oleh password sehingga siapa saja dapat mengakses dan melakukan operasi readwrite pada server yang tentu saja sangat berbahaya. Menambahkan faktor keamana seperti username dan password dilakukan dengan menambahkan plug in autentikasi ke server. Mekanisme login yang akan kita gunakan menyimpan username dan password pada database mysql. Struktur tabel bisa didapatkan pada file SQL yang didistribusikan SabreDAV. File SQL tersebut berada di: C:\xampp\mywebdav\include\SabreDAV\examples\sql\mysql.users.sql

Gunakan phpmyadmin atau software lainnya untuk membantu kita membuat database dan struktur tabel di mysql. Berikut struktur tabel “users”:

11

Tabel user menyimpan informasi id, username dan „digesta1‟. Digesta1 adalah: md5 dari username:realm:password. Untuk menciptakannya cukup dengan query sql:
SELECT MD5( 'admin:SabreDAV:admin' );

Default username dan password yang disediakan pada file SQL pada contoh diatas adalah: username: admin dan password: admin. Untuk menambahkan user baru dapat dilakukan dengan menambahkan entri data baru pada tabel users.

Konfigurasi Autentikasi SabreDAV Untuk menambahkan fitur autentikasi pada SabreDAV kita perlu menambahkan beberapa baris kode lagi pada server.php . Berikut listing server.php:

12

Kode di atas mendefinisikan host, username, password dan nama database dimana tabel user berada. Pada baris ke 14 kode mendefinisikan realm yang digunakan adalah: “SabreDAV”. Sedangkan pada baris ke 15 kita menambahkan plugin autentikasi ke dalam server. Mari uji coba mekanisme autentikasi dengan reconnect ke server WebDAV, jika muncul jendela dialog meminta username dan password berarti semua berjalan lancar. Input-kan username: admin dan password: admin .

Penambahan user dapat kita lakukan dengan penambahan entri baru pada tabel „users‟. Asumsikan kita hendak menciptakan user baru dengan username: haddad dan password: sammir maka kita lakukan query berikut:
INSERT INTO users( username, digesta1 ) VALUES ( 'haddad', MD5( 'haddad:SabreDAV:sammir' ) );

13

Quo Vadis? SabreDAV bekerja seperti layaknya sebuah Framework. SabreDAV tidak dapat bekerja secara “out of the box”. Programmer perlu merakit sendiri server WebDAV sesuai dengan kebutuhannya. Server WebDAV yang telah kita buat meskipun bekerja, namun perlu banyak sekali penambahan fitur seperti antar muka penambahan user atau mekanisme autentikasi yang berbeda. Untuk mewujudkan itu semua kita dapat berkonsultasi kepada dokumentasi SabreDAV yang dapat diakses di sini: https://code.google.com/p/sabredav/wiki/GettingStarted []

14

Sign up to vote on this title
UsefulNot useful