2 Server aufsetzen und konfigurieren
Hinweis:
Dieses Tutorial habe ich unter einer VMWare mit Windows XP Professional und Windows 7 getestet.
2.1 Links
XAMPP Download: http://www.apachefriends.org/de/xampp-windows.html#628
Alternatives, bei Entwicklern sehr beliebtes Paket, bringt u.a. Apache, PHP, MySQL mit.
Subversion Download: http://sourceforge.net/projects/win32svn/
Apache Download: http://www.apache.org/dist/httpd/binaries/win32/
Visual SVN Server Download: http://www.visualsvn.com/server/
Auf Visual SVN Server werde ich nicht näher eingehen, damit kann man aber schnell einen lauffähigen SVN-Server unter Windows aufsetzen.
Für dieses Tutorial wird entweder das Apache-Paket oder XAMPP benötigt.
2.2 Apache
Beschreibung:
In diesem Kapitel installieren wir den Apache, erstellen ein SSL-Zertifikat und konfigurieren Apache für den Zugriff über https.
Fehleranalyse:
wenn der Apache nicht mehr startet oder Fehler auftreten ist ein Blick ins Error-Log des Apache sinnvoll. Zu finden unter: C:\pfad\zum\apache\logs\error.log
Hinweis für Benutzer die Skype installiert haben:
Skype belegt standardmäßig den Port 80, dadurch gibt es Probleme mit dem Apache weil Port 80 schon belegt ist. Deshalb vor der Installation vom Apache in Skype auf Aktionen -> Optionen -> Erweitert -> Verbindung -> bei „Ports 80 und 443 als Alternative…“ das Häkchen entfernen. Skype neu starten und der Port 80 sollte frei sein.
Apache installieren:
Paket httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi (aktuelle Version bei Erstellung des Tutorials) von o.g. Link herunterladen und installieren.
Alternativ kann man auch auf das beliebte Paket XAMPP von den Apachefriends benutzen
(http://www.apachefriends.org/de/xampp-windows.html#628). Es ist jedoch unbedingt der Punkt Sicherheit http://www.apachefriends.org/de/xampp-windows.html#1217 zu beachten, vor allem wenn das ganze produktiv eingesetzt werden soll! Die Version zum nativen Apache ist nur geringfügig anders (XAMPP: Apache 2.2.14, OpenSSL 0.9.8l; nativ: Apache 2.2.15, OpenSSL 0.9.8m-r2).
Apache starten:
C:\pfad\zum\apache\Apache-2.2\bin\httpd.exe aufrufen (DOS-Box nicht schließen, sonst wird Apache wieder beendet).
Test ob Apache läuft:
im Browser localhost eintippen, dann sollte eine Seite mit „It works!“ angezeigt. Falls nicht: Punkt Fehleranalyse beachten.
Überprüfen ob Apache einen Path-Eintrag hat:
(Rechtsklick Arbeitsplatz -> Eigenschaften -> Erweitert -> Umgebungsvariablen). Bei Systemvariablen schauen ob die Variable Path einen Eintrag für Apache hat, wenn nicht hinter den letzten Eintrag ein Semikolon setzen und den Pfad eintragen: C:\Pfad\zum\apache\bin hinzufügen.
SSL
Warum überhaupt SSL-Verschlüsselung:
Bei SSL geht es um Sicherheit, der Datenverkehr wird verschlüsselt. An dieser Stelle zitiere ich einfach die Wikipedia:
http://de.wikipedia.org/wiki/Hyperte...rotocol_Secure
„Das HTTPS-Protokoll wird zur Verschlüsselung und zur Authentifizierung der Kommunikation zwischen Webserver und Browser im World Wide Web verwendet. Ohne Verschlüsselung sind Web-Daten für jeden, der Zugang zum entsprechenden Netz hat, als Klartext lesbar. Mit der zunehmenden Verbreitung von Funkverbindungen, die etwa an WLAN-Hotspots häufig unverschlüsselt ablaufen, nimmt die Bedeutung von HTTPS zu, da hiermit die Inhalte unabhängig vom Netz verschlüsselt werden. Es stellt dabei das einzige Verschlüsselungsverfahren dar, das ohne gesonderte Softwareinstallation auf allen Internet-fähigen Computern unterstützt wird. Die Authentifizierung dient dazu, dass sich jede Seite der Identität des Verbindungspartners vergewissern kann – ein Problem, das durch Phishing-Angriffe zunehmend Bedeutung bekommt.“
Zum einfachen Test in eurem lokalen Netzwerk ist die SSL-Verschlüsselung nicht nötig, im produktiven Einsatz, vor allem mit Zugriff über das Internet, ist die Verschlüsselung dringend zu empfehlen.
SSL-Zertifikat erstellen:
Die verfügbaren Kommandos kann man sich auf der Kommandozeile auflisten lassen indem man einen „falschen“ Befehl eintippt, z.B.:
Dann kommt dieser Fehler „openssl:Error: '-help' is an invalid command“ und eine Befehlsliste. Eine andere Möglichkeit kenne ich leider nicht.
Die Onlinedoku ist hier zu finden: http://www.openssl.org/docs/apps/openssl.html
Auf der Kommandozeile ins Apache\conf-Verzeichnis navigieren: C:\pfad\zum\apache\conf und folgenden Befehl eintippen.
Hinweis für XAMPP: zuvor noch die Zielwahl-Datei „openssl“ aus dem Verzeichnis C:\pfad\zum\apache\bin nach C:\pfad\zum\apache\conf kopieren.
Code:
openssl req -config openssl.cnf -new -out localhost.csr
Die Abfragen beantworten.
Danach folgenden Befehl eintippen:
Code:
openssl rsa -in privkey.pem -out localhost.key
Wieder Abfrage eintippen (Pass Phrase muss mit der Pass Phrase einen Schritt davor
übereinstimmen).
Jetzt folgenden Befehl eintippen:
Code:
openssl x509 -in localhost.csr -out localhost.cert -req -signkey localhost.key -days 500
httpd.conf anpassen:
Bevor man Änderungen vornimmt empfehle ich eine Sicherungskopie der httpd.conf zu erstellen. httpd.conf (C:\pfad\zum\apache\conf\httpd.conf) in einem Editor öffnen. Eintrag
suchen und eine Zeile darunter hinzufügen:
Diese Zeile suchen (Bei XAMPP nicht nötig):
#LoadModule ssl_module modules/mod_ssl.so
und den Kommentar (#) am Anfang der Zeile entfernen.
Folgenden Block von:
Code:
<IfModule ssl_module>
bis:
auskommentieren (# an den Anfang der Zeile).
Darunter folgenden Block hinzufügen:
Code:
SSLMutex default
SSLRandomSeed startup builtin
SSLSessionCache none
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile "C:/pfad/zum/apache/conf/localhost.cert"
SSLCertificateKeyFile "C:/pfad/zum/apache/conf/localhost.key"
DocumentRoot "C:/pfad/zum/apache/htdocs"
</VirtualHost>
Hinweis XAMPP: Zeile
Code:
Include "conf/extra/httpd-ssl.conf"
auskommentieren.
allgemeiner Hinweis:
Bei SSLCertificateFile SSLCertificateKeyFile und DocumentRoot die Pfade anpassen. Darauf achten dass man Slashs und keine Backslashs verwendet. Die Anführungszeichen bei den Pfadangaben sind wichtig wenn der Pfad Leerzeichen enthält, können ansonsten weggelassen werden.
Im Verzeichnis DocumentRoot liegen eure Webseiten.
Datei speichern und Apache neu starten.
Apache neu starten und Aufruf testen:
In der geöffneten DOS-Box aus "Apache starten" mit Strg + C den Apache beenden (oder einfach die DOS-Box schließen) und den Apache wieder starten.
Aufruf ohne SSL: http://localhost/
Bzw.: http://localhost:8080/
Aufruf mit SSL: https://localhost/
Hier muss man beim ersten Aufruf das Zertifikat installieren, am besten permanent.
2.3 Subversion
Beschreibung:
In diesem Kapitel installieren wir Subversion, erstellen ein Subversion-Repository und für den Zugriff User- / Passwort-Dateien und konfigurieren Apache für SVN.
Subversion installieren:
Paket Setup-Subversion-1.5.1.en-us.msi (aktuelle Version bei Erstellung des Tutorial) von o.g. Link herunterladen und installieren. Darauf achten dass die Version zum installierten Apache passt (steht unter „Description“). Binding Apache 2.2 auswählen. Danach überprüfen ob es einen Path-Eintrag für Subversion gibt (Rechtsklick Arbeitsplatz -> Eigenschaften -> Erweitert -> Umgebungsvariablen). Bei Systemvariablen schauen ob die Variable Path einen Eintrag für Subversion hat, wenn nicht hinter den letzten Eintrag ein Semikolon setzen und den Pfad eintragen: C:\Pfad\zu\subversion\bin hinzufügen.
Ordner für Repositories und User / Passwort-Datei anlegen:
Unter C:\pfad\zur\lokalen\arbeitskopie die beiden Ordner svn (Ordner für die Repositories) und svn_conf (Ordner für User / Passwort-Datei) anlegen.
User / Passwort-Datei erzeugen:
Auf der Kommandozeile in das Verzeichnis C:\pfad\zum\apache\bin navigieren und folgenden Befehl eintippen (max ist der Benutzername, pass.pwd der Dateiname der angelegt wird):
Code:
htpasswd -c C:\pfad\svn_conf\pass.pwd max
Danach zweimal das Passwort eintippen. Um Benutzer hinzuzufügen einfach den Befehl wieder aufrufen und den Parameter –c weglassen. Ruft man den Befehl wieder mit -c auf sind die vorhandenen Benutzer weg (Datei wird neu angelegt).
Repository anlegen:
Mit der Konsole in das Verzeichnis C:\pfad\svn navigieren und folgenden Befehl eintippen (testrepo ist der Repositoryname). Die Konsole darf erst nach der Installation von Subversion, bzw. dem manuellen Path-Eintrag geöffnet worden sein, sonst zieht der Path-Eintrag nicht:
Code:
svnadmin create testrepo
SVN in Apache aktivieren:
Mit dem Explorer ins Subversionverzeichnis navigieren, dort aus dem bin-Verzeichnis die beiden Dateien:
mod_dav_svn.so
mod_authz_svn.so
kopieren und im Apache-Modulverzeichnis (C:\pfad\zu\apache\modules) einfügen.
Mit dem Explorer ins Subversionverzeichnis navigieren, dort aus dem bin-Verzeichnis die beiden Dateien:
libdb44.dll
intl3_svn.dll
kopieren und im Apache-Verzeichnis bin (C:\pfad\zu\apache\bin) einfügen.
httpd.conf editieren:
Erst wieder eine Sicherungskopie anlegen.
Datei C:\pfad\zum\apache\conf\http.conf in einem Editor öffnen und den Kommentar (#) in den folgenden Zeilen entfernen (Bei XAMPP nicht nötig):
Code:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
Folgende zwei Zeilen an das Ende des LoadModule-Abschnittes hinzufügen:
Code:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Und an das Ende der Datei folgendes einfügen:
Code:
# Subversion Repo konfigurieren
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath "C:\pfad\svn"
SSLRequireSSL
AuthType Basic
AuthName "SVN Tutorial"
AuthUserFile "C:\pfad\svn_conf\pass.pwd"
Require valid-user
</Location>
Hinweis:
SVNParentPath zeigt auf den Ordner der weiter oben im Abschnitt Ordner für Repositories und User / Passwort-Datei anlegen erstellt wurde.
AuthUserFile zeigt auf die pass.pwd-Datei die weiter oben im Abschnitt User / Passwort-Datei anlegen erzeugt wurde.
Die Anführungszeichen bei den Pfadangaben sind wichtig wenn der Pfad Leerzeichen enthält, können ansonsten weggelassen werden.
SSLRequireSSL erzwingt eine https-Verbindung und in SVNParentPath liegen die Repositories.
Datei speichern und Apache neustarten.
Repository im Browser aufrufen:
Aufruf ohne SSL: http://localhost/svn/testrepo/ (hier kommt mit SSLRequireSSL eine Fehlermeldung)
Aufruf mit SSL: https://localhost/svn/testrepo/
Im nächsten Teil behandeln wir die grundlegenden Operationen in Subversion.