Im ersten Teil meiner Artikelserie zur Installation einer Web Entwicklungsumgebung beschreibe ich in einer Schritt-für-Schritt Anleitung, wie man den Apache Web Server auf Windows installieren kann.
Das Apache Web Server Projekt (offiziell eigentlich Apache Http Server Projekt genannt) wird von der Apache Software Foundation unter http://httpd.apache.org geführt. Die neueste Version (Stand: 27.06.2017) ist 2.4.26.
I. Apache Web Server herunterladen
1. Schritt: Zum Herunterladen klicken Sie auf den Download Link, wie in dem Screenshot gezeigt wird:
2. Schritt: Auf der nächsten Seite klicken Sie auf den Link “Files for Microsoft Windows”.
3. Schritt: Sie können nun aus einer Reihe von Alternativen eine Quelle auswählen, woher Sie die Windows Binaries (also unter Windows ausführbare Dateien) herunterladen können. Da die Quelle eigentlich egal ist (sofern man nicht die fertigen Pakete XAMPP oder WampServer verwendet), nehme ich für diese Anleitung den ersten Link.
4. Schritt: Jetzt wird es ein wenig haarig. Sie müssen die richtigen Binaries für Ihren Windows Computer auswählen. Hierzu müssen Sie in Windows unter Systemsteuerung – Programme – Programme und Funktionen nachsehen, welche Version der “Microsoft Visual C++ Redistributable” auf Ihrem Computer installiert ist.
Es empfiehlt sich, immer die neueste Version als Anhaltspunkt zu nehmen. In meinem Fall sind dies die Binaries für Visual Studio 2015. Also sind die richtigen Apache Windows Binaries die im Screenshot gezeigten:
Klicken Sie bitte auf die deutsche Flagge und auf der nächsten Seite erscheint ein Download Fenster. Durch einen Klick auf “Ok” wird der Download gestartet. Nach Abschluß des Downloads befindet sich eine ZIP Datei auf Ihrer Festplatte (in meinem Fall ist es “httpd-2.4.26-x64-vc14.zip”).
II. Apache Web Server installieren und konfigurieren
5. Schritt: Installation des Apache Web Servers
Die Installation des Apache Web Servers ist recht einfach. Sie müssen nur die komprimierte ZIP Datei entpacken und den Inhalt in das richtige Verzeichnis kopieren. Wie ich bereits eingangs erwähnte, habe ich zu diesem Zweck auf der C: Festplatte ein Verzeichnis AMP angelegt. Innerhalb dieses Verzeichnisses wird jetzt das entpackte Verzeichnis “Apache24” kopiert. Damit befindet sich nun der Apache Web Server unter C:\amp\Apache24. Damit ist die Installation auch schon fertig.
6. Schritt: Konfiguration des Apache Web Servers
Bevor der Apache Web Server gestartet werden kann, muß er noch konfiguriert werden. Hierzu gehen Sie bitte in das Verzeichnis C:\amp\Apache24\conf und öffnen die Datei httpd.conf in einem Text Editor (nicht MS Word!).
Alle Zeilen in dieser Konfigurationsdatei, die mit “#” beginnen, sind Kommentare und dienen lediglich als Erklärung für den Administrator (teilweise mit weiterführenden Links). Für die erste Änderung, die Sie vornehmen müssen, suchen Sie bitte nach dem Begriff “ServerRoot”. An dieser Stelle müssen Sie dem Apache Web Server mitteilen, wo die Binaries gespeichert sind. In unserem Fall ist dies C:\amp\Apache24. Folglich schreiben wir in die Zeile
ServerRoot "c:\amp\Apache24"
Als nächstes müssen wir die benötigten Apache Module festlegen. Hierzu suchen Sie bitte nach einer Kommentarzeile “Dynamic SharedObject (DSO) Support”. Darunter befinden sich mehrere Zeilen, die alle mit “LoadModule” beginnen. Manche dieser Zeilen sind auskommentiert, also nicht aktiviert. Auf einer produktiven Umgebung wäre es sinnvoll, nur diejenigen Module zu laden, die wirklich benötigt werden. Welche dies im einzelnen sind, ist eine Fleißarbeit, da Sie jedes Modul in der Apache Dokumentation nachschlagen müssten und danach entscheiden, ob es tatsächlich benötigt wird. Da dies zu beschreiben den Rahmen dieser Anleitung sprengen würde, beschränke ich mich darauf, all diejenigen Module aufzulisten, die Sie aktiviert haben sollten (also, die nicht auskommentiert sein dürfen):
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Einige dieser Module könnten sicher noch auskommentiert werden. Wenn Sie Zeit und Lust haben, können Sie dies gerne ausprobieren. Aus eigener Erfahrung gebe ich Ihnen jedoch den Rat, immer jeweils nur ein Modul auszukommentieren und gleich zu testen. Ansonsten kann es passieren, dass der Server nicht mehr läuft und dann wird es schwierig herauszufinden, welches Modul nicht hätte deaktiviert werden dürfen.
Jetzt suchen Sie bitte nach dem Begriff “DocumentRoot”. Hier wird dem Apache Web Server mitgeteilt, wo sich Ihre Web Projekte befinden. Dies kann ein beliebiges Laufwerk auf Ihrem Computer sein. Ich verwende dazu mein E: Laufwerk und dort das Verzeichnis “root”. Also schreibe ich in die httpd.conf folgende Zeile:
DocumentRoot "e:\root"
Und dieses Verzeichnis müssen Sie in der darunterliegenden Zeile nochmals eintragen.
<Directory "e:\root">
Damit hätten wir die Grundkonfiguration für den Apache Web Server erst einmal abgeschlossen. Später werden wir noch einen Eintrag ergänzen müssen, um PHP als Skriptsprache zu deklarieren.
Speichern Sie bitte die Datei httpd.conf.
7. Schritt: Apache Web Server als Windows Dienst einrichten
Als nächstes werden wir den Apache Web Server als Windows Dienst einrichten. Man könnte ihn auch jedes Mal manuell starten, aber das finde ich etwas unbequem.
Gehen Sie bitte zu Windows Start – Ausführen, geben dort “cmd” ein und klicken auf den “OK” Button. Es öffnet sich die Windows Kommandozeile. Sie sehen im Prompt Ihr User Verzeichnis. Wechseln Sie bitte in das Verzeichnis c:\amp\Apache24\bin indem Sie folgendes eingeben und die Enter Taste drücken:
cd \amp\Apache24\bin
Dieser Schritt ist nur notwendig, da dieses Verzeichnis nicht im Windows PATH eingetragen ist.
Für die Installation des Apache Web Servers als Windows Dienst geben Sie bitte folgenden Befehl in die Kommandozeile ein und bestätigen Sie durch die ENTER Taste:
httpd.exe -k install
Sie sollten eine Bestätigung erhalten, dass der Dienst installiert wurde. Danach muss der Dienst noch gestartet werden. Hierzu geben Sie bitte den folgenden Befehl in die Kommandozeile ein und drücken danach die ENTER Taste:
httpd.exe -k start
Nachdem der Apache Dienst gestartet ist, ist der Web Server einsatzbereit.
8. Schritt: Installation testen
Zum Abschluß wollen wir noch testen, ob der Apache Web Server auch funktioniert. Hierzu benötigen wir zunächst ein HTML Dokument, welches wir in das DocumentRoot Verzeichnis (in unserem Fall “e:\root”) speichern. Erstellen Sie in einem Text Editor die folgende Datei:
<html>
<head>
</head>
<title>Apache Test</title>
<body>
<h1>Apache 2.4 läuft!</h1>
</body>
</html>
Apache 2.4 läuft!
Speichern Sie bitte diese Datei mit dem Namen “index.html” im DocumentRoot Verzeichnis. Öffnen Sie jetzt bitte Ihren Web Browser und geben in die Adresszeile “http://localhost” ein.
Es sollte eine leere Seite kommen, die nur den Text “Apache 2.4 läuft!” enthält und in der Titelzeile “Apache Test”. Wenn Sie das sehen, dann war die Installation erfolgreich und der Apache Web Server ist einsatzbereit.
Falls Sie die zuvor beschriebene Seite nicht sehen sollten, dann gehen Sie bitte nochmals alle Schritte nochmals durch und prüfen, ob Ihnen nicht irgendwo ein Fehler unterlaufen ist. Falls Sie danach immer noch nicht weiter wissen, dann können Sie gerne Fragen im Kommentarbereich hinterlegen.
Kommentare(8)
Dank für Deine Mühe. Läuft sehr gut mein Server.
Grüße
Dennis
Hallo zusammen
Bin heute auf das gleiche Problem gestossen. Einfach in der httpd.con in der Zeile den Pfad vervollständigen. Von Define SRVROOT “/Apache24” auf Define SRVROOT “/amp/Apache24” anpassen. Dann wird das Certifikat gefunden.
Gruß
Rainer
Hallo Simon,
moniert wird ja das Fehlen der Datei “server.crt”. Das ist die lokale Zertifikatsdatei, die benötigt wird, damit der Apache Server verschlüsselt arbeiten kann. Wie man so ein Zertifikat auf dem Localhost erzeugt, müsstest Du jetzt bitte über Google suchen, da es etwas langwierig wird, dies jetzt im einzelnen zu beschreiben. Vielleicht schreibe ich noch einen eigenen Artikel darüber.
Die Frage ist jedoch, wozu Du auf dem Localhost überhaupt eine SSL-Verschlüsselung brauchst. Wenn Du nicht gerade eine bestimmte Funktionalität lokal testen willst, ist dies nicht unbedingt erforderlich. Auf dem lokalen PC findet ja die Kommunikation von Server zum Client nicht im Netz statt (also schon in Deinem lokalen Netzwerk, was sich jedoch alles auf Deinem PC abspielt), so dass SSL nicht wirklich besonders viel nützt.
Aber, wie gesagt, es fehlt ein SSL-Zertifikat, was erstellt werden muss und dieses dann in das richtige Verzeichnis abgelegt. Dann klappt das auch mit dem HTTPS.
Für die eigentliche Installation von Apache empfehle ich jedoch, erst einmal das mod_ssl Modul auszukommentieren und die Installation ohne dieses Modul durchzuführen. Das Zertifikat kann jederzeit noch erstellt und nachträglich aktiviert werden.
Hallo Adrian,
Danke für die ausführliche und verständliche Anleitung. Leider haut es mit dem Start gerade noch nicht hin. Bei mir taucht beim Versuch, Apache zu starten, ebenfalls die folgende Fehlermeldung auf:
SSLCertificateFile: file ‚C:/Apache24/conf/ssl/server.crt‘ does not exist or is empty.
Die Zeile
LoadModule ssl_module modules/mod_ssl.so
ist nicht auskommentiert, also ohne #. Tatsächlich existieren tut die Datei auch! Was könnte man da noch probieren?
Danke und schönen Gruß!
Hallo Sonja,
leider folgte keine Fehlermeldung … ;-)
Da bräuchte ich schon mehr Infos, um zu helfen.
Viele Grüße
Adrian
Hallo, bie mir kommt folgende Fehlermeldung. Was kann ich tun?
Viele Grüße
Sonja
Hallo, ich hätte kurz eine Frage. Immer wenn ich den Befehl “httpd.exe -k start” ausführen will, kommt die Fehlermeldung “SSLCertificateFile: file ‘C:/Apache24/conf/ssl/server.crt’ does not exist or is empty”. Woran kann das liegen? Vielen Dank und viele Grüße
Hallo Bettina,
haben Sie in der httpd.conf das SSL Modul aktiviert? Sehen Sie bitte nach, ob die Zeile
#LoadModule ssl_module modules/mod_ssl.so
auskommentiert ist. Denn erst dieses Modul sucht nach der Zertifikatsdatei.
Allerdings könnten Sie – falls Sie SSL aktivieren wollen – prüfen, ob die monierte Datei tatsächlich fehlt. Eigentlich sollte sie jedoch im Apache24-Verzeichnis existieren.
Viele Grüße
Adrian