howtos:subversion
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| howtos:subversion [2013/08/30 21:33] – angelegt martin | howtos:subversion [2013/11/12 20:12] (current) – martin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ======= Howto: Subversion aufsetzen ======= | ======= Howto: Subversion aufsetzen ======= | ||
| - | ====== Wie wurde SVN konkret | + | ====== Wie wurde SVN konkret konfiguriert? |
| Die verwendete Konfiguration setzt auf der Verwendung des Apache im Zusammenwirken mit DAV auf. DAV steht für " | Die verwendete Konfiguration setzt auf der Verwendung des Apache im Zusammenwirken mit DAV auf. DAV steht für " | ||
| Die Verbindung erfolgt über SSL. | Die Verbindung erfolgt über SSL. | ||
| - | Jede Benutzerauthentifizierung läuft über das vorhandene LDAP, die Benutzerauthorisierung über zentrale Dateien, die von der Gruppe " | ||
| - | Das Setup wurde auf einem Debian 2.6.12 gemacht. | ||
| - | Das Basisverzeichnis lautet bei dieser Konfiguration /svn, die Repository-Struktur ist die folgende: | ||
| - | / | + | Die Benutzerauthentifikation läuft über ein MySQL-Backend, |
| - | /svn/shared/LV | + | Das Basisverzeichnis lautet bei dieser Konfiguration |
| - | + | ||
| - | / | + | |
| / | / | ||
| - | Jedes dieser Verzeichnisse bildet eine Art " | + | Jedes dieser Verzeichnisse bildet eine Art " |
| - | Wichtig | + | Wichtig |
| - | + | ||
| - | / | + | |
| - | + | ||
| - | /svn/auth | + | |
| - | + | ||
| - | Bisher ist für alle WiMis nur das Verzeichnis / | + | |
| - | **Achtung: Für Apache2.2 sind zum Teil andere Einstellungen nötig!** | + | |
| ====== Installation benötigter Pakete ====== | ====== Installation benötigter Pakete ====== | ||
| - | <code bash> | ||
| - | apt-get install apache2 apache2-common openssl subversion subversion-tools libapache2-svn | ||
| - | </ | ||
| - | |||
| - | Für Apache2.2: | ||
| - | |||
| <code bash> | <code bash> | ||
| apt-get install apache2 apache2.2-common openssl subversion subversion-tools libapache2-svn | apt-get install apache2 apache2.2-common openssl subversion subversion-tools libapache2-svn | ||
| Line 39: | Line 21: | ||
| ====== Konfiguration ====== | ====== Konfiguration ====== | ||
| - | ===== Apache2.0 === | + | ==== Apache ==== |
| - | - SSL-Zertifikat anlegen (siehe [[howto: | + | |
| - | - / | + | |
| - | * Einfügen einer Location-Direktive (hier am Beispiel des " | + | |
| - | + | ||
| - | 1 < | + | |
| - | 2 DAV svn | + | |
| - | 3 SVNParentPath / | + | |
| - | 4 SSLRequireSSL | + | |
| - | 5 AuthType Basic | + | |
| - | 6 AuthName " | + | |
| - | 7 # | + | |
| - | 8 AuthLDAPURL ldaps:// | + | |
| - | 9 AuthzSVNAccessFile / | + | |
| - | 10 Require valid-user | + | |
| - | | + | |
| - | + | ||
| - | ====Erläuterungen zur Location-Directive==== | + | |
| - | Zeile 1: Hier ist der absolute Pfad zum Repository-Behälter anzugeben, **mit abschließendem Slash!** Wenn in einem Browser also auf %%" | + | |
| - | + | ||
| - | Zeile 2: Einbindung des DAV-Moduls für den Apache2, welches für svn (Subversion) angewendet wird | + | |
| - | + | ||
| - | Zeile 3: Ressource innerhalb des *nix-Dateisystems, | + | |
| - | + | ||
| - | Zeile 4: Erzwingt die Verwendung einer gesicherten SSL-Verbindung | + | |
| - | + | ||
| - | Zeile 5: Legt den Apache-Authorisierungsmechanismus fest | + | |
| - | + | ||
| - | Zeile 6: Steht im Abfragefenster für das Passwort als erklärender Hinweis, für welche Ressource jetzt ein Passwort verlangt wird. | + | |
| - | + | ||
| - | Zeile 7: Muss kommentiert bleiben. Für den Fall, dass der LDAP-Server komplett ausfällt, kann dennoch eine Arbeit mit dem SVN-System statt finden, in dem das Kommentarzeichen in Zeile 7 entfernt wird und die Zeile 8 auskommentiert wird. Als nächstes müsste dann in der Datei / | + | |
| - | **Wichtig!** Wenn die Datei / | + | |
| - | + | ||
| - | Zeile 8: Alle Authentifizierungsanfragen werden an den hier aufgeführten LDAP-Server weitergeleitet. | + | |
| - | + | ||
| - | Zeile 9: Legt die Authorisierungsdatei für den entsprechenden Repository-Behälter fest. Auch hier ist ebenfalls der absolute Pfad innerhalb des Dateisystems anzugeben, allerdings ohne abschließenden Slash. | + | |
| - | + | ||
| - | Zeile 10: Verlangt eine positive Authentifizierung eines gültigen Benutzers. | + | |
| - | + | ||
| - | Zeile 11: Schließt die Location-Direktive ab. | + | |
| - | + | ||
| - | ====Apache2.2==== | + | |
| * Die Location-Direktiven werden nicht in der apache2.conf gemacht, sondern in einem eigenen Virtual-Host-Container, | * Die Location-Direktiven werden nicht in der apache2.conf gemacht, sondern in einem eigenen Virtual-Host-Container, | ||
| < | < | ||
| < | < | ||
| - | < | + | DAV svn |
| - | DAV svn | + | SVNParentPath / |
| - | | + | |
| - | SSLRequireSSL | + | |
| - | | + | |
| - | | + | |
| - | # AuthUserFile | + | |
| - | AuthLDAPURL ldap:// | + | |
| - | AuthzLDAPAuthoritative On | + | |
| - | | + | |
| - | AuthBasicProvider ldap | + | |
| - | | + | |
| - | Require valid-user | + | |
| - | </ | + | Auth_MySQL_Password ************ |
| - | </ | + | |
| - | </ | + | |
| - | Neu sind die Einträge " | + | |
| - | Da LDAP über TLS verschlüsselt kommuniziert, | + | |
| - | < | + | |
| - | LDAPTrustedGlobalCert CERT_BASE64 / | + | Auth_MySQL_Encryption_Types PHP_MD5 |
| - | LDAPTrustedMode STARTTLS | + | Auth_MySQL_Authoritative |
| - | LDAPVerifyServerCert | + | require valid-user |
| + | </ | ||
| </ | </ | ||
| - | Das angegebene CA-Cert muss sich natürlich an entsprechender Stelle befinden. | ||
| Außerdem müssen einige Module installiert, | Außerdem müssen einige Module installiert, | ||
| - | <code bash> | + | <code bash> |
| - | <code bash> | + | <code bash> |
| ==== Anlegen des SVN-Systems ==== | ==== Anlegen des SVN-Systems ==== | ||
| - | Je nachdem, wie man in der apache2.conf (s.o.) die Struktur für die Repository-Behältnisse vorgesehen hat, müssen entsprechend auch alle Ordner angelegt werden. Im Beispiel oben wird das Verzeichnis "/ | + | Je nachdem, wie man in der apache2.conf (s.o.) die Struktur für die Repository-Behältnisse vorgesehen hat, müssen entsprechend auch alle Ordner angelegt werden. Im Beispiel oben wird das Verzeichnis "/ |
| <code bash> | <code bash> | ||
| - | mkdir /svn | + | mkdir -p /svn/auth |
| - | mkdir / | + | |
| - | mkdir / | + | |
| - | mkdir / | + | |
| - | mkdir / | + | |
| - | mkdir /svn/auth | + | |
| - | mkdir / | + | |
| </ | </ | ||
| - | Alle Verzeichnisse | + | Alle Verzeichnisse müssen www-data gehören (Benutzername des Apache2). |
| Entsprechend: | Entsprechend: | ||
| <code bash> | <code bash> | ||
| - | chown -R www-data: | + | chown -R www-data /svn |
| chmod -R 750 /svn | chmod -R 750 /svn | ||
| </ | </ | ||
| Line 136: | Line 71: | ||
| <code bash> | <code bash> | ||
| touch / | touch / | ||
| - | touch / | ||
| - | touch / | ||
| - | touch / | ||
| </ | </ | ||
| ...und die Rechte angepasst werden: | ...und die Rechte angepasst werden: | ||
| <code bash> | <code bash> | ||
| - | chown www-data: | + | chown www-data /svn/auth/* |
| chmod 660 /svn/auth/* | chmod 660 /svn/auth/* | ||
| </ | </ | ||
| - | |||
| - | |||
| ====Anlegen neuer Repositories==== | ====Anlegen neuer Repositories==== | ||
| Line 185: | Line 115: | ||
| trunk/ | trunk/ | ||
| - | |||
| - | Anmerkung: Mit dem Eclipse-Plugin [[http:// | ||
| Jetzt hat Person1 die Kernanwendung seines Java-FTP-Clients beendet und möchte seine Arbeit nun veröffentlichen. Also erstellt er einen " | Jetzt hat Person1 die Kernanwendung seines Java-FTP-Clients beendet und möchte seine Arbeit nun veröffentlichen. Also erstellt er einen " | ||
| Line 210: | Line 138: | ||
| Die komplette Location-Direktive - hier am Beispiel " | Die komplette Location-Direktive - hier am Beispiel " | ||
| < | < | ||
| - | < | + | < |
| - | DAV svn | + | DAV svn |
| - | | + | SVNParentPath /svn/private/ |
| - | | + | AuthzSVNAccessFile |
| - | AuthType Basic | + | |
| - | AuthName " | + | |
| - | #AuthUserFile /svn/auth/userlist_shared_staff | + | |
| - | AuthLDAPURL ldaps:// | + | |
| - | AuthzSVNAccessFile / | + | AuthUserFile /dev/null |
| - | | + | |
| - | Require | + | |
| + | AuthType Basic | ||
| + | Auth_MySQL_Host localhost | ||
| + | Auth_MySQL_User svnauthdbuser | ||
| + | Auth_MySQL_Password 6udCuuiLmRe8 | ||
| + | AuthMySQL_DB authdb | ||
| + | AuthMySQL_Password_Table mysql_auth | ||
| + | Auth_MySQL_Username_Field username | ||
| + | Auth_MySQL_Password_Field passwd | ||
| + | Auth_MySQL_Empty_Passwords Off | ||
| + | Auth_MySQL_Encryption_Types PHP_MD5 | ||
| + | Auth_MySQL_Authoritative On | ||
| + | Satisfy Any | ||
| + | | ||
| </ | </ | ||
| </ | </ | ||
| Line 258: | Line 199: | ||
| ====Offizielles Handbuch==== | ====Offizielles Handbuch==== | ||
| {{howto: | {{howto: | ||
| - | |||
| - | ====Interne Verweise==== | ||
| - | [[codeschnipsel: | ||
| - | |||
| - | [[howto: | ||
howtos/subversion.1377891200.txt.gz · Last modified: 2013/08/30 21:33 by martin · Currently locked by: 172.21.0.5,216.73.216.147
