GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Apache Subversion dengan Lets encrypt SSL di Ubuntu 18.04

Apache Subversion atau SVN adalah versi perangkat lunak sumber terbuka dan sistem kontrol revisi yang dikembangkan oleh Apache Software Foundation. Ini digunakan untuk memelihara versi terkini dan historis dari kode sumber, dokumen, dan halaman web.

Subversion atau svn banyak digunakan untuk proyek besar dan komunitas open source seperti Apache Software Foundation, FreeBSD, GCC, SourceForge dll.

Pada artikel ini, saya akan menunjukkan kepada Anda cara mengatur Apache Subversion menggunakan server Ubuntu 18.04 LTS. Kami akan menginstal dan mengonfigurasi perangkat lunak svn dengan Apache sebagai server web, mengaktifkan 'otentikasi dasar' untuk pengguna, dan mengamankan akses dengan menggunakan Letsencrypt SSL untuk akses repositori.

Dan bagi mereka yang lebih menyukai GIT, tutorial GIT Ubuntu 18.04 ada di sini.

Prasyarat

  • Ubuntu 18.04
  • Hak istimewa root

Apa yang akan kami lakukan

  1. Instal server web Apache2 di Ubuntu 18.04
  2. Instal Apache Subversion (SVN)
  3. Konfigurasikan Repositori Subversi
  4. Buat SSL Letsencrypt untuk Ubuntu Apache2
  5. Konfigurasi Subversion Virtual Host di Apache2
  6. Pengujian

Langkah 1 - Instal server web Apache2 di Ubuntu 18.04 LTS

Pada langkah pertama ini, kita akan menginstal server web Apache2 dan menambahkan layanan baru ssh dan HTTP ke konfigurasi firewall ufw.

Instal server web Apache2 menggunakan perintah apt di bawah ini.

sudo apt install apache2 apache2-utils -y

Setelah instalasi selesai, tambahkan layanan SSH dan HTTP ke konfigurasi firewall ufw.

Jalankan perintah ufw di bawah ini.

ufw allow ssh
ufw allow http

Aktifkan firewall.

ufw enable

Sekarang mulai layanan Apache2 dan aktifkan untuk diluncurkan setiap kali sistem boot.

systemctl start apache2
systemctl enable apache2

Server web Apache2 aktif dan berjalan, serta layanan SSH dan HTTP telah ditambahkan ke daftar layanan firewall.

Langkah 2 - Instal Apache Subversion (SVN)

Dalam tutorial ini, kita akan menginstal subversion dan paket svn libapache dari repositori resmi Ubuntu.

Instal Subversion menggunakan perintah apt di bawah ini.

sudo apt install subversion subversion-tools libapache2-mod-svn -y

Sekarang periksa perintah svn.

svn --version

Apache Subversion (SVN) telah diinstal pada Server Ubuntu 18.04.

Langkah 3 - Konfigurasikan Repositori Subversi

Setelah instalasi Subversion, kita akan mengkonfigurasi direktori repositori master Subversion. Kami akan membuat direktori 'svn' baru yang akan digunakan untuk menyimpan semua kode sumber dan repositori.

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.

Langkah 4 - Buat Sertifikat SSL Letsencrypt

Dalam tutorial ini, kita akan mengkonfigurasi server svn untuk menggunakan koneksi HTTPS dengan domain bernama 'svn.hakase-labs.io'. Kami akan menggunakan SSL Letsencrypt gratis, dan dapat dibuat menggunakan alat certbot.

Instal certbot di server Ubuntu menggunakan perintah yum di bawah ini.

sudo apt install certbot -y

Setelah instalasi selesai, kita perlu menambahkan layanan HTTPS ke daftar layanan firewall ufw.

Jalankan perintah ufw di bawah ini.

ufw allow https
ufw reload

Sekarang hentikan layanan httpd, sehingga kami dapat membuat SSL Letsencrypt menggunakan server web sementara 'mandiri'.

systemctl stop apache2

Buat Letsencrypt SSL untuk nama domain 'svn.hakase-labs.io' menggunakan perintah certbot di bawah ini.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io

Dan setelah selesai, Anda akan mendapatkan file sertifikat di dalam direktori '/etc/letsencrypt/live'.

Langkah 5 - Konfigurasikan Subversion Virtual Host di Apache2

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 konfigurasi '/etc/apache2'.

cd /etc/apache2/

Buat konfigurasi host virtual subversi baru 'svn.conf' pada direktori 'sites-available'.

cd sites-available/
vim svn.conf

Tempelkan konfigurasi di bawah ini.

<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 /var/log/apache2/svn_error_log
TransferLog /var/log/apache2/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 /var/log/apache2/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Simpan dan keluar.

Selanjutnya, kita perlu membuat daftar pengguna baru yang dapat melihat dan mengkomit file ke repositori.

Buat pengguna baru bernama 'hakase' menggunakan perintah htpasswd.

sudo htpasswd -cm /etc/subversion/svn.users hakase

Aktifkan modul SSL di apache dan aktifkan svn virtual host dengan menjalankan perintah di bawah ini.

sudo a2enmod ssl
sudo a2ensite svn

Mulai ulang layanan Apache2.

systemctl restart apache2

Konfigurasi virtual host untuk Subversion telah dibuat, dan pengguna 'hakase' sekarang memiliki akses untuk melihat dan mengkomit kode sumber ke repositori 'hakase-project'.

Langkah 6 - Pengujian

Lihat Repositori

Buka browser web Anda dan ketik URL server, milik saya adalah yang di bawah ini).

https://svn.hakase-labs.io/repo/hakase-project/

Dan Anda akan diperlihatkan otentikasi pengguna dasar.

Login dengan user dan password 'hakase', dan Anda akan mendapatkan halaman kosong halaman repositori seperti di bawah ini.

Impor Proyek ke Repositori SVN

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 direktori templates 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

Anda akan ditanya tentang beberapa hal, bertindaklah dengan cara 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 akan mencoba mengkloning repositori ke lingkungan lokal.

Masuk ke pengguna non-root/normal.

useradd -m -s /bin/bash misaka
su - misaka

Klon ke repositori 'hakase-project' direktori lokal bernama 'myproject' sebagai pengguna 'hakase'.

svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase

Periksa direktori 'myproject' baru dan Anda akan mendapatkan semua template svn.

tree ~/myproject

Membuat Kode Sumber

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 mendapatkan semua file telah ditambahkan ke repositori.

Instalasi dan konfigurasi Apache Subversion di Ubuntu 18.04 LTS Server telah berhasil diselesaikan.


Ubuntu
  1. Cara Mengamankan Nginx dengan Lets Encrypt Di Ubuntu 20.04 / 18.04

  2. Amankan Apache dengan Lets Encrypt di Ubuntu 18.04

  3. Cara mengamankan Apache dengan Lets Encrypt di Ubuntu 18.04

  1. Amankan Apache dengan Lets Encrypt di Ubuntu 20.04

  2. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  3. Cara menginstal Webmin dan mengamankannya dengan Lets Encrypt SSL di Ubuntu 20.04 LTS

  1. Cara Menginstal Forum Vanilla dengan Apache dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  2. Cara Menginstal CMS TYPO3 dengan Lets Encrypt SSL di Ubuntu 20.04

  3. Cara Menginstal CMS Concrete5 dengan Apache dan Lets Encrypt SSL gratis di Ubuntu 20.04