Apache Subversion nebo SVN je open-source systém pro správu verzí a kontrolu revizí vyvinutý nadací Apache Software Foundation. Používá se k udržování aktuálních a historických verzí zdrojového kódu, dokumentů a webových stránek.
Subversion nebo svn široce používané pro velké projekty a komunitu open source, jako je Apache Software Foundation, FreeBSD, GCC, SourceForge atd.
V tomto článku vám ukážu, jak nastavit Apache Subversion pomocí serveru Ubuntu 18.04 LTS. Nainstalujeme a nakonfigurujeme software svn s Apache jako webovým serverem, povolíme „základní ověřování“ pro uživatele a zabezpečíme přístup pomocí Letsencrypt SSL pro přístup k úložišti.
A pro ty, kteří dávají přednost GIT, je tu návod GIT Ubuntu 18.04.
Předpoklady
- Ubuntu 18.04
- Oprávnění uživatele root
Co uděláme
- Nainstalujte webový server Apache2 na Ubuntu 18.04
- Nainstalujte Apache Subversion (SVN)
- Nakonfigurujte úložiště Subversion
- Vygenerujte SSL Letsencrypt pro Ubuntu Apache2
- Nakonfigurujte virtuálního hostitele Subversion na Apache2
- Testování
Krok 1 – Instalace webového serveru Apache2 na Ubuntu 18.04 LTS
V tomto prvním kroku nainstalujeme webový server Apache2 a přidáme nové služby ssh a HTTP do konfigurace firewallu ufw.
Nainstalujte webový server Apache2 pomocí příkazu apt níže.
sudo apt install apache2 apache2-utils -y
Po dokončení instalace přidejte služby SSH a HTTP do konfigurace brány firewall ufw.
Níže spusťte příkazy ufw.
ufw allow ssh
ufw allow http
Povolte bránu firewall.
ufw enable
Nyní spusťte službu Apache2 a povolte její spuštění při každém startu systému.
systemctl start apache2
systemctl enable apache2
Webový server Apache2 je v provozu a služby SSH a HTTP byly přidány do seznamu služeb brány firewall.
Krok 2 – Instalace Apache Subversion (SVN)
V tomto tutoriálu nainstalujeme balíčky subversion a svn libapache z oficiálního úložiště Ubuntu.
Nainstalujte Subversion pomocí příkazu apt níže.
sudo apt install subversion subversion-tools libapache2-mod-svn -y
Nyní zkontrolujte příkaz svn.
svn --version
Na Ubuntu 18.04 Server byl nainstalován Apache Subversion (SVN).
Krok 3 – Konfigurace úložiště Subversion
Po instalaci subversion nakonfigurujeme hlavní adresář úložiště subversion. Vytvoříme nový adresář 'svn', který bude sloužit k uložení všech zdrojových kódů a repozitářů.
Vytvořte nový hlavní adresář '/svn'.
mkdir /svn
A vytvořte nové ukázkové úložiště s názvem 'hakase-project' pomocí příkazu svnadmin níže.
svnadmin create /svn/hakase-project
Nyní změňte vlastníka adresáře '/svn/hakase-project' na uživatele a skupinu 'apache'.
sudo chown -R apache:apache /svn/hakase-project
A bylo vytvořeno úložiště svn.
Krok 4 – Vygenerování certifikátu Letsencrypt SSL
V tomto tutoriálu nakonfigurujeme server svn tak, aby používal připojení HTTPS s doménou s názvem 'svn.hakase-labs.io'. Budeme používat bezplatný SSL Letsencrypt a lze jej vygenerovat pomocí nástroje certbot.
Nainstalujte certbota na server Ubuntu pomocí příkazu yum níže.
sudo apt install certbot -y
Po dokončení instalace musíme přidat službu HTTPS do seznamů služeb brány firewall ufw.
Níže spusťte příkazy ufw.
ufw allow https
ufw reload
Nyní zastavte službu httpd, abychom mohli vygenerovat SSL Letsencrypt pomocí „samostatného“ dočasného webového serveru.
systemctl stop apache2
Vygenerujte SSL Letsencrypt pro název domény 'svn.hakase-labs.io' pomocí příkazu certbot níže.
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d svn.hakase-labs.io
A po jeho dokončení získáte soubory certifikátů v adresáři '/etc/letsencrypt/live'.
Krok 5 – Konfigurace virtuálního hostitele Subversion na Apache2
V tomto kroku vytvoříme novou konfiguraci Apache httpd pro svn přístup. Úložiště svn nakonfigurujeme pomocí názvu domény 'svn.hakase-labs.io' a bude přístupné pouze registrovaným uživatelům používajícím základní autentizaci HTTP.
Přejděte do konfiguračního adresáře '/etc/apache2'.
cd /etc/apache2/
Vytvořte novou konfiguraci virtuálního hostitele subversion 'svn.conf' v adresáři 'sites-available'.
cd sites-available/
vim svn.conf
Vložte konfiguraci níže.
<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>
Uložte a ukončete.
Dále musíme vytvořit nový seznam uživatelů, kteří budou moci prohlížet a odevzdávat soubory do úložiště.
Vytvořte nového uživatele s názvem 'hakase' pomocí příkazu htpasswd.
sudo htpasswd -cm /etc/subversion/svn.users hakase
Povolte modul SSL na Apache a povolte virtuálního hostitele svn spuštěním příkazů níže.
sudo a2enmod ssl
sudo a2ensite svn
Restartujte službu Apache2.
systemctl restart apache2
Konfigurace virtuálního hostitele pro subversion byla vytvořena a uživatel 'hakase' má nyní přístup k zobrazení a odevzdání zdrojového kódu do úložiště 'hakase-project'.
Krok 6 – Testování
Zobrazit úložiště
Otevřete webový prohlížeč a zadejte adresu URL serveru, moje je níže).
https://svn.hakase-labs.io/repo/hakase-project/
Zobrazí se vám základní ověření uživatele.
Přihlaste se pomocí uživatele a hesla 'hakase' a získáte úložiště prázdných stránek, jak je uvedeno níže.
Importovat projekt do úložiště SVN
Nyní naimportujeme vzorové šablony projektu svn do úložiště 'hakase-project'.
Vytvořte nový adresář projektu svn-templates.
mkdir -p ~/svn-templates/{trunk,branches,tags}
Přidejte adresář šablon do úložiště 'hakase-project' pomocí příkazu svn níže.
svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase
Budete dotázáni na některé věci, jednejte následujícím způsobem.
- Zadáním „p“ trvale přidáte certifikát Letsencrypt.
- Zadejte uživatele a heslo „hakase“.
- A zadáním „ano“ potvrďte uložení nešifrovaného hesla.
Zkontrolujte 'hakase-project' z webového prohlížeče a získáte v něm všechny adresáře šablon.
Klonování úložiště
Po vytvoření a nahrání adresáře svn templates se pokusíme naklonovat úložiště do místního prostředí.
Přihlaste se k jinému než root/normálnímu uživateli.
useradd -m -s /bin/bash misaka
su - misaka
Naklonujte do úložiště 'hakase-project' místní adresář s názvem 'myproject' jako uživatel 'hakase'.
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
Zkontrolujte nový adresář 'myproject' a získáte všechny svn šablony.
tree ~/myproject
Potvrdit zdrojový kód
Přejděte do adresáře 'myproject'.
cd myproject/
Vytvořte nějaké soubory v adresáři '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
Přidat a potvrdit
svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase
Zkontrolujte úložiště z webového prohlížeče a zjistíte, že všechny soubory byly přidány do úložiště.
Instalace a konfigurace Apache Subversion na serveru Ubuntu 18.04 LTS byla úspěšně dokončena.