[svnbook] r4955 committed - Translation: ch06-server-configuration.xml part 1 up to and including...
svnbook at googlecode.com
svnbook at googlecode.com
Thu Dec 4 09:15:15 CST 2014
Revision: 4955
Author: jmfelderhoff at gmx.eu
Date: Thu Dec 4 15:15:11 2014 UTC
Log: Translation: ch06-server-configuration.xml part 1 up to and
including
svn.serverconfig.httpd.perf.keepalive.
https://code.google.com/p/svnbook/source/detail?r=4955
Modified:
/branches/1.8/de/book/ch06-server-configuration.xml
=======================================
--- /branches/1.8/de/book/ch06-server-configuration.xml Tue Nov 25 15:14:00
2014 UTC
+++ /branches/1.8/de/book/ch06-server-configuration.xml Thu Dec 4 15:15:11
2014 UTC
@@ -1,3 +1,5 @@
+<!-- -*- sgml -*- -->
+
<chapter id="svn.serverconfig">
<!--
<title>Server Configuration</title>
@@ -50,15 +52,26 @@
<title>Überblick</title>
<!--
- <para>Subversion was designed with an abstract repository access layer.
- This means that a repository can be programmatically accessed by
- any sort of server process, and the client <quote>repository
- access</quote> API allows programmers to write plug-ins that
- speak relevant network protocols. In theory, Subversion can use
- an infinite number of network implementations. In practice,
- there are only two Subversion servers in widespread use today.</para>
+ <para>
+ <indexterm>
+ <primary>API</primary>
+ <secondary>layers</secondary>
+ <tertiary>Repository Access (RA) Layer</tertiary>
+ </indexterm>Subversion was designed with an abstract repository
+ access layer. This means that a repository can be
+ programmatically accessed by any sort of server process, and the
+ client <quote>repository access</quote> API allows programmers
+ to write plug-ins that speak relevant network protocols. In
+ theory, Subversion can use an infinite number of network
+ implementations. In practice, there are only two Subversion
+ servers in widespread use today.</para>
-->
- <para>Subversion wurde mit einer abstrakten
+ <para>
+ <indexterm>
+ <primary>API</primary>
+ <secondary>Schichten</secondary>
+ <tertiary>Projektarchiv-Zugriffs-Schicht (RA)</tertiary>
+ </indexterm>Subversion wurde mit einer abstrakten
Projektarchiv-Zugriffs-Schicht entworfen. Dies bedeutet, dass
auf ein Projektarchiv automatisiert von beliebigen
Server-Prozessen zugegriffen werden kann, und die für Clients
@@ -70,9 +83,17 @@
allerdings nur zwei weitverbreitete Server.</para>
<!--
- <para>Apache is an extremely popular web server; using the
- <command>mod_dav_svn</command> module, Apache can access a
- repository and make it available to clients via the
+ <para>
+ <indexterm>
+ <primary>httpd</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Apache HTTP Server</primary>
+ <see>httpd</see>
+ </indexterm>Apache HTTP Server (also known
+ as <command>httpd</command>) is an extremely popular web server;
+ using the <command>mod_dav_svn</command> module, Apache can
+ access a repository and make it available to clients via the
WebDAV/DeltaV protocol, which is an extension of HTTP. Because
Apache is an extremely extensible server, it provides a number
of features <quote>for free,</quote> such as encrypted SSL
@@ -80,32 +101,46 @@
authentication systems, and limited built-in web browsing of
repositories.</para>
-->
- <para>Apache ist ein sehr beliebter Webserver, welcher mittels des
- <command>mod_dav_svn</command>-Moduls auf Projektarchive
- zugreifen und diese für Clients verfügbar machen kann. Verwendet
- wird dabei das WebDAV/DeltaV-Protokoll, welches eine Erweiterung
- von HTTP ist. Da Apache ein stark erweiterbarer Webserver ist,
- bietet er eine Menge an <quote>frei verfügbaren</quote>
- Funktionen/Modulen, wie mittels SSL verschlüsselte Verbindungen,
- Protokollierung, sowie die Integration diverser
- Authentifikationssysteme von Drittanbietern und einen
- eingeschränkten Web-Browser-gestützten
+ <para>
+ <indexterm>
+ <primary>httpd</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Apache HTTP Server</primary>
+ <see>httpd</see>
+ </indexterm>Apache HTTP Server (auch bekannt als
+ <command>httpd</command>) ist ein sehr beliebter Webserver,
+ welcher mittels des <command>mod_dav_svn</command>-Moduls auf
+ Projektarchive zugreifen und diese für Clients verfügbar machen
+ kann. Verwendet wird dabei das WebDAV/DeltaV-Protokoll, welches
+ eine Erweiterung von HTTP ist. Da Apache ein stark
+ erweiterbarer Webserver ist, bietet er eine Menge an <quote>frei
+ verfügbaren</quote> Funktionen/Modulen, wie mittels SSL
+ verschlüsselte Verbindungen, Protokollierung, sowie die
+ Integration diverser Authentifikationssysteme von Drittanbietern
+ und einen eingeschränkten Web-Browser-gestützten
Projektarchiv-Lesezugriff.</para>
<!--
- <para>In the other corner is <command>svnserve</command>: a small,
- lightweight server program that speaks a custom protocol with
- clients. Because its protocol is explicitly designed for
- Subversion and is stateful (unlike HTTP), it provides
- significantly faster network operations—but at the cost of
- some features as well. While it can use SASL to provide a
- variety of authentication and encryption options, it has no
- logging or built-in web browsing. It is, however, extremely
- easy to set up and is often the best option for small teams just
- starting out with Subversion.</para>
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ </indexterm>In the other corner is <command>svnserve</command>:
+ a small, lightweight server program that speaks a custom
+ protocol with clients. Because its protocol is explicitly
+ designed for Subversion and is stateful (unlike HTTP), it
+ provides significantly faster network operations—but at
+ the cost of some features as well. While it can use SASL to
+ provide a variety of authentication and encryption options, it
+ has no logging or built-in web browsing. It is, however,
+ extremely easy to set up and is often the best option for small
+ teams just starting out with Subversion.</para>
-->
- <para>In der anderen Ecke befindet sich
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ </indexterm>In der anderen Ecke befindet sich
<command>svnserve</command>: ein kleiner, leichtgewichtiger
Server, der ein einfaches Netzwerkprotokoll für die Zugriffe der
Clients verwendet. Da dieses Protokoll für die Verwendung mit
@@ -166,7 +201,7 @@
<table id="svn.serverconfig.overview.tbl-1">
<!--
- <title>Comparison of subversion server options</title>
+ <title>Comparison of Subversion server options</title>
-->
<title>Vergleich der Serveroptionen für Subversion</title>
<tgroup cols="4">
@@ -406,6 +441,7 @@
</tbody>
</tgroup>
</table>
+
</sect1>
@@ -446,6 +482,7 @@
vielleicht <emphasis>gegen</emphasis> eine der Möglichkeiten
sprechen.</para>
+ <!-- ===============================================================
-->
<sect2 id="svn.serverconfig.choosing.svnserve">
<!--
@@ -630,6 +667,7 @@
</sect2>
+ <!-- ===============================================================
-->
<sect2 id="svn.serverconfig.choosing.apache">
<!--
@@ -932,7 +970,10 @@
<!--
<title>svnserve, a Custom Server</title>
- <para>The <command>svnserve</command> program is a lightweight
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ </indexterm>The <command>svnserve</command> program is a lightweight
server, capable of speaking to clients over TCP/IP using a
custom, stateful protocol. Clients contact an
<command>svnserve</command> server by using URLs that begin with
@@ -945,7 +986,10 @@
<title>svnserve, ein maßgefertigter Server</title>
- <para>Das Programm <command>svnserve</command> ist ein
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ </indexterm>Das Programm <command>svnserve</command> ist ein
leichtgewichtiger Server, welcher für die Kommunikation mit den
Clients ein auf TCP/IP basierendes, zustandsorientiertes
Protokoll verwendet. Um sich mit dem Server zu verbinden,
@@ -965,11 +1009,19 @@
<title>Der Serverstart</title>
<!--
- <para>There are a few different ways to run the
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ </indexterm>There are a few different ways to run the
<command>svnserve</command> program:</para>
-->
- <para>Es gibt mehrere Möglichkeiten, <command>svnserve</command>
- zu starten:</para>
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ </indexterm>Es gibt mehrere Möglichkeiten,
+ <command>svnserve</command> zu starten:</para>
<itemizedlist>
<listitem>
@@ -1033,13 +1085,24 @@
<title>svnserve als Unix-Dienst</title>
<!--
- <para>The easiest option is to run <command>svnserve</command>
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>daemon mode</tertiary>
+ </indexterm>The easiest option is to run
<command>svnserve</command>
as a standalone <quote>daemon</quote> process. Use the
<option>-d</option> option for this:</para>
-->
- <para>Die einfachste Variante ist, <command>svnserve</command>
- als eigenständigen (Unix-)Dienst laufen zu lassen. Verwenden
- Sie hierfür die <option>-d</option> Option beim Aufruf:
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>Daemon-Modus</tertiary>
+ </indexterm>Die einfachste Variante ist,
+ <command>svnserve</command> als eigenständigen (Unix-)Dienst
+ laufen zu lassen. Verwenden Sie hierfür die
+ <option>-d</option> Option beim Aufruf:
</para>
<!--
@@ -1136,7 +1199,15 @@
<title>svnserve über inetd starten</title>
<!--
- <para>If you want <command>inetd</command> to launch the
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>via inetd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>inetd</primary>
+ </indexterm>If you want <command>inetd</command> to launch the
process, you need to pass the <option>-i</option>
(<option>- -inetd</option>) option. In the following
example, we've shown the output from running
@@ -1146,17 +1217,25 @@
<command>inetd</command> to start
<command>svnserve</command>.</para>
-->
- <para>Wenn Sie <command>inetd</command> zum Starten des
- Prozesses verwenden wollen, so übergeben Sie
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>über inetd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>inetd</primary>
+ </indexterm>Wenn Sie <command>inetd</command> zum Starten
+ des Prozesses verwenden wollen, so übergeben Sie
<command>svnserve</command> beim Aufruf die Option
<option>-i</option> (<option>--inetd</option>). Im folgenden
Beispiel sehen wir die Ausgaben beim Aufruf von
- <literal>svnserve -i</literal>
- auf der Kommandozeile. Beachten Sie aber, dass dies nicht
- der Weg ist, wie der Dienst normalerweise gestartet wird
- – eine genaue Beschreibung, wie
- <command>svnserve</command> über <command>inetd</command>
- gestartet wird, folgt anschließend.</para>
+ <literal>svnserve -i</literal> auf der Kommandozeile.
+ Beachten Sie aber, dass dies nicht der Weg ist, wie der
+ Dienst normalerweise gestartet wird – eine genaue
+ Beschreibung, wie <command>svnserve</command> über
+ <command>inetd</command> gestartet wird, folgt
+ anschließend.</para>
<informalexample>
<screen>
@@ -1232,6 +1311,96 @@
hinzufügen, um einzuschränken, welche Projektarchive
exportiert werden dürfen.</para>
+ </sect3>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <sect3 id="svn.serverconfig.svnserve.invoking.xinetd">
+<!--
+ <title>svnserve via xinetd</title>
+-->
+ <title>svnserve über xinetd</title>
+
+<!--
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>via xinetd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>xinetd</primary>
+ </indexterm>Some operating systems provide the
<command>xinetd</command>
+ daemon as an alternative to <command>inetd</command>.
+ Fortunately, you can configure <command>svnserve</command> for
+ use with <command>xinetd</command>, too. To do so, you'll need
to
+ create a configuration file
<filename>/etc/xinetd.d/svn</filename>
+ with the following contents:</para>
+-->
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>über xinetd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>xinetd</primary>
+ </indexterm>Einige Betriebssysteme stellen den Daemon
+ <command>xinetd</command> als Alternative zu
+ <command>inetd</command> zur Verfügung. Glücklicherweise
+ können Sie <command>svnserve</command> auch für die
+ Verwendung mit <command>xinetd</command> konfigurieren. Dazu
+ müssen Sie eine Konfigurationsdatei
+ <filename>/etc/xinetd.d/svn</filename> mit dem folgenden
+ Inhalt anlegen:</para>
+
+ <informalexample>
+ <programlisting>
+# default: on<!--
+# description: Subversion server for the svn protocol
+-->
+# description: Subversion server for the svn protocol
+service svn
+{
+ disabled = no
+ port = 3690
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = subversion
+ server = /usr/local/bin/svnserve
+ server_args = -i -r <replaceable>/path/to/repositories</replaceable>
+}
+</programlisting>
+ </informalexample>
+
+<!--
+ <para>Be sure that your <filename>/etc/services</filename>
+ configuration file contains the definition of the port used
+ for the <literal>svn</literal> protocol (as described in
+ <xref linkend="svn.serverconfig.svnserve.invoking.xinetd"
+ />), otherwise the daemon will not start correctly.</para>
+-->
+ <para>Stellen Sie sicher, dass Ihre Konfigurationsdatei
+ <filename>/etc/services</filename> die Definition für den
+ Port beinhaltet, der für das Protokoll
+ <literal>svn</literal> verwendet wird (wie in
+ <xref linkend="svn.serverconfig.svnserve.invoking.xinetd"
+ /> beschrieben), da der Daemon ansonsten nicht korrekt
+ startet.</para>
+
+<!--
+ <para>In Redhat-based distributions, you then need to activate
+ the new service using <command>chkconfig - -add
+ svn</command>. After doing so, you will be able to enable
+ and disable the server using the graphical configuration
+ tools.</para>
+-->
+ <para>In Redhat-basierten Distributionen müssen Sie den neuen
+ Dienst mit <command>chkconfig --add svn</command>
+ aktivieren. Anschließend können Sie den Server unter
+ Verwendung der graphischen Konfigurations-Werkzeuge ein- und
+ ausschalten.</para>
+
</sect3>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
@@ -1242,7 +1411,12 @@
<title>svnserve über einen Tunnel</title>
<!--
- <para>Another way to invoke <command>svnserve</command> is in
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>tunnel mode</tertiary>
+ </indexterm>Another way to invoke <command>svnserve</command> is
in
tunnel mode, using the <option>-t</option> option. This
mode assumes that a remote-service program such as
<command>rsh</command> or <command>ssh</command> has
@@ -1263,7 +1437,12 @@
It's essentially the same as a local user accessing the
repository via <literal>file://</literal> URLs.</para>
-->
- <para>Eine weitere Möglichkeit ist,
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>Tunnel-Modus</tertiary>
+ </indexterm>Eine weitere Möglichkeit ist,
<command>svnserve</command> mittels der
<option>-t</option>-Option im Tunnel-Modus aufzurufen. Bei
diesem Aufruf wird vorausgesetzt, dass ein anderes Programm
@@ -1308,7 +1487,12 @@
<title>svnserve als ein Dienst unter Windows</title>
<!--
- <para>If your Windows system is a descendant of Windows NT
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>as Windows service</tertiary>
+ </indexterm>If your Windows system is a descendant of Windows NT
(Windows 2000 or newer), you can
run <command>svnserve</command> as a standard Windows
service. This is typically a much nicer experience than
@@ -1321,9 +1505,14 @@
started and stopped using the same consistent administration
interface as other Windows services.</para>
-->
- <para>Gehört ihr Windows zur NT-Familie (Windows oder neuer),
- so können Sie <command>svnserve</command> auch als normalen
- Windows-Dienst laufen lassen. Dies ist wesentlich
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>als Windows-Dienst</tertiary>
+ </indexterm>Gehört ihr Windows zur NT-Familie (Windows oder
+ neuer), so können Sie <command>svnserve</command> auch als
+ normalen Windows-Dienst laufen lassen. Dies ist wesentlich
sinnvoller, als die Option <option>--daemon</option>
(<option>-d</option>) zu verwenden und ihn als
selbstständigen Dienst zu betreiben. Sie müssten dann immer
@@ -1485,14 +1674,30 @@
<title>svnserve als ein launchd-Job</title>
<!--
- <para>Mac OS X (10.4 and higher) uses <command>launchd</command>
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>running</secondary>
+ <tertiary>via launchd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>launchd</primary>
+ </indexterm>Mac OS X (10.4 and higher) uses
<command>launchd</command>
to manage processes (including daemons) both system-wide and
per-user. A <command>launchd</command> job is specified by
parameters in an XML property list file, and
the <command>launchctl</command> command is used to manage
the lifecycle of those jobs.</para>
-->
- <para>Mac OS X (10.4 und höher) verwendet
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>betreiben</secondary>
+ <tertiary>uber launchd</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>launchd</primary>
+ </indexterm>Mac OS X (10.4 und höher) verwendet
<command>launchd</command> zur Prozessverwaltung
(einschließlich Dämonen) sowohl systemweit als auch pro
Anwender. Ein <command>launchd</command>-Job wird durch
@@ -1699,10 +1904,26 @@
<title>Integrierte Authentifizierung und Autorisierung</title>
<!--
- <para>When a client connects to an <command>svnserve</command>
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>authentication</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>authorization</secondary>
+ </indexterm>When a client connects to an
<command>svnserve</command>
process, the following things happen:</para>
-->
- <para>Wenn sich ein Subversion-Client mit einem
+ <para>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>Authentifizierung</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>svnserve</primary>
+ <secondary>Autorisierung</secondary>
+ </indexterm>Wenn sich ein Subversion-Client mit einem
<command>svnserve</command>-Prozess verbindet, geschieht
folgendes:</para>
@@ -2153,9 +2374,9 @@
<!-- ===============================================================
-->
<sect2 id="svn.serverconfig.svnserve.sasl">
<!--
- <title>Using <command>svnserve</command> with SASL</title>
+ <title>Using svnserve with SASL</title>
-->
- <title><command>svnserve</command> mit SASL verwenden</title>
+ <title>svnserve mit SASL verwenden</title>
<!--
<para>For many teams, the built-in CRAM-MD5 authentication is
@@ -2708,9 +2929,13 @@
simply setting <literal>auth-access = read</literal>
or <literal>auth-access = none</literal>.<footnote><para>Note
that using any sort of <command>svnserve</command>-enforced
- access control at all is a bit pointless; the user already has
- direct access to the repository
- database.</para></footnote></para>
+ access control at all only makes sense if the users cannot
+ bypass it and access the repository directory directly using
+ other tools (such as <command>cd</command> and
+ <command>vi</command>); implementing
+ such restrictions is described in
+ <xref linkend="svn.serverconfig.svnserve.sshtricks.fixedcmd"
+ />.</para></footnote></para>
-->
<para>Bei der Verwendung eines Tunnels wird die Autorisierung
größtenteils durch die Betriebssystem-Berechtigungen auf die
@@ -2727,9 +2952,14 @@
read</literal> oder <literal>auth-access = none</literal>
setzen.<footnote><para>Beachten Sie, dass die Verwendung
irgendwelcher durch <command>svnserve</command>
- sichergestellten Zugriffskontrollen sinnlos ist, da der
- Anwender ohnehin direkten Zugriff auf die
- Projektarchiv-Datenbank hat.</para></footnote></para>
+ sichergestellten Zugriffskontrollen nur dann einen Sinn
+ ergibt, fall die Anwender sie nicht umgehen und unter
+ Verwendung anderer Werkzeuge (etwa <command>cd</command> und
+ <command>vi</command>) direkt auf das
+ Projektarchiv-Verzeichnis zugreifen können; die Einrichtung
+ derartiger Einschränkungen wird in
+ <xref linkend="svn.serverconfig.svnserve.sshtricks.fixedcmd"
+ /> beschrieben.</para></footnote></para>
<!--
<para>You'd think that the story of SSH tunneling would end
@@ -3170,7 +3400,7 @@
excellent documentation, publicly available on their web site at
<ulink url="http://httpd.apache.org"/>. For example, a general
reference for the configuration directives is located at
- <ulink url="http://httpd.apache.org/docs-2.0/mod/directives.html"
+ <ulink url="http://httpd.apache.org/docs/current/mod/directives.html"
/>.</para>
-->
<para>Viele der folgenden Erläuterungen beziehen sich auf
@@ -3181,7 +3411,7 @@
Web-Seite <ulink url="http://httpd.apache.org"/> frei verfügbar
ist. So befindet sich beispielsweise eine allgemeine Referenz
der Konfigurationsdirektiven unter
- <ulink url="http://httpd.apache.org/docs-2.0/mod/directives.html"
+ <ulink url="http://httpd.apache.org/docs/current/mod/directives.html"
/>.</para>
<!--
@@ -3767,6 +3997,7 @@
Konfiguration Ihres Servers mit SSL-Verschlüsselung, die
eine zusätzliche Sicherheitsschicht bietet.</para>
</tip>
+
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<sect3 id="svn.serverconfig.httpd.authn.basic">
<!--
@@ -3851,19 +4082,58 @@
</informalexample>
<!--
- <para>Next, add some more directives inside the
- <literal><Location></literal> block to tell Apache how
- to use the password file:</para>
+ <para>Next, ensure that Apache has access to the modules which
+ provide the Basic authentication and related
+ functionality: <literal>mod_auth_basic</literal>,
+ <literal>mod_authn_file</literal>, and
+ <literal>mod_authz_user</literal>. In many cases, these
+ modules are compiled into <command>httpd</command> itself,
+ but if not, you might need to explicitly load one or more of
+ them using the <literal>LoadModule</literal> directive:</para>
-->
+ <para>Stellen Sie als nächstes sicher, dass Apache Zugriff auf
+ die Module hat, die die einfache Authentifizierung und
+ damit zusammenhängende Funktionalität liefern:
+ <literal>mod_auth_basic</literal>,
+ <literal>mod_authn_file</literal> und
+ <literal>mod_authz_user</literal>. Vielfach sind diese
+ Module in <command>httpd</command> selbst hineinkompiliert
+ worden, aber falls nicht, könnte es sein, dass Sie explizit
+ eins oder mehrere von ihnen mit der Direktive
+ <literal>LoadModule</literal> laden müssen:</para>
+
+ <informalexample>
+ <programlisting>
+LoadModule auth_basic_module modules/mod_auth_basic.so
+LoadModule authn_file_module modules/mod_authn_file.so
+LoadModule authz_user_module moduels/mod_authz_user.so
+</programlisting>
+ </informalexample>
+
+<!--
+ <para>After ensuring the Apache has access to the required
+ functionality, you'll need to add some more directives
+ inside the <literal><Location></literal> block to tell
+ Apache what type of authentication you wish to use, and just
+ how to to so:</para>
+-->
+ <para>Nachdem sichergestellt ist, dass Apache Zugriff auf die
+ benötigte Funktionalität hat, müssen Sie noch ein paar
+ Direktiven innerhalb des Blocks
+ <literal><Location></literal> hinzufügen, um
+ Apache mitzuteilen, welche Art der Authentisierung Sie
+ verwenden möchten, und wie das gemacht werden soll:</para>
<informalexample>
<programlisting>
<Location /svn>
DAV svn
SVNParentPath /var/svn
+
# Authentication: Basic
AuthName "Subversion repository"
AuthType Basic
+ AuthBasicProvider file
AuthUserFile /etc/svn-auth.htpasswd
</Location>
</programlisting>
@@ -3898,6 +4168,19 @@
</listitem>
<listitem>
<!--
+ <para><literal>AuthBasicProvider</literal> specifies the
+ Basic authentication provider to use for the location.
+ In our example, we wish to consult a local password
+ file.</para>
+-->
+ <para><literal>AuthBasicProvider</literal> gibt den
+ Anbieter für die einfache Authentifizierung an, der für
+ den Ort verwendet werden soll. In unserem Beispiel
+ möchten wir in einer lokalen Datei mit Passwörtern
+ nachsehen.</para>
+ </listitem>
+ <listitem>
+<!--
<para><literal>AuthUserFile</literal> specifies the
location of the password file to use.</para>
-->
@@ -3925,8 +4208,8 @@
Anwendernamen und das Passwort vom Subversion-Client
besorgen soll, <emphasis>falls</emphasis> eine Autorisierung
benötigt wird. (Wenn eine Autorisierung erforderlich ist,
- benötigt Apache auch eine Authentifikation.) Was hier jedoch noch
- fehlt, sind Direktiven, die Apache sagen,
+ benötigt Apache auch eine Authentifizierung.) Was hier
+ jedoch noch fehlt, sind Direktiven, die Apache sagen,
<emphasis>welche Arten</emphasis> von Client-Anfragen eine
Autorisierung erfordern; momentan sind das keine.
Das Einfachste ist es, anzugeben, dass
@@ -3944,6 +4227,7 @@
# Authentication: Basic
AuthName "Subversion repository"
AuthType Basic
+ AuthBasicProvider file
AuthUserFile /etc/svn-auth.htpasswd
# Authorization: Authenticated users only
@@ -3962,6 +4246,28 @@
festzulegen, sehen Sie unter
<xref linkend="svn.serverconfig.httpd.authz"/> nach.</para>
+ <note>
+<!--
+ <para>The default value of the
+ <literal>AuthBasicProvider</literal> option is
+ <literal>file</literal>, so we won't bother including
+ it in future examples. Just know that if in a broader
+ context you've set this value to something else, you'll
+ need to explicitly reset it to <literal>file</literal>
+ within your Subversion <literal><Location></literal>
+ block in order to get that behavior.</para>
+-->
+ <para>Der Standardwert für die Option
+ <literal>AuthBasicProvider</literal> ist
+ <literal>file</literal>, also werden wir es in künftigen
+ Beispielen nicht anführen. Sie sollten sich aber bewusst
+ sein, dass, wenn Sie diesen Wert in einem erweiterten
+ Kontext auf etwas anderes gesetzt haben, ihn ausdrücklich
+ wieder auf <literal>file</literal> in Ihrem
+ <literal><Location></literal>-Block zurücksetzen
+ müssen, falls Sie dieses Verhalten wünschen.</para>
+ </note>
+
</sect3>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
@@ -3992,13 +4298,18 @@
<!--
<para>Configuring Apache to use Digest authentication is
- straightforward, with only small variations on our prior
- example:</para>
+ straightforward. You'll need to ensure that
+ the <literal>mod_auth_digest</literal> module is available
+ (instead of <literal>mod_auth_basic</literal>), and then
+ make a few small variations on our prior example:</para>
-->
<para>Die Konfigurierung von Apache für die
- Digest-Authentifizierung ist unkompliziert und nur eine
- kleine Abweichung von unserem vorangegangenen
- Beispiel:</para>
+ Digest-Authentifizierung ist unkompliziert. Sie müssen
+ sicher stellen, dass das Modul
+ <literal>mod_auth_digest</literal> (statt
+ <literal>mod_auth_basic</literal>) verfügbar ist, und dann
+ nur noch ein wenig von unserem vorangegangenen
+ Beispiel abweichen:</para>
<informalexample>
<programlisting>
@@ -4009,6 +4320,7 @@
# Authentication: Digest
AuthName "Subversion repository"
AuthType Digest
+ AuthDigestProvider file
AuthUserFile /etc/svn-auth.htdigest
# Authorization: Authenticated users only
@@ -4021,31 +4333,57 @@
<para>Notice that <literal>AuthType</literal> is now set to
<literal>Digest</literal>, and we specify a different path
for <literal>AuthUserFile</literal>. Digest authentication
- uses a different file format than Basic authentication; it
- is created using Apache's <command>htdigest</command>
+ uses a different file format than Basic authentication,
+ created and managed using Apache's <command>htdigest</command>
utility<footnote><para>See
<ulink
url="http://httpd.apache.org/docs/current/programs/htdigest.html"
- />.</para></footnote> rather
- than <command>htpasswd</command>. Digest authentication
- also has the additional concept of a
+ />.</para></footnote> rather than <command>htpasswd</command>.
+ Digest authentication also has the additional concept of a
<quote>realm</quote>, which must match the value of the
- <literal>AuthName</literal> directive. The password file
- can be created as follows:</para>
+ <literal>AuthName</literal> directive.</para>
-->
<para>Beachten Sie, dass <literal>AuthType</literal> nun auf
<literal>Digest</literal> gesetzt ist, und wir einen
unterschiedlichen Pfad für <literal>AuthUserFile</literal>
angegeben haben. Digest-Authentifizierung verwendet ein
- unterschiedliches Dateiformat als Basic-Authentifizierung;
- es wird mit Apaches Dienstprogramm
- <command>htdigest</command> erzeugt<footnote><para>Siehe
+ unterschiedliches Dateiformat als einfache
+ Authentifizierung, erzeugt und verwaltet
+ mit Apaches Dienstprogramm <command>htdigest</command>
+ <footnote><para>Siehe
<ulink
url="http://httpd.apache.org/docs/current/programs/htdigest.html"
/>.</para></footnote> statt mit <command>htpasswd</command>.
Digest-Authentifizierung besitzt auch das zusätzliche
- Konzept eines Bereichs, <quote>realm</quote>, der dem Wert
- der Direktive <literal>AuthName</literal> entsprechen muss.
- Die Passwortdatei kann wie folgt erzeugt werden:</para>
+ Konzept eines Bereichs,
+ <foreignphrase>realm</foreignphrase>, der dem Wert der
+ Direktive <literal>AuthName</literal> entsprechen
+ muss.</para>
+ <note>
+<!--
+ <para>For digest authentication, the authentication provider
+ is selected using the <literal>AuthDigestProvider</literal>
+ as shown in the previous example. As was the case with
+ the <literal>AuthBasicProvider</literal> directive,
+ <literal>file</literal> is the default value of the
+ <literal>AuthDigestProvider</literal> option, so this
+ line is not strictly required unless you need to override
+ a different value thereof inherited from a broader
+ configuration context.</para>
+-->
+ <para>Für die Digest-Authentifizierung wird der Anbieter mit
+ der Direkive <literal>AuthDigestProvider</literal>
+ ausgewählt, wie im vorangegangenen Beispiel gezeigt. Wie
+ bei der Direktive <literal>AuthBasicProvider</literal>,
+ ist auch hier <literal>file</literal> der Standardwert der
+ Option <literal>AuthDigestProvider</literal> option, so
+ dass diese Zeile nicht unbedingt notwendig ist, es sei
+ denn, Sie müssen einen aus einem weiteren
+ Konfigurations-Kontext ererbten unterschiedlichen Wert
+ angeben.</para>
+ </note>
+
+ <para>The password file can be created as follows:</para>
+
<!--
<informalexample>
<screen>
@@ -4174,9 +4512,9 @@
<!--
<para>Sometimes you don't need to run such a tight ship. For
- example, Subversion's own source code repository at
- <ulink url="http://svn.collab.net/repos/svn"/> allows anyone
- in the world to perform read-only repository tasks (such as
+ example, the server hosting Subversion's own source code at
+ <ulink url="https://svn.apache.org/repos/asf/subversion/"/>
allows
+ anyone in the world to perform read-only repository tasks (such
as
checking out working copies and browsing the repository),
but restricts write operations to authenticated users. The
<literal>Limit</literal> and <literal>LimitExcept</literal>
@@ -4187,17 +4525,17 @@
block.</para>
-->
<para>Manchmal müssen Sie gar nicht so ein strenges Regiment
- führen. So erlaubt beispielsweise das eigene Projektarchiv
- von Subversion unter
- <ulink url="http://svn.collab.net/repos/svn"/> allen auf der
- Welt lesende Operationen (wie etwa das Auschecken von
- Arbeitskopien und das Stöbern im Projektarchiv),
- beschränkt jedoch Schreiboperationen auf authentifizierte
- Nutzer. Die Direktiven <literal>Limit</literal> und
- <literal>LimitExcept</literal> erlauben diese Art der
- selektiven Einschränkung. Ähnlich der Direktive
- <literal>Location</literal> haben diese Blöcke Start- und
- Ende-Tags, die Sie innerhalb Ihres
+ führen. So erlaubt beispielsweise der Server, der das eigene
+ Projektarchiv von Subversion unter
+ <ulink url="http://svn.collab.net/repos/svn"/> beherbergt,
+ allen auf der Welt lesende Operationen (wie etwa das
+ Auschecken von Arbeitskopien und das Stöbern im
+ Projektarchiv), beschränkt jedoch Schreiboperationen auf
+ authentifizierte Nutzer. Die Direktiven
+ <literal>Limit</literal> und <literal>LimitExcept</literal>
+ erlauben diese Art der selektiven Einschränkung. Ähnlich der
+ Direktive <literal>Location</literal> haben diese Blöcke
+ Start- und Ende-Tags, die Sie innerhalb Ihres
<literal><Location></literal>-Blocks
unterbringen.</para>
@@ -4652,8 +4990,7 @@
you can disable all of this path checking. In your
<filename>httpd.conf</filename> file, use the
<literal>SVNPathAuthz</literal> directive as shown in
- <xref linkend="svn.serverconfig.httpd.authz.pathauthzoff.ex-1"/>.
- </para>
+ <xref
linkend="svn.serverconfig.httpd.authz.pathauthzoff.ex-1"/>.</para>
-->
<para>Auf der anderen Seite gibt es auch eine Art Notausgang,
der es Ihnen erlaubt, Sicherheitsmerkmale gegen
@@ -4757,12 +5094,15 @@
<para>It's beyond the scope of this book to describe how to
generate client and server SSL certificates and how to
configure Apache to use them. Many other references,
- including Apache's own documentation, describe the
process.</para>
+ including Apache's own documentation (<ulink
+ url="http://httpd.apache.org/docs/current/ssl/"/>),
+ describe the process.</para>
-->
<para>Es würde den Rahmen dieses Buches sprengen, wenn
beschrieben würde, wie SSL Client- und Server-Zertifikate erzeugt
werden und wie Apache für ihre Verwendung konfiguriert wird.
- Viele andere Bücher, darunter Apaches eigene Dokumentation,
+ Viele andere Bücher, darunter Apaches eigene Dokumentation
+ (<ulink url="http://httpd.apache.org/docs/current/ssl/"/>),
erläutern diese Aufgabe.</para>
<tip>
@@ -4773,7 +5113,8 @@
tool such as OpenSSL (<ulink url="http://openssl.org"
/>).<footnote><para>While self-signed certificates are
still vulnerable to a <quote>man-in-the-middle</quote>
- attack, such an attack is much more difficult for a casual
+ attack (before a client sees the certificate for the first
+ time), such an attack is much more difficult for a casual
observer to pull off, compared to sniffing unprotected
passwords.</para></footnote></para>
-->
@@ -4781,12 +5122,14 @@
der Regel kostenpflichtig, doch können Sie als
Minimallösung Apache so konfigurieren, das er ein
selbstgezeichnetes Zertifikat verwendet, dass durch ein
- Werkzeug wie etwa OpenSSL erzeugt wurde
- (<ulink url="http://openssl.org" />).<footnote><para>Obgleich
- selbstgezeichnete Zertifikate anfällig für
- <quote>Man-in-the-Middle</quote>-Angriffe sind, ist ein
- solcher Angriff schwieriger für einen laienhaften
- Beobachter durchzuführen als ungeschützte Passwörter
+ Werkzeug wie etwa OpenSSL erzeugt wurde
+ (<ulink url="http://openssl.org"
+ />).<footnote><para>Obgleich selbstgezeichnete
+ Zertifikate anfällig für
+ <quote>Man-in-the-Middle</quote>-Angriffe sind (bevor ein
+ Client das Zertifikat erstmalig sieht), ist ein solcher
+ Angriff schwieriger für einen laienhaften Beobachter
+ durchzuführen als ungeschützte Passwörter
abzuschnorcheln.</para></footnote></para>
</tip>
@@ -5063,6 +5406,196 @@
</sect3>
</sect2>
+ <!-- ===============================================================
-->
+ <sect2 id="svn.serverconfig.httpd.perf">
+<!--
+ <title>Tuning for Performance</title>
+-->
+ <title>Auf Leistung abstimmen</title>
+
+<!--
+ <para>The Apache HTTP Server is built for performance, but you
+ can improve upon its default configuration to get even better
+ results out of your Subversion service offering. In this
+ section, we'll recommend some specific configuration changes
+ to consider. Understand, however, that some of
+ the <filename>httpd.conf</filename> configuration options
+ we'll be discussing herein affect the general behavior of your
+ server, not merely the Subversion service. As such, you need
+ to consider the full breadth of your HTTP service offering to
+ discern how modifications to these settings for Subversion's
+ sake may affect your other services.</para>
+-->
+ <para>Der Apache HTTP-Server ist zwar für Leistungsfähigkeit
+ gebaut worden, jedoch können Sie seine Standard-Konfiguration
+ verbessern, um noch bessere Ergebnisse beim Anbieten Ihrer
+ Subversion-Dienste zu erhalten. In diesem Abschnitt empfehlen
+ wir einige zielgerichtete Konfigurations-Änderungen zu
+ erwägen. Seien Sie sich jecoch bewusst, das einige der hier
+ erörterten Konfigurations-Optionen von
+ <filename>httpd.conf</filename> Auswirkungen auf das
+ allgemeine Verhalten Ihres Servers haben, nicht bloß für den
+ Subversion-Dienst. Insofern müssen Sie die gesamte Breite
+ Ihrer HTTP-Dienste berücksichtigen, um festzustellen, welche
+ Auswirkungen Änderungen an diesen Einstellungen wegen
+ Subversion auf Ihre anderen Dienste haben werden.</para>
+
+ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
+ <sect3 id="svn.serverconfig.httpd.perf.keepalive">
+ <title>KeepAlive</title>
+
+<!--
+ <para>By default, the Apache HTTP Server is configured to
+ enable the re-use of a single server connection for multiple
+ requests. That's very beneficial for Subversion, because
+ unlike many HTTP-based applications, Subversion can very
+ quickly generate hundreds or thousands of requests against
+ the server for a single operation, and the cost of opening a
+ new connection to the server is non-trivial. Subversion
+ wants to squeeze as many requests as possible out of a
+ single connection before that connection is terminated by
+ the server. The <literal>KeepAlive</literal> directive is the
+ boolean flag which enables or disables this connection
+ re-use facility, and as we indicated previously, by default
+ its value is <literal>On</literal>.</para>
+-->
+ <para>Standardmäßig ist der Apache HTTP Server so eingestellt,
+ dass er es erlaubt, eine einzelne Verbindung zum Server für
+ mehrere Anfragen wiederzuverwenden. Für Subversion ist das
+ sehr vorteilhaft, da, anders als bei vielen HTTP=basierten
+ Anwendungen, Subversion schnell für eine einzelne Operation
+ hunderte oder tausende von Anfragen an einen Server erzeugen
+ kann, und die Kosten beim Öffnen einer neuen Verbindung zum
+ Server nicht trivial sind. Subversion versucht, so viele
+ Anfragen wie möglich aus einer Verbindung herauszuquetschen,
+ bevor der Server sie beendet. Die Direktive
+ <literal>KeepAlive</literal> ist der boolsche Schalter, der
+ diese Möglichkeit zur Wiederverwendung einer Verbbindung
+ ermöglicht oder unterbindet. Wie bereits erwähnt ist deren
+ Wert standardmäßig <literal>On</literal>.</para>
+
+<!--
+ <para>But there's another directive which limits the number of
+ requests a client is allowed to submit on a single
+ connection: the <literal>MaxKeepAliveRequests</literal>
+ directive. The default value for that option
+ is <literal>100</literal>. This was probably sufficient for
+ older versions of Subversion, but Subversion 1.8 employs a
+ different HTTP communications library (called Serf) which
+ prefers to pipeline several smaller requests for specific bits
+ of information rather than asking the server to transmit
+ huge chunks of data in a single response. We recommend that
***The diff for this file has been truncated for email.***
More information about the svnbook-dev
mailing list