Instalasi Subversion pada Server Apache
Posted in Know-How on November 1st, 2009 – Tags: apache, jedit, repository, subversion – Be the first to comment
| Table of Content: | |
| 1. | Sekilas Mengenai Subversion |
| 2. | Instalasi Subversion dan Konfigurasi Apache |
| 3. | jEdit dan Subversion |
| 4. | Download Sample Configuration |
Part 2: Instalasi Subversion dan Konfigurasi Apache
Sebagaimana telah disinggung pada tulisan sebelumnya, saat ini Subversion telah tersedia dalam versi standar dan versi paket. Namun contoh yang digunakan disini adalah instalasi Subversion versi standar untuk Windows, dikarenakan disini kita mengasumsikan Apache telah terinstall dan kita tidak memerlukan berbagai aplikasi tambahan lainnya atau integrasi dengan shell desktop.
1. Instalasi Apache (Versi 2.2)
Panduan instalasi Apache dengan mudah dapat ditemukan di internet, karenanya kita tidak akan membahasnya secara detail. Adapun konfigurasi Apache terkait Subversion, akan dibahas di bagian-bagian selanjutnya dari tulisan ini. Disini diasumsikan Apache terinstall di dalam folder D:\server\apache\.
2. Instalasi Subversion (Versi 1.6.4)
- Download Subversion dari http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100, pilih yang untuk Windows (berbagai versi paket installer Subversion dapat dilihat disini http://subversion.tigris.org/getting.html#window).
- Install Subversion pada folder D:\server\subversion\ (atau sesuaikan dengan preferensi Anda).
- Restart komputer Anda manakala instalasi telah selesai.
- Setelah merestart komputer, buatlah folder-folder berikut:
- Folder subversion-repository:
- => D:\server\subversion-repository\
- Folder config, untuk menyimpan file-file konfigurasi SVN:
- => D:\server\subversion-repository\config\
- Folder svn, sebagai folder utama repository SVN:
- => D:\server\subversion-repository\svn\
- Folder subversion-web, untuk repos-web, usvn dan file lainnya:
- => D:\server\subversion-web\
Sebagai langkah testing instalasi Subversion, buka command prompt lalu ketikkan perintah: svn –version, dan tekan Enter. Perintah ini akan menampilkan versi Subversion yang Anda install.
Terakhir, cobalah membuat satu repository “repo1” di folder D:\server\subversion-repository\svn\. Caranya, sebagaimana telah dicontohkan diatas, yakni:
svnadmin create D:\server\subversion-repository\svn\repo1
Pada bagian akhir tulisan ini, kita akan membahas USVN yang merupakan aplikasi untuk administrasi Subversion. Dengan USVN, kita dapat membuat suatu repository sepenuhnya melalui browser.
3. Konfigurasi Apache: WebDAV
WebDAV merupakan ekstension HTTP untuk file-sharing. Ketika menggunakan Apache sebagai network-server untuk menjalankan Subversion, maka module WebDAV harus ditambahkan pada Apache.
Berikut adalah langkah-langkah konfigurasi (pastikan file httpd.conf dibackup terlebih dahulu):
- Cari file mod_authz_svn.so dan mod_dav_svn.so dari folder Subversion. Copy file-file tersebut ke folder module Apache (D:\server\apache\modules\), dan replace file yang ada bila diperlukan.
- Buat file baru webdav-basic.conf di folder D:\server\apache\conf\extra\.
- Buka file httpd.conf dengan jEdit atau text editor lain. File httpd.conf terletak di D:\server\apache\conf\. Kemudan edit atau tambahkan beberapa perubahan berikut:
A. Enable modul WebDAV (dengan menghilangkan tanda comment “#” di awal baris):LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
B. Pada bagian paling akhir, tambahkan baris berikut:
include conf/extra/webdav-basic.conf
- Run/restart Apache.
Bila Apache tidak dapat dijalankan atau muncul pesan error, berarti ada setting yang salah dengan httpd.conf atau webdav-basic.conf. Coba periksa kembali setting pada kedua file tersebut, dan sesuaikan dengan setting folder dimana Anda menginstall Apache dan Subversion.
Setelah Apache dijalankan, buka browser dan ketikkan url berikut: http://localhost/svn/repo1/. Disini Anda dapat melihat repository “repo1” yang telah Anda buat sebelumnya. Tentu saja repository ini masih kosong, karena belum ada dokumen apapun yang Anda tambahkan ke dalamnya.
4. Repos-Web: Mempercantik Tampilan Repository dengan XSLT
Tampilan di halaman http://localhost/svn/repo1/ sangatlah sederhana. Tampilannya dapat dipercantik dengan menambahkan XSLT melalui setting WebDAV (Apache), seperti berikut:
SVNIndexXSLT "PATH_TO_FILE.XSL"
Bagaimana isi file xsl-nya? Untuk mudahnya kita akan menggunakan Repos-WEB, yang merupakan open-source XSLT untuk SVN. Berikut langkah-langkahnya:
- Download ReposWEB, lalu extract dan copy repos-web ke folder: D:\server\subversion-web\repos-web\.
- Buka kembali file webdav-basic.conf, lalu buatlah beberapa perubahan berikut:
#Buat alias untuk repos-web Alias /repos-web "E:/WWWSERV/subversion-web/repos-web"#Tambahkan setting XSLT dalam tags <Location> SVNIndexXSLT "/repos-web/view/repos.xsl" - Buka file “index.php” (D:\server\subversion-web\repos-web\open\log\index.php), pastikan bahwa url repository diarahkan dengan benar ke ‘http://localhost/svn’ :
// URL or path to repository, no trailing slash // (note that the log viewer may bypass access control) $repo = 'http://localhost/svn'; - Restart Apache, dan coba buka kembali (refresh) http://localhost/svn/repo1/.
Bila ingin mengubah HOME dan mengarahkannya ke ‘http://localhost/svn’, Anda dapat mengedit file “repos.xsl” (D:\server\subversion-web\repos-web\view\repos.xsl), lalu ubah parameter (param) “startpage” seperti berikut:
<xsl:param name="startpage">/svn/</xsl:param>
Ingat bahwa dalam contoh ini URL untuk repos-web adalah http://localhost/repos-web/, sebagaimana kita telah buat aliasnya diatas; dan URL repository adalah http://localhost/svn/. Apabila URL berubah, maka Anda harus melakukan penyesuaian seperlunya.
5. USVN: Mengelola Repository dan Manajemen User
Meski seluruh kebutuhan pengelolaan Subversion dapat dilakukan melalui console atau command prompt, namun hal tersebut dirasakan kurang praktis. Karena itu, disini kita akan mengulas sedikit tentang USVN, yang akan kita gunakan untuk mengelola repository dan manajemen user—harap diingat bahwa USVN tidak sepenuhnya mengakomodasi seluruh command Subversion.
Salah satu kelemahan USVN hanya bisa mengelola repository yang dibuat oleh USVN. Baik repository yang telah ada (sebelum USVN diinstall), maupun yang dibuat oleh aplikasi lain, misalnya, melalui command prompt (setelah USVN diinstall); tidak secara otomatis masuk dalam database USVN.
Karenanya adalah lebih baik untuk menghapus atau memindahkan semua repository yang ada sebelum menginstall USVN. Dan setelah instalasi rampung, kita dapat membuat repository baru melalui USVN, lalu melakukan “dump” dari repository yang lama.
USVN memiliki beberapa requirement, yakni: PHP dan MySQL (bila menjadi pilihan database). Sebagai alternatif, USVN juga bisa dijalankan dengan database SQLite yang merupakan database-file. Untuk menggunakan SQLite, pastikan bahwa module SQLite sudah diload (enable) oleh PHP. Untuk instalasi PHP dan MySQL, serta cara menambahkan module MySQL atau SQLite ke dalam PHP, dapat dicari dan dibaca dalam berbagai panduan instalasi PHP di internet.
Berikut adalah langkah-langkah deployment USVN:
- Download USVN, lalu exctract USVN ke folder D:\server\subversion-web\usvn\
- Edit file webdav-basic.conf, lalu tambahkan:
Alias /usvn "D:/server/subversion-web/usvn/public"
- Restart/Run Apache.
- Hapus semua file maupun subfolder dari folder SVN repository (D:\server\subversion-repository\svn).
- Buka browser, lalu install USVN melalui http://localhost/ usvn/ . Proses selanjutnya silahkan ikuti langkah-langkah yang disediakan dalam instalasi USVN.
(a) Pada Step 4, berikan input yang diinginkan sesuai dengan instalasi sebelumnya.
(b) Pada Step 5, ada pilihan database untuk USVN. Bila MySQL tersedia, maka itu dapat menjadi pilihan utama; namun kita juga dapat menggunakan SQLite yang merupakan database file sehingga tidak perlu menginstall apapun.
(c) Pada langkah terakhir (Step 8), Anda akan diminta untuk melakukan perubahan pada konfigurasi Apache.
- Edit file webdav-basic.conf, lalu copy-paste hasil instalasi USVN kedalamnya, dan kemudian lakukan beberapa penyesuaian (sebagaimana setting repos-web di langkah sebelumnya):
<Location /svn/> ErrorDocument 404 default DAV svn Require valid-user SVNParentPath D:\server\subversion-repository\svn SVNListParentPath off AuthType Basic AuthName "USVN" AuthUserFile D:\server\subversion-repository\config\htpasswd AuthzSVNAccessFile D:\server\subversion-repository\config\authz #setting XSLT SVNIndexXSLT "/repos-web/view/repos.xsl" </Location> - Tutup browser USVN, lalu restart/Run Apache sekali lagi…
- Buka browser, lalu akses URL USVN di http://localhost/usvn/. Sekarang Anda akan diminta memasukkan username dan password untuk mengkasesnya. Sampai tahap ini dapat dikatakan bahwa instalasi USVN telah berhasil.
Untuk langkah awal penggunaan USVN, masuklah ke page Admin dari menu di atas. Di halaman ini Anda dapat mengelola user, group, project (repository), serta merubah setting konfigurasi.
Sangat disarankan membuat group dan user terlebih dahulu, sebelum Anda membuat suatu repository (project). Maka buatlah sebuah group, misalkan “Administrator” dari halaman Groups; kemudian masuklah ke halaman Users, dan cobalah mengedit account Anda, lalu asosiasikan (masukkan) account tersebut ke dalam group “Administrator”. Lalu buat pula beberapa group dan user lain sebagai uji-coba.
Setelah langkah diatas, dari halaman Projects buat ulang repository “repo1”—yang tadi telah Anda hapus sebelum instalasi USVN. Setelah selesai membuat “repo1”, Anda dapat menambahkan user dan group ke dalam “repo1” dengan meng-klik icon project. Bila suatu repository telah memiliki group, maka Anda dapat menambahkan access right atas suatu repository dengan meng-klik ikon “access right”.
6. Optimized WebDAV Configuration
Berikut adalah beberapa setting untuk mengoptimalkan konfigurasi WebDAV:
# SVNListParentPath On/Off, untuk menampilkan/menghide list repository di home SVN
SVNListParentPath On
#Mematikan autentikasi per path agar loading page lebih cepat
SVNPathAuthz off
#Semua file di-force untuk ditampilkan sebagai plat-file
ForceType text/plain
#Tambahan options setting Apache
Options Indexes MultiViews IncludesNoExec
7. Last Touch: Anonymous Access
Berbagai repository di internet, seperti Sourceforge, memberikan para pengunjung biasa (anonymous) untuk dapat mem-browse repositorynya. Bagaimana hal tersebut dapat dilakukan setelah kita menginstall USVN?
Untuk repository di internet, panduan di bawah sama-sekali tidak dianjurkan terkait dengan masalah security; tetapi untuk jaringan tertutup (intranet) bisa diterapkan. Untuk repository di internet, Anda sebaiknya menggunakan aplikasi sendiri, seperti webSVN, untuk mengakses repository—tentunya dengan berbagai hack dan konfigurasi tambahan.
Berikut adalah langkah-langkah agar repository dapat diakses oleh user anonymous.
- Edit file “authz” (E:\WWWSERV\subversion-repository\config\authz), dan tambahkan “r” (read) untuk user “*” (anonymous), seperti dibawah:
[/]
* = r
Require valid-user
Satisfy Any


