Apache Subversion atau SVN adalah versi open source dan perangkat lunak kontrol revisi yang dikembangkan oleh Apache Software Foundation. Ini digunakan untuk memelihara versi terkini dan historis dari kode sumber, dokumen, dan halaman Web.
Subversion digunakan oleh banyak pengembang perangkat lunak dan proyek sumber terbuka seperti Apache Software Foundation, FreeBSD, GCC, dan SourceForge.
Dalam artikel ini, kami menunjukkan cara menyiapkan Apache Subversion di server CentOS 7 terbaru. Kami menginstal dan mengonfigurasi perangkat lunak svn dengan Apache sebagai server web, mengamankannya dengan Mari mengenkripsi dan mengaktifkan "Otentikasi Dasar" untuk pengguna.
Prasyarat
- Server CentOS 7
- Hak istimewa root
Apa yang akan kami lakukan
- Instal Apache Httpd di CentOS 7
- Instal Subversion
- Konfigurasikan Repositori Subversi
- Buat SSL Letsencrypt untuk CentOS Apache Httpd
- Konfigurasi Subversion Virtual Host di Apache Httpd
- Pengujian
Langkah 1 - Instal Apache Httpd di CentOS 7
Langkah pertama dalam panduan ini adalah menginstal paket Apache httpd di sistem Anda.
Instal Apache httpd menggunakan perintah yum di bawah ini.
yum -y install httpd httpd-tools mod_ssl
Dan setelah penginstalan selesai, kita perlu menambahkan layanan HTTP ke daftar layanan firewall.
Jalankan perintah firewall-cmd di bawah ini.
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
Sekarang mulai layanan httpd dan tambahkan untuk memulai saat boot.
systemctl start httpd
systemctl enable httpd
Apache httpd aktif dan berjalan di server.
Langkah 2 - Instal Apache Subversion (SVN)
Dalam tutorial ini, kita akan menginstal paket subversion dari repositori dasar CentOS 7.
Instal Subversion dan semua paket yang diperlukan menggunakan perintah yum di bawah ini.
yum -y install subversion subversion-tools mod_dav_svn
Tunggu hingga semua paket terinstal lalu periksa versi svn.
svn --version
Langkah 3 - Konfigurasi Repositori Subversion (SVN)
Setelah instalasi Subversion, kami mengkonfigurasi direktori repositori master Subversion. Kami akan membuat direktori 'svn' baru di mana semua kode sumber dan repositori akan disimpan.
Buat direktori master '/svn' baru.
mkdir /svn
Dan buat repositori sampel baru bernama 'hakase-project' menggunakan perintah svnadmin di bawah ini.
svnadmin create /svn/hakase-project
Sekarang ubah pemilik direktori '/svn/hakase-project' menjadi pengguna dan grup 'apache'.
sudo chown -R apache:apache /svn/hakase-project
Dan repositori svn telah dibuat.
Catatan:
Tambahan untuk pengguna SELinux, jalankan perintah di bawah ini.
chcon -R -t httpd_sys_content_t /svn/hakase-project
chcon -R -t httpd_sys_rw_content_t /svn/hakase-project
Langkah 4 - Buat Mari mengenkripsi Sertifikat SSL untuk Apache
Dalam tutorial ini, kita mengkonfigurasi server svn untuk menggunakan koneksi HTTPS dengan domain bernama 'svn.hakase-labs.io'. Kami akan menggunakan sertifikat SSL Let's encrypt gratis yang dapat dibuat dengan alat certbot.
Instal certbot di server CentOS dengan perintah yum di bawah ini.
yum -y install certbot
Ketika instalasi selesai, kita perlu menambahkan layanan HTTPS ke daftar layanan firewalld.
Jalankan perintah firewalld di bawah ini.
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
Sekarang hentikan layanan httpd, sehingga kami dapat membuat SSL Letsencrypt menggunakan server web sementara 'mandiri'.
systemctl stop httpd
Buat Sertifikat SSL Letsencrypt untuk nama domain 'svn.hakase-labs.io' menggunakan perintah certbot di bawah.
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io
Sekarang Anda akan mendapatkan file sertifikat di direktori '/etc/letsencrypt/live'.
Langkah 5 - Konfigurasikan Subversion Virtual Host di Apache Httpd
Pada langkah ini, kita akan membuat konfigurasi Apache httpd baru untuk akses svn. Kami akan mengonfigurasi repositori svn menggunakan nama domain 'svn.hakase-labs.io', dan hanya dapat diakses oleh pengguna terdaftar yang menggunakan otentikasi dasar HTTP.
Buka direktori '/etc/httpd/conf.d' dan buat konfigurasi svn baru 'svn.conf'.
cd /etc/httpd/conf.d/
vim svn.conf
Tempelkan konfigurasi di bawah.
<VirtualHost svn.hakase-labs.io:80> ServerName svn.hakase-labs.io DocumentRoot /var/www/html Redirect permanent / https://svn.hakase-labs.io </VirtualHost> <VirtualHost svn.hakase-labs.io:443> DocumentRoot /var/www/html ServerName svn.hakase-labs.io SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pem ErrorLog logs/svn_error_log TransferLog logs/svn_access_log LogLevel warn <location /repo> DAV svn SVNParentPath /svn/ AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/subversion/svn.users Require valid-user </location> <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
Simpan file dan keluar dari editor.
Selanjutnya, kita perlu membuat daftar pengguna baru yang dapat melihat dan mengkomit file ke repositori.
Buat pengguna baru bernama 'hakase' menggunakan perintah htpasswd di bawah ini.
sudo htpasswd -cm /etc/subversion/svn.users hakase
Sekarang restart layanan Apache httpd.
systemctl restart httpd
Pengguna 'hakase' sekarang memiliki akses untuk melihat dan memasukkan kode sumber ke repositori 'hakase-project'.
Langkah 6 - Pengujian
Melihat Repositori
Buka browser web Anda dan ketik URL server, milik saya ini: https://svn.hakase-labs.io/repo/hakase-project/
Dan Anda akan diperlihatkan prompt otentikasi pengguna dasar.
Login dengan user dan password 'hakase', dan berikut hasilnya.
Impor Proyek ke Repositori
Sekarang kita akan mengimpor template proyek sampel svn ke repositori 'hakase-project'.
Buat direktori proyek svn-templates baru.
mkdir -p ~/svn-templates/{trunk,branches,tags}
Tambahkan semua direktori template ke repositori 'hakase-project' menggunakan perintah svn di bawah ini.
svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase
Sekarang Anda akan ditanya hal-hal berikut.
- Ketik 'p' untuk menambahkan sertifikat Letsencrypt secara permanen.
- Ketikkan pengguna dan sandi 'hakase'.
- Dan ketik 'ya' untuk mengonfirmasi tentang penyimpanan sandi yang tidak terenkripsi.
Periksa 'hakase-project' dari browser web, dan Anda akan mendapatkan semua direktori template di dalamnya.
Klon Repositori
Setelah membuat dan mengunggah direktori template svn, kami ingin mengkloning atau menyalin repositori ke lingkungan lokal.
Buat pengguna normal baru dan login ke pengguna.
useradd -m -s /bin/bash misaka
su - misaka
Kloning repositori 'hakase-project' direktori lokal bernama 'myproject' sebagai pengguna 'hakase'.
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
Dan Anda akan ditanya lagi tentang hal-hal di bawah ini.
- Ketik 'p' untuk menambahkan sertifikat Letsencrypt secara permanen.
- Ketikkan pengguna dan sandi 'hakase'.
- Dan ketik 'ya' untuk mengonfirmasi tentang penyimpanan sandi yang tidak terenkripsi.
Dan jika sudah selesai, periksa direktori 'myproject' yang baru dan Anda akan mendapatkan semua template svn.
tree ~/myproject
Membuat Kode atau Dokumen
Buka direktori 'proyek saya'.
cd myproject/
Buat beberapa file di direktori 'trunk'.
echo 'this is my repo' > trunk/test-hakase.txt
echo 'this is my repo01' > trunk/test-hakase01.txt
echo 'this is my repo02' > trunk/test-hakase02.txt
Tambahkan dan komit.
svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase
Periksa repositori dari browser web, dan Anda akan melihat semua file telah ditambahkan ke repositori.
Instalasi dan konfigurasi Apache Subversion dengan HTTPS Letsencrypt pada CentOS 7 telah berhasil diselesaikan.