1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.de.xsl"?>
<!-- English Revision: 378921 -->
<!--
Copyright 2002-2006 The Apache Software Foundation or its licensors,
as applicable.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="install.xml.meta">
<title>Kompilieren und Installieren</title>
<summary>
<p>Dieses Dokument umfaßt nur die Kompilierung und Installation des
Apache HTTP Servers auf Unix und Unix-ähnlichen Systemen. Für die
Kompilierung und Installation unter Windows lesen Sie bitte <a
href="platform/windows.html">Den Apache HTTPd unter Microsoft Windows
betreiben</a>. Für andere Plattformen lesen Sie bitte die
Dokumentation <a href="platform/">Plattformen</a>.</p>
<p>Der Apache HTTPd verwendet <code>libtool</code> und
<code>autoconf</code>, um eine Erstellungsumgebung zu schaffen, die der
vieler anderer Open Source Projekte ähnlich sieht.</p>
<p>Wenn Sie von einer Unterversion auf die nächste aktualisieren (z.B.
von 2.2.50 auf 2.2.51), springen Sie bitte zum Abschnitt <a
href="#upgrading">Upgrade</a>.</p>
</summary>
<seealso><a href="programs/configure.html">Den Quellcode konfigurieren</a></seealso>
<seealso><a href="invoking.html">Den Apache HTTP Server starten</a></seealso>
<seealso><a href="stopping.html">Beenden und Neustarten</a></seealso>
<section id="overview"><title>Überblick für die Ungeduldigen</title>
<table>
<columnspec><column width=".13"/><column width=".80"/></columnspec>
<tr>
<td><a href="#download">Download</a></td>
<td><code>$ lynx http://httpd.apache.org/download.cgi</code>
</td>
</tr>
<tr>
<td><a href="#extract">Auspacken</a></td>
<td><code>$ gzip -d httpd-<em>NN</em>.tar.gz<br />
$ tar xvf httpd-<em>NN</em>.tar
$ cd httpd-<em>NN</em></code></td>
</tr>
<tr>
<td><a href="#configure">Konfigurieren</a></td>
<td><code>$ ./configure --prefix=<em>PREFIX</em></code>
</td>
</tr>
<tr>
<td><a href="#compile">Kompilieren</a></td>
<td><code>$ make</code> </td>
</tr>
<tr>
<td><a href="#install">Installieren</a></td>
<td><code>$ make install</code> </td>
</tr>
<tr>
<td><a href="#customize">Anpassen</a></td>
<td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
</tr>
<tr>
<td><a href="#test">Testen</a></td>
<td><code>$ <em>PREFIX</em>/bin/apachectl -k start</code>
</td>
</tr>
</table>
<p><em>NN</em> muss durch die entsprechende Versionsnummer ersetzt
werden und <em>PREFIX</em> durch den Verzeichnispfad,
in dem der Server installiert werden soll. Wenn <em>PREFIX</em> nicht
angegeben ist, wird die Voreinstellung <code>/usr/local/apache2</code>
verwendet.</p>
<p>Beginnend mit den Anforderungen
für die Kompilierung und Installation des Apache HTTP Servers ist
weiter unten jeder Abschnitt des Kompilierungs- und
Installationsvorganges genauer beschrieben.</p>
</section>
<section id="requirements"><title>Anforderungen</title>
<p>Folgende Anforderungen gelten für die Erstellung des
Apache HTTPd:</p>
<dl>
<dt>Plattenplatz</dt>
<dd>Stellen Sie sicher, dass Sie kurzzeitig wenigstens 50 MB freien
Festplattenplatz zur Verfügung haben. Nach der Installation
belegt der Apache ungefähr 10 MB Plattenplatz. Der
tatsächliche Platzbedarf variiert in Abhängigkeit von den
gewählten Konfigurationseinstellungen und
Modulen von Drittanbietern.</dd>
<dt>ANSI-C-Compiler und Generierungswerkzeuge</dt>
<dd>Stellen Sie sicher, dass Sie einen ANSI-C Compiler installiert
haben. Der <a href="http://www.gnu.org/software/gcc/gcc.html">GNU C
Compiler (GCC)</a> der <a href="http://www.gnu.org/">Free Software
Foundation (FSF)</a> ist empfehlenswert. Wenn
Sie den GCC nicht besitzen, stellen Sie zumindest sicher, dass der
Compiler Ihres Anbieters ANSI-kompatibel ist. Außerdem muss Ihr
<code>PATH</code> wesentliche Generierungswerkzeuge wie
<code>make</code> enthalten.</dd>
<dt>Zeitgenauigkeit bewahren</dt>
<dd>Elemente des HTTP-Protokolls werden in Form einer Tageszeit
ausgedrückt. Darum sollten Sie jetzt prüfen, ob Ihr System
die Fähigkeit zur Zeitsynchronisation besitzt, und diese
gegebenenfalls installieren. Üblicherweise werden hierfür
die Programme <code>ntpdate</code> oder <code>xntpd</code> verwendet,
die auf dem Network Time Protocol (NTP) basieren. Nähere
Informationen über NTP Software und öffentliche Zeitserver
finden Sie auf der <a href="http://www.ntp.org">NTP-Homepage</a>.</dd>
<dt><a href="http://www.perl.org/">Perl 5</a>
[OPTIONAL]</dt>
<dd>Für einige Hilfsskripte wie <program>apxs</program>
oder <program>dbmmanage</program> (die in Perl
geschrieben sind) wird der Perl 5 Interpreter benötigt (die
Versionen ab 5.003 sind ausreichend). Wenn Sie mehrere Perl
Interpreter haben (beispielsweise eine systemweite Installation von
Perl 4 und Ihre eigene Perl 5-Installation), dann sollten Sie die
<code>--with-perl</code>-Option (siehe unten) verwenden, um
sicherzustellen, dass der richtige Interpreter von
<program>configure</program> ausgewählt wird.
Wenn kein Perl 5-Interpreter vom <program>configure</program>-Skript
gefunden werden kann, können Sie die betroffenen Hilfsskripte nicht
verwenden, sind jedoch selbstverständlich nach wie vor in der Lage,
den Apache HTTPd zu bauen und zu installieren.</dd>
<dt><a href="http://apr.apache.org">apr/apr-util >= 1.2</a></dt>
<dd><code>apr</code> und <code>apr-util</code> werden mit den
Quelltext-Veröffentlichungen des Apache HTTPd gebündelt und in
nahezu allen Fällen ohne Probleme verwendet. Sind jedoch die
<code>apr</code>- oder <code>apr-util</code>-Versionen 1.0 oder 1.1 auf
Ihrem System installiert, dann müssen Sie diese
<code>apr</code>-/<code>apr-util</code>-Installationen entweder
aktualisieren oder httpd separate Kompilate verwenden lassen. Um
hierfür die mitgelieferten
<code>apr</code>-/<code>apr-util</code>-Quellen zu verwenden,
müssen Sie diese manuell installieren:
<example>
# apr 1.2 bauen und installieren<br />
cd srclib/apr<br/>
./configure --prefix=/usr/local/apr-httpd/<br/>
make<br/>
make install<br />
<br />
# apr-util 1.2 bauen und installieren<br />
cd ../apr-util<br />
./configure --prefix=/usr/local/apr-util-httpd/
--with-apr=/usr/local/apr-httpd/<br />
make<br/>
make install<br />
<br />
# httpd konfigurieren<br />
cd ../../<br />
./configure --with-apr=/usr/local/apr-httpd/
--with-apr-util=/usr/local/apr-util-httpd/
</example>
</dd>
</dl>
</section>
<section id="download"><title>Download</title>
<p>Der Apache HTTP Server kann von der <a
href="http://httpd.apache.org/download.cgi"
>Apache-HTTP-Server-Downloadseite</a> heruntergeladen werden, auf der
verschiedene Spiegelserver angegeben sind. Für die meisten Benutzer
des Apache HTTPd ist es auf Unix-ähnlichen Systemen am Besten, die
Quellcodeversion herunterzuladen und zu kompilieren. Der
Erstellungsprozess (weiter unten beschrieben) ist einfach und erlaubt es
Ihnen, den Server Ihren Bedürfnissen anzupassen. Dazu kommt, dass
Binärdistributionen gegenüber der aktuellen Quellcodeversion oft
veraltet sind. Wenn Sie tatsächlich ein Binärpaket
herunterladen, folgen Sie bitte den Anweisungen in der Datei
<code>INSTALL.bindist</code>, die der Distribution beiliegt.</p>
<p>Es ist wichtig, dass Sie nach dem Herunterladen überprüfen,
dass es sich um einer vollständige und unveränderte Version des
Apache HTTP Servers handelt. Das können Sie erreichen, indem Sie das
heruntergeladene Paket gegen die PGP-Signatur prüfen. Einzelheiten dazu
erfahren Sie auf der <a
href="http://httpd.apache.org/download.cgi#verify">Download-Seite</a>. Es
ist auch ein erweitertes Beispiel verfügbar, dass die <a
href="http://httpd.apache.org/dev/verification.html">Anwendung von PGP</a>
beschreibt.</p>
</section>
<section id="extract"><title>Auspacken</title>
<p>Das Auspacken des Quellcodes aus dem Apache-HTTPd-Tarball besteht
aus einem simplen Dekomprimieren und danach "Ent-tarren":</p>
<example>
$ gzip -d httpd-<em>NN</em>.tar.gz<br />
$ tar xvf httpd-<em>NN</em>.tar
</example>
<p>Dies erstellt unterhalb des aktuellen Verzeichnisses ein neues
Verzeichnis, das den Quellcode für die Distribution enthält.
Sie sollten mit <code>cd</code> in dieses Verzeichnis wechseln,
bevor Sie mit der Kompilierung des Servers weitermachen. </p>
</section>
<section id="configure"><title>Den Codebaum konfigurieren</title>
<p>Der nächste Schritt ist die Konfiguration des
Apache-HTTPd-Codebaumes für Ihre spezielle Plattform und Ihre
persönlichen Bedürfnisse. Dies wird mit dem Skript
<program>configure</program> durchgeführt, das im Wurzelverzeichnis
der Distribution enthalten ist. (Entwickler, welche eine nicht
freigegebene Version des Apache-HTTPd-Codebaumes herunterladen, müssen
<code>autoconf</code> und <code>libtool</code> installiert haben und müssen
<code>buildconf</code> ausführen, bevor sie mit den
nächsten Schritten fortfahren können. Dies wird bei
offiziellen Releases nicht notwendig sein.)</p>
<p>Um den Codebaum mit den Standardeinstellungen zu konfigurieren,
geben Sie einfach <code>./configure</code> ein. Zur Änderung
dieser Voreinstellungen akzeptiert <program>configure</program> eine
Reihe von Variablen und Kommandozeilenoptionen.</p>
<p>Die wichtigste Option ist <code>--prefix</code>, der Ablageort, an dem
der Apache HTTP Server später installiert wird, da er für diesen Ort
konfiguriert werden muss, um korrekt zu arbeiten. Eine feinere Einstellung
der Dateiablagen ist mit weiteren <a
href="programs/configure.html#installationdirectories">configure-Optionen</a>
möglich.</p>
<p>Weiterhin können Sie zu diesem Zeitpunkt festlegen, welche <a
href="programs/configure.html#optionalfeatures">Funktionalität</a>
Sie in den Apache HTTPd aufnehmen möchten, indem Sie <a
href="mod/">Module</a> aktivieren oder deaktivieren. Der Apache HTTP
Server bindet standardmäßig einen Satz von <a
href="mod/module-dict.html#Status">Basismodulen</a> ein. Andere Module
werden mit Hilfe der Option <code>--enable-<var>module</var></code>
aktiviert, wobei <var>module</var> den Namen des Moduls ohne das
Präfix <code>mod_</code> darstellt. Ausserdem sind alle Unterstriche
durch Bindestriche zu ersetzen. Sie können sich auch entscheiden,
Module als "<a href="dso.html">Shared Objects (DSOs)</a>" zu kompilieren,
welche zur Laufzeit ge- und entladen werden können. Dazu verwenden
Sie die Option <code>--enable-<var>module</var>=shared</code>.
Entsprechend können Sie Basismodule mit der Option
<code>--disable-<var>module</var></code> deaktivieren. Lassen Sie Vorsicht
walten. wenn Sie diese Optionen verwenden, da <program>configure</program>
Sie nicht warnen kann, wenn die von Ihnen angegebenen Module nicht
existieren; die Option wird dann einfach ignoriert.</p>
<p>Zusätzlich ist es zuweilen notwendig, das
<program>configure</program>-Skript mit Extrainformationen zum Ablageort
Ihres Compilers, Ihrer Bibliotheken oder Header-Dateien zu versorgen. Das
tun Sie, indem Sie entweder Umgebungsvariablen oder Kommandozeilenoptionen
an <program>configure</program> übergeben. Für mehr Informationen
lesen Sie bitte die Hilfeseite zu <program>configure</program>.</p>
<p>Um einen kurzen Eindruck zu gewinnen, welche Möglichkeiten Sie
haben, folgt hier ein typisches Beispiel, das den Apache mit einem
speziellen Compiler und Compilerflags für das
Installationsverzeichnis <code>/sk/pkg/apache</code> kompiliert, sowie
die beiden zusätzlichen Module <module>mod_rewrite</module> und
<module>mod_speling</module> für späteres Laden durch den
DSO-Mechanismus:</p>
<example>
$ CC="pgcc" CFLAGS="-O2" \<br />
./configure --prefix=/sw/pkg/apache \<br />
--enable-rewrite=shared \<br />
--enable-speling=shared
</example>
<p>Wenn <program>configure</program> startet, benötigt es mehrere
Minuten, um die Verfügbarkeit von Features auf Ihrem System zu
prüfen und ein Makefile zu generieren, das später zur
Kompilierung des Servers verwendet wird.</p>
<p>Einzelheiten zu den vielen verschiedenen <program>configure
</program>-Optionen finden Sie auf der Hilfeseite zu
<program>configure</program>.</p>
</section>
<section id="compile"><title>Erstellen</title>
<p>Nun können Sie die verschiedenen Teile, die das Apache-HTTPd-Paket
bilden, einfach durch Ausführen des folgenden Befehls erstellen:</p>
<example>$ make</example>
<p>Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration
benötigt mehrere Minuten zum Kompilieren. Die Zeit kann jedoch
abhängig von Ihrer Hardware und der Anzahl
der Module, die Sie aktiviert haben, sehr stark variieren.</p>
</section>
<section id="install"><title>Installieren</title>
<p>Nun endlich installieren Sie das Package unter dem konfigurierten
Installations-<em>PREFIX</em> (siehe oben: Option <code>--prefix</code>
durch Aufrufen von:</p>
<example>$ make install</example>
<p>Wenn Sie upgraden, wird die Installation Ihre Konfigurationsdateien
oder Dokumente nicht überschrieben.</p>
</section>
<section id="customize"><title>Anpassen</title>
<p>Als nächstes können Sie Ihren Apache HTTP Server anpassen,
indem Sie die <a href="configuring.html">Konfigurationsdateien</a>
unterhalb von <code><em>PREFIX</em>/conf/</code> editieren.</p>
<example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>
<p>Werfen Sie auch einen Blick in das Apache-HTTP-Server-Handbuch unter <a
href="./">docs/manual/</a>. Die aktuellste Version dieses Handbuchs
sowie eine komplette Referenz der verfügbaren <a
href="mod/directives.html">Konfigurationsanweisungen</a> finden
Sie unter <a href="http://httpd.apache.org/docs/&httpd.docs;/"
>http://httpd.apache.org/docs/&httpd.docs;/</a>.</p>
</section>
<section id="test"><title>Testen</title>
<p>Sie können nun Ihren Apache HTTP Server <a
href="invoking.html">starten</a>, indem Sie einfach</p>
<example>$ <em>PREFIX</em>/bin/apachectl -k start</example>
<p>ausführen.</p>
<p>Danach sollten Sie Ihr erstes Dokument unter dem URL
<code>http://localhost/</code> anfordern können. Die Webseite,
die Sie sehen, ist im <directive module="core">DocumentRoot</directive>
abgelegt, welches üblicherweise <code><em>PREFIX</em>/htdocs/</code>
ist. Den Server <a href="stopping.html">stoppen</a> Sie wieder durch
Ausführen von:</p>
<example>$ <em>PREFIX</em>/bin/apachectl -k stop</example>
</section>
<section id="upgrading"><title>Upgrade</title>
<p>Der erste Schritt beim Aktualisieren besteht darin, die
Versionsankündigung sowie die <code>CHANGES</code>-Datei in der
Quelltextdistribution zu lesen, um Änderungen zu finden, die Ihr
System möglicherweise betreffen. Wenn Sie einen größeren
Versionssprung durchführen (z.B. vom 1.3 auf 2.0 oder von 2.0 auf
2.2), wird es wahrscheinlich auch größere Unterschiede in der
Kompilier- und Laufzeitkonfiguration geben, die manuelle Nacharbeiten
erfordern. Außerdem müssen alle Module aktualisiert
werden, um den Änderungen der Modul-API gerecht zu werden.</p>
<p>Die Aktualisierung einer Unterversion auf eine andere (z.B. von 2.2.55
auf 2.2.57) ist einfacher. <code>make install</code> überschreibt
keine der bereits existierenden Dokumente, Log- und Konfigurationsdateien.
Ausserdem bemühen sich die Entwickler, inkompatible Änderungen
der <program>configure</program>-Optionen, der Laufzeitkonfiguration sowie
der Modul-API zu vermeiden. In den meisten Fällen sollten Sie in der
Lage sein, den gleichen <program>configure</program>-Befehl, die gleiche
Konfiguration und die gleichen Module wieder zu verwenden.</p>
<p>Um auf eine neue Unterversion zu aktualisieren, suchen Sie zunächst
die Datei <code>config.nice</code> im <code>build</code>-Verzeichnis
Ihrer Serverinstallation oder im Wurzelverzeichnis des Quelltextbaums
der alten Installation. Die Datei enthält den genauen
<program>configure</program>-Befehl, der verwendet wurde, um den
Quellcode zu konfigurieren. Um jetzt von einer Version auf die
nächste zu aktualisieren, kopieren Sie einfach die
<code>config.nice</code> in das Verzeichnis der neuen Version,
passen sie bei Bedarf an, und führen Sie sie aus:</p>
<example>
$ ./config.nice<br />
$ make<br />
$ make install<br />
$ <var>PREFIX</var>/bin/apachectl -k graceful-stop<br />
$ <var>PREFIX</var>/bin/apachectl -k start<br />
</example>
<note type="warning">Sie sollten jede neue Version immer in Ihrer Umgebung
testen, bevor Sie sie produktiv schalten. Beispielsweise können Sie
die neue Version neben der alten installieren, indem Sie ein anderes
<code>--prefix</code> und einen anderen Port wählen (durch Anpassen der
<directive module="mpm_common">Listen</directive>-Direktive). So
können Sie auf eventuelle Inkompatibilitäten testen, bevor Sie
endgültig die neue Version verwenden.</note>
</section>
</manualpage>
|