Apache Subversion nebo SVN je open source software 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 používá mnoho softwarových vývojářů a open source projektů jako Apache Software Foundation, FreeBSD, GCC a SourceForge.
V tomto článku vám ukážeme, jak nastavit Apache Subversion na nejnovějším serveru CentOS 7. Nainstalujeme a nakonfigurujeme svn software s Apache jako webový server, zabezpečíme jej pomocí Let's encrypt a pro uživatele aktivujeme „Basic Authentication“.
Předpoklady
- Server CentOS 7
- Oprávnění uživatele root
Co uděláme
- Nainstalujte Apache Httpd na CentOS 7
- Nainstalujte Subversion
- Nakonfigurujte úložiště Subversion
- Vygenerujte SSL Letsencrypt pro CentOS Apache Httpd
- Nakonfigurujte virtuálního hostitele Subversion na Apache Httpd
- Testování
Krok 1 – Instalace Apache Httpd na CentOS 7
Prvním krokem v této příručce je instalace balíčků Apache httpd do vašeho systému.
Nainstalujte Apache httpd pomocí příkazu yum níže.
yum -y install httpd httpd-tools mod_ssl
A po dokončení instalace musíme přidat službu HTTP do seznamů služeb brány firewall.
Níže spusťte příkazy firewall-cmd.
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
Nyní spusťte službu httpd a přidejte ji, aby se spustila při bootování.
systemctl start httpd
systemctl enable httpd
Na serveru je spuštěn Apache httpd.
Krok 2 – Instalace Apache Subversion (SVN)
V tomto tutoriálu nainstalujeme balíčky subversion ze základního úložiště CentOS 7.
Nainstalujte Subversion a všechny požadované balíčky pomocí příkazu yum níže.
yum -y install subversion subversion-tools mod_dav_svn
Počkejte, až se nainstalují všechny balíčky, a poté zkontrolujte verzi svn.
svn --version
Krok 3 – Konfigurace úložiště Subversion (SVN)
Po instalaci Subversion nakonfigurujeme hlavní adresář úložiště Subversion. Vytvoříme nový adresář 'svn', kde budou uloženy všechny zdrojové kódy a úložiště.
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.
Poznámka:
Další pro uživatele SELinuxu spusťte níže uvedené příkazy.
chcon -R -t httpd_sys_content_t /svn/hakase-project
chcon -R -t httpd_sys_rw_content_t /svn/hakase-project
Krok 4 – Vygenerujte Pojďme šifrovat SSL certifikát pro Apache
V tomto tutoriálu nakonfigurujeme server svn tak, aby používal připojení HTTPS s doménou s názvem 'svn.hakase-labs.io'. Použijeme bezplatný certifikát Let's encrypt SSL, který lze vygenerovat pomocí nástroje certbot.
Nainstalujte certbot na server CentOS pomocí příkazu yum níže.
yum -y install certbot
Po dokončení instalace musíme přidat službu HTTPS do seznamu služeb brány firewall.
Níže spusťte příkazy brány firewall.
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
Nyní zastavte službu httpd, abychom mohli vygenerovat SSL Letsencrypt pomocí „samostatného“ dočasného webového serveru.
systemctl stop httpd
Vygenerujte certifikát Letsencrypt SSL Cert 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
Nyní získáte soubory certifikátů v adresáři '/etc/letsencrypt/live'.
Krok 5 – Konfigurace virtuálního hostitele Subversion na Apache Httpd
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 pro registrované uživatele používající základní autentizaci HTTP.
Přejděte do adresáře '/etc/httpd/conf.d' a vytvořte novou konfiguraci svn 'svn.conf'.
cd /etc/httpd/conf.d/
vim svn.conf
Vložte konfigurace 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 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>
Uložte soubor a ukončete editor.
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 níže.
sudo htpasswd -cm /etc/subversion/svn.users hakase
Nyní restartujte služby Apache httpd.
systemctl restart httpd
Uživatel 'hakase' má nyní přístup k zobrazení a odeslání zdrojového kódu do úložiště 'hakase-project'.
Krok 6 – Testování
Zobrazení úložiště
Otevřete webový prohlížeč a zadejte adresu URL serveru, moje je tato: https://svn.hakase-labs.io/repo/hakase-project/
Zobrazí se výzva k základnímu ověření uživatele.
Přihlaste se pomocí uživatele a hesla 'hakase' a výsledek je následující.
Importovat projekt do úložiště
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 všechny adresáře š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
Nyní budete požádáni o následující věci.
- 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 šablon chceme úložiště naklonovat nebo zkopírovat do místního prostředí.
Vytvořte nového normálního uživatele a přihlaste se k uživateli.
useradd -m -s /bin/bash misaka
su - misaka
Naklonujte úložiště 'hakase-project' do místního adresáře s názvem 'myproject' jako uživatele 'hakase'.
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
A níže se vás na tyto věci znovu zeptá.
- 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.
A až to bude hotové, zkontrolujte nový adresář 'myproject' a získáte všechny svn šablony.
tree ~/myproject
Potvrdit kód nebo dokumenty
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 uvidíte, že všechny soubory byly přidány do úložiště.
Instalace a konfigurace Apache Subversion s HTTPS Letsencrypt na CentOS 7 byla úspěšně dokončena.