Vyhledávání na webu

Nejlepší průvodce nastavením Apache Subversion SVN a TortoiseSVN pro správu verzí


Pokud vaše práce vyžaduje manipulaci s dokumenty, webovými stránkami a dalšími typy souborů, které jsou pravidelně aktualizovány, možná budete chtít použít mechanismus řízení verzí, pokud tak ještě neděláte.

To vám mimo jiné umožňuje (a také skupině potenciálních spolupracovníků) sledovat změny provedené v daném souboru a umožňuje vám vrátit se k předchozí verzi, pokud dojde k problému nebo když aktualizace nepřinesla očekávaný výsledek. .

V ekosystému svobodného softwaru se nejrozšířenější systém správy verzí nazývá Apache Subversion (nebo zkráceně SVN). S pomocí mod_dav_svn (modul Apache pro Subversion) můžete přistupovat k úložišti Subversion pomocí HTTP a webového serveru.

To znamená, vyhrňme si rukávy a nainstalujme tyto nástroje na RHEL/CentOS 7, Fedora 22-24, Debian 8/7 a Server Ubuntu 16.04-15.04. Pro naše testy použijeme server CentOS 7 s IP 192.168.0.100.

Na straně klienta (stroj Windows 7) nainstalujeme a použijeme TortoiseSVN (který je založen na Apache Subversion) jako rozhraní k SVN.

Naše testovací prostředí


Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

Krok 1 – Instalace a konfigurace SVN v systému Linux

Jak jsme právě zmínili, při přístupu k SVN úložišti pomocí webového rozhraní se budeme spoléhat na Apache. Pokud ještě není nainstalován, nezapomeňte jej přidat do seznamu balíčků, jak je uvedeno níže:


------------------ On CentOS / RHEL / Fedora ------------------ 
yum update && yum install mod_dav_svn subversion httpd -y

------------------ On Debian / Ubuntu ------------------ 
apt-get update && apt-get install libapache2-svn subversion apache2 -y 

Během instalace na CentOS 7 bude vytvořen konfigurační soubor Apache pro SVN jako /etc/httpd/conf.modules.d/10-subversion.conf. Otevřete soubor a přidejte následující konfigurační blok:


<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/httpd/subversion-auth
    Require valid-user
</Location>

Poznámka: V Debian/Ubuntu musíte přidat níže uvedené řádky do /etc/apache2/mods-enabled/dav_svn.conf .


<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/apache2/subversion-auth
    Require valid-user
</Location>

V Debian/Ubuntu musíte povolit modul dav_svn Apache:


a2enmod dav_svn

Pár upřesnění:

  1. Direktiva SVNParentPath označuje adresář, kde budou později vytvořena naše úložiště. Pokud tento adresář neexistuje (což je pravděpodobně tento případ), vytvořte jej pomocí:

    
    mkdir -p /websrv/svn
    

    Je důležité si uvědomit, že tento adresář NESMÍ být umístěn uvnitř DocumentRoot virtuálního hostitele, který je aktuálně obsluhován Apache, ani se s ním nesmí překrývat. Tohle je parádička!

  2. Direktiva AuthUserFile označuje soubor, do kterého budou uloženy přihlašovací údaje platného uživatele. Pokud chcete všem umožnit přístup k SVN bez ověření, odstraňte poslední čtyři řádky v bloku Umístění. V takovém případě přeskočte Krok 2 a přejděte přímo ke Kroku 3.
  3. I když můžete být v pokušení restartovat Apache, abyste mohli použít tyto nedávné změny, ještě to nedělejte, protože stále potřebujeme vytvořit ověřovací soubor s platnými uživateli pro SVN a samotné úložiště.

Krok 2 – Přidejte povolené uživatele pro přístup k SVN

Nyní použijeme htpasswd k vytvoření hesla pro účty, kterým bude povolen přístup k SVN. Pouze pro prvního uživatele budeme potřebovat volbu -c.

Povolené účty a hesla zašifrovaná bcrypt (-B) budou uloženy v /etc/httpd/subversion-auth v párech klíč–hodnota. Všimněte si, že podle dnešních standardů je výchozí šifrování MD5 nebo SHA používané htpasswd považováno za nezabezpečené.


------------------ On CentOS / RHEL / Fedora ------------------ 
htpasswd -cB /etc/httpd/subversion-auth tecmint

------------------ On Debian / Ubuntu ------------------ 
htpasswd -cB /etc/apache2/subversion-auth tecmint

Nezapomeňte nastavit správné vlastnictví a oprávnění k ověřovacímu souboru:


------------------ On CentOS / RHEL / Fedora ------------------ 
chgrp apache /etc/httpd/subversion-auth
chmod 660 /etc/httpd/subversion-auth

------------------ On Debian / Ubuntu ------------------ 
chgrp www-data /etc/apache2/subversion-auth
chmod 660 /etc/apache2/subversion-auth

Krok 3 – Přidejte zabezpečení a vytvořte úložiště SVN

Protože budete k SVN přistupovat přes webové rozhraní, budete muset povolit provoz HTTP (a volitelně HTTPS) přes váš firewall.


------------------ On CentOS / RHEL / Fedora ------------------ 
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload 

Opětovným načtením konfigurace firewallu pomocí --reload se trvalé nastavení okamžitě projeví.

Vytvořte počáteční úložiště SVN s názvem tecmint:


svnadmin create /websrv/svn/tecmint

Změňte vlastníka a vlastníka skupiny na apache rekurzivně:


------------------ On CentOS / RHEL / Fedora ------------------ 
chown -R apache:apache /websrv/svn/tecmint

------------------ On Debian / Ubuntu ------------------ 
chown -R www-data:www-data /websrv/svn/tecmint

Nakonec budete muset změnit kontext zabezpečení /websrv/svn/tecmint (všimněte si, že tento krok budete muset opakovat, pokud se později rozhodnete vytvořit další úložiště):


------------------ On CentOS / RHEL / Fedora ------------------ 
chcon -R -t httpd_sys_content_t /websrv/svn/tecmint/
chcon -R -t httpd_sys_rw_content_t /websrv/svn/tecmint/

Poznámka: Poslední dva příkazy nemusí platit, pokud instalujete SVN na VPS se zakázaným SELinuxem.

Doporučená četba: Naučte se, jak dočasně nebo trvale zakázat SELinux v Linuxu

Restartujte Apache a ověřte, zda je úložiště dostupné.


------------------ On CentOS / RHEL / Fedora ------------------ 
systemctl restart httpd

------------------ On Debian / Ubuntu ------------------ 
systemctl restart apache2

Poté spusťte webový prohlížeč a nasměrujte jej na http://192.168.0.100/svn/tecmint. Po zadání přihlašovacích údajů pro platného uživatele, které jsme vytvořili v Kroku 1, by měl být výstup podobný:

V tuto chvíli jsme do našeho úložiště nepřidali žádný kód. Ale to uděláme za minutu.

Krok 4 – Nainstalujte TortoiseSVN do klienta Windows 7

Jak jsme zmínili v úvodu, TortoiseSVN je uživatelsky přívětivé rozhraní pro Apache Subversion. Je to svobodný software licencovaný pod GPL a lze jej stáhnout z https://tortoisesvn.net/downloads.html.

Vyberte architekturu (32 nebo 64bitová), která odpovídá vašemu počítači, a nainstalujte program, než budete pokračovat.

Krok 5 – Nastavení úložiště SVN na klientském počítači

V tomto kroku použijeme složku s názvem webapp uvnitř Dokumenty. Tato složka obsahuje soubor HTML a dvě složky s názvem skripty a styly se souborem Javascript a CSS (script.js a styles.css, v tomto pořadí), které chceme přidat do správy verzí.

Klikněte pravým tlačítkem na webovou aplikaci a zvolte SVN Checkout. Tím se vytvoří místní kopie vzdáleného úložiště (které je v tuto chvíli prázdné) a inicializuje se složka pro správu verzí:

Do adresy URL úložiště zadejte http://192.168.0.100/svn/tecmint a ujistěte se, že místní adresář pokladny zůstává stejný, poté klikněte na OK:

Zadejte uživatelské jméno a heslo (viz Krok 2) a klikněte na OK:

Budete dotázáni, zda chcete provést rezervaci do neprázdného adresáře. Potvrďte a pokračujte v placení. Po dokončení se vedle názvu složky objeví zelené zaškrtnutí:

Krok 6 – Potvrdit změny a nasadit soubory do vzdáleného úložiště SVN

Znovu klikněte pravým tlačítkem na webapp a tentokrát zvolte Potvrdit. Dále napište popisný komentář k pozdější identifikaci tohoto odevzdání a zkontrolujte soubory a složky, které chcete nasadit do úložiště. Nakonec klikněte na OK:

V závislosti na velikosti souborů by potvrzení nemělo trvat déle než minutu. Po dokončení uvidíte, že jsme nyní na revizi 1, která odpovídá verzi a souborům uvedeným ve webovém rozhraní:

Pokud na stejných souborech pracuje několik lidí, budete chtít aktualizovat svou místní kopii, abyste měli k dispozici nejnovější verzi. Můžete to udělat kliknutím pravým tlačítkem na webapp a výběrem Aktualizovat z kontextové nabídky.

Blahopřejeme! Úspěšně jste nastavili server SVN a odevzdali/aktualizovali jednoduchý projekt pod kontrolou verzí.

souhrn

V tomto článku jsme vysvětlili, jak nainstalovat a nakonfigurovat server úložiště Apache Subversion na serveru CentOS 7 a jak provést změny v tomto úložišti pomocí TortoiseSVN<.

Upozorňujeme, že SVN a TortoiseSVN obsahuje mnohem více, než co zde můžeme adekvátně pokrýt (zejména jak se vrátit k předchozím revizím), takže se můžete obrátit na oficiální docs (SVN a TortoiseSVN), kde najdete další informace a případy konfigurace.

V případě jakýchkoli dotazů nám jako vždy dejte vědět! Neváhejte nás kdykoli kontaktovat pomocí formuláře pro komentáře níže.