|
Apache ist weltweit der Standard-Webserver für PC-Systeme: kostenlos
(OpenSource), schnell und sicher. Alle gängigen Linux-Distributionen enthalten selbstverständlich Apache. Auch auf Windows-Systemen läuft der Server hervorragend, man muss ihn jedoch selbst installieren. |
Hier werden einige Details für Windows-Betriebssysteme beschrieben. Achtung: Alle Angaben ohne Gewähr ! Wenn sie den Hinweisen folgen, so tun sie das auf eigenes Risiko ! |
Apache
|
Der weltweit erfolgreichste WebServer (Schnell-Installation) |
WAMP
|
Standard-Server mit Windows - Apache - MySQL - PHP - Perl |
| Quellen | Wo kann man den Apache Server downladen ? |
| Installation | Installation von Apache-Webserver auf Windows |
| Simultan | Gleichzeitiger (Test)-Betrieb mehrerer Webserver |
| Anmeldung als Dienst | Dienste (services) sind Hintergrund-Programme ohne Oberfläche |
| Start & Stop | Start, Stop, Restart |
| Test | Einfache Funktionstests |
| Probleme ? | Probleme und Vorschläge zur Behebung |
| Konfiguration | Einstellung der Parameter |
| Zugangsrechte | Nur so viele wie nötig |
| Verzeichnisse | Arbeits-Verzeichnis, spezielle Verzeichnisse @ Zugriffsrechte |
| Weiter | PHP, Perl, ... |
| Werkzeug | Spezielle Programme und Tipps, wenn Probleme auftreten |
| Linux-Apache | Apache Webserver auf einem Linux (LAMP) - System |
|
||||
| Voraussetzung: ein modernes Windows-Betriebssystem (z.B. Win2000, WinXP). Eine Installation auf älteren Systemen ist möglich, aber nicht sinnvoll. Falls sie auf Linux installieren wollen, wechseln sie zur LAMP-Seite. | ||||
|
Erste Wahl ist die Apache-Homepage: http://www.apache.org Sie finden den Apache Webserver für Windows auch auf zahlreichen Webs, die Freeware & Shareware anbieten. Installer oder Source ? Da Apache ein OpenSource-Produkt ist, können sie nicht nur fertige Installer sondern auch den gesamten Quellcode (source-code, C++) laden. Für die einfache Anwendung eignen sich nur fertige Installer. Sie sind leicht bedienbar und enthalten eine Standard-Konfiguratione, welche für die meisten Anwendungen ausreicht. Ein typischer Apache Windows - Installer hat Dateinamen wie apache_2.2.4-win32-x86-no_ssl.msi
bei einer Größe von ca. 4.5MBVersierte EntwicklerInnen können sich aus dem Quelltext eine maßgeschneiderte Apache-Version selbst herstellen. Dazu benötigen sie einen C++ Compiler, der leider nur auf Linux selbstverständlich ist. Auf Windows müssen sie sich einen Compiler besorgen und installieren. |
Version:
Meist haben sie die Wahl zwischen stabilen getesteten Arbeits-Versionen und der jeweils
neuesten Entwickler-Version. Benutzen sie im Zweifel immer die empfohlene stabile Version !▲ Version 1.* funktioniert ausgezeichnet, ist aber veraltet. ▲ Version 2.0.* ist die derzeit meist verwendete Standard-Installation. Sie ist nach aller Erfahrung besser, schneller und mindestens ebenso zuverlässig wie Version 1. ▲ Die neueste Version 2.2.* ist sehr schnell und bietet viele Verbesserungen. Dokumentation:
Nicht jeder Installer enthält die Doku. Überprüfen sie das und laden sie
bei Bedarf die Doku extra (meist auch bei
apache.org).
|
|||
Installation von Apache (Version 2.2) auf Windows |
|
|
Vor der Installation unbedingt die allenfalls vorhandenen Web-Daten sichern !
|
Sicherungs-KopieErstellen sie eine Sicherungs-Kopie ihrer Web-Daten (HTML- Dateien, PHP-Dateien, Bilder, etc.). Die Kopie muss sich außerhalb des normalen Web-Verzeichnisses befinden, z.B. in C:\websicherung.zip |
|
Vor der Installation unbedingt einen allenfalls laufenden Webserver
(Apache oder andere) abschalten !
|
Webserver abschalten !Sie können mehrere Webserver gleichzeitig betreiben, die Konfiguration dazu kann jedoch erst nach der Installation erfolgen ! |
Auspacken und LesenDer Windows-Installer wird entweder als komprimiertes Archiv (*.zip - besser !) oder als Installer geliefert. Verschieben sie das Archiv in ein eigenes Verzeichnis, z.B. C:\temp\install
Packen sie das Archiv mit einem Expander
(WinRAR,
WinZip,
WinAce, ...)
aus und lesen sie die Install-Info.
|
Lesen sie die Datei INSTALL.txt
insbesondere den Absatz "Quick Start - Windows"Die Datei kann je nach Version auch anders benannt sein. |
| Einen Installer (*.msi) können sie mit Doppelklick direkt ausführen. | Lesen sie in diesem Fall vorher (!) die Installations-Hinweise von den Apache-Webseiten. |
|
Installations-Ort:
Apache Versionn 2.2 installiert normalerweise in
C:\Programme\Apache Software Foundation\Apache2.2
Wählen sie nach Möglichkeit keinen anderen Installtions-Ort.Ältere Version ist installiert
Wenn sie bereits einen älteren Apache Server betreiben, dann befindet sich dieser
normalerweise in einem anderen Verzeichnis. Schalten sie diesen Server ab,
löschen sie die Dateien jedoch erst nach erfolgreichem Test einer neuen Version.
|
Falls der Installer Fragen nach DomainName und/oder
ServerName stellt, beantworten sie beide im Zweifel mit
"localhost". Dabei wird in der Konfigurationsdatei httpd.conf diese Zeile erzeugt, die sie später mit jedem Text-Editor ändern können: ServerName localhost
Lassen sie die Eingabefelder nicht leer !Apache ist ein Hintergrund-Dienst. Starten sie ihn daher nicht (!!) wie andere Programme durch Doppelklick. Der Installer startet den Apache-Webserver normalerweise automatisch nach erfolgter Installation, davon sehen sie jedoch nichts ! |
|
Platzbedarf (Richtwerte): Installer-Download Apache ca. 4-5 MB zuzüglich ca. 11 MB für PHP + ca. 13 MB für Perl Festplatte: Apache 2 ca. 17 MB + Doku 8 MB Apache 2.2 ca. 11 MB, + Doku 9 MB zuzüglich ca. 13 MB für PHP (Arbeits-Version) - 30MB (alle PHP-Module) zuzüglich ca. 41 MB für Perl + 22 MB Perl-Doku zuzüglich Daten (Webseiten, Bilder, ...) |
Hauptspeicher: Apache Monitor ca. 2.5 MB Apache 2 ca. 13 MB Apache 2.2 ca. 11 MB |
Gleichzeitiger (Test)-Betrieb mehrerer Webserver |
|
| Unter normalen Bedingungen sollte an einem PC nur ein Webserver (auf Port 80) laufen. |
Zum Test einer (neuen) Server-Version können mehrere Webserver einige Zeit parallel
laufen. Besser ist jedoch ein Testbetrieb auf einem eigenen Test-PC. |
GrundprinzipNormale PC (auch Server-PC) sind unter einer einzigen eindeutigen IP-Adresse erreichbar, z.B. 192.168.0.1Über diese Adresse laufen die Daten-Pakete vieler verschiedener Dienste, z.B. HTTP (Webseiten, Bilder, ..), SMTP und POP (Mail), FTP (File-Transfer), usw. PortUm die unterschiedlichen Daten auseinander zu halten, werden Ports verwendet, das sind virtuelle Sub-Adressen einer IP-Adresse. Jedes Programm sendet und empfängt auf unterschiedlichen Ports.Server empfangen (horchen) auf festgelegten Ports. |
Webserver'horchen' (listen) auf Port 80 auf einlangende Anfragen (Anforderung einer Webseite durch einen Browser).Auf Port 80 darf nur ein Programm horchen, der Standard-Webserver. Andere Programme können gleichzeitig auf anderen Ports horchen, ein zweiter (experimenteller) Webserver z.B. auf Port 8080. So können - bei gut geplanter Konfiguration - mehrere Webserver gleichzeitig auf einem PC arbeiten. ● Die Schwierigkeit besteht darin, dass moderne Installer einen Server nach erfolgter Installation sofort starten. Sie müssen daher vor der Installation eines Webservers alle laufenden Webserver abschalten. Nach Installation werden die Server nochmals abgeschaltet und auf unterschiedliche Ports konfiguriert. Erst danach können sie einzeln oder gleichzeitig gestartet werden. |
|
Parallel-Betrieb mehrerer Webserver, z.B. von Apache 2 und
Apache 2.2: ► Löschen sie keinesfalls eine funktionierende Apache-2.0 Installation, wenn sie Apache 2.2 installieren ! ► Stoppen sie den Apache 2.0 Dienst und installieren sie Version 2.2. ► Der Installer startet Apache 2.2 automatisch. Stoppen sie den laufenden Apache 2.2 Dienst manuell. ► Starten sie zur Kontrolle den 'alten' Apache 2.0 Dienst. Ihr Apache Server sollte genauso laufen wie gewohnt (normalerweise auf Port 80). |
►
Konfigurieren sie den neuen Apache 2.2 Server zur Arbeit auf einem anderen
Port, vorzugsweise 8080 oder 8088.
Führen sie anfangs keine anderen Änderungen der Konfiguration aus. ► Starten sie den Apache 2.2 Dienst. Die minimalistische Homepage ('Es klappt') sollte angezeigt werden, wenn sie am Browser zusätzlich zur Adresse den eingestellten Port angeben, z.B. http://localhost:8080 ► Konfigurieren und testen sie den neuen Server in aller Ruhe, während der alter Server die laufende Arbeit leistet. |
|
►
Nach erfolgreichem Testbetrieb werden beide Server abgeschaltet. ► Der 'neue' Server wird auf Port 80 konfiguriert, gestartet und getestet: Er sollte den alten Server vollkommen ersetzen. Damit ist der Parallel-Betrieb beendet. |
►
Einige Tage oder Wochen nach dem Abschalten wird der 'alte' Server endgültig
außer Betrieb genommen, d.h. gelöscht. ► Löschen sie dabei keinesfalls die Web-Daten - diese sollten sich ohnehin außerhalb des Server-Verzeichnisses befinden. |
Anmeldung von Apache-Webserver als Windows-Dienst |
|
| Voraussetzung: Apache Webserver wurde korrekt installiert. | Sie sollten den Unterschied zwischen einem Anwendungs-Programm und einem Dienst kennen: |
Anwendungs-Programme(Apache ist keines !):Der Start solcher 'gewohnter' Programme erfolgt durch Doppelklick oder über das Start-Menü. Die Programme öffnen Bedienungs-Fenster und werden per Maus und Tastatur gesteuert. Beispiele: Textverarbeitung, Kalkulation, Grafik, Spiele, .. |
Hintergrund-DienstApache ist ein Hintergrund-Dienst (Service), zeigt keine Fenster an, und kann durch Maus & Tastatur nicht gesteuert werden. Das wäre bei einem Server-PC (nur für Dienst-Programme) fatal, denn dort befindet sich normalerweise kein Mensch, der auf Meldungen reagieren könnte.Ein Dienst wird nicht wie ein Anwendungs-Programm gestartet. Er muss sich automatisch starten und beenden lassen, und darf keine "Fragen" stellen. Allfällige Ereignisse werden in Log-Dateien oder Datenbanken protokolliert, Warnungen werden als Mail an den Administrator gesendet. |
Start bei InstallationAlle neueren Installer starten den Apache Webserver bereits automatisch. Nach Installation läuft ihr Webserver bereits ! |
Sie sollten jedoch kontrollieren, ob der Start des Dienstes funktioniert hat. ► Weiter zum Test des Apache Servers. |
Manuelle Einrichtung als DienstDie manuelle Einrichtung ist nur dann notwendig, wenn ihr Installer Apache nicht als Dienst eingerichtet hat, oder wenn die Einrichtung entfernt wurde. |
Manuelle Installation: Öffnen sie ein Konsolen-Fenster
(Eingabeaufforderung) cmd.exe und wechseln sie ins Apache-Verzeichnis:
C:\> cd C:\Programme\Apache Software Foundation\Apache2.2\bin
Installieren sie Apache 2-Webserver als Service:
C:\Programme\Apache Software Foundation\Apache2.2\bin> apache -k install
|
| Nach erfolgter Einrichtung legen sie die Start-Eigenschaften fest und können den Apache Webserver starten. | ► Weiter zum Start & Stop des Apache Servers. |
Start & Stop von Apache-Webserver auf Windows |
|
|
Voraussetzung:
Apache Webserver wurde installiert und
als Dienst angemeldet.
|
|
Start und Stop mit Apache-Tray Programm
Mit neueren Apache-Versionen wird ein kleines Verwaltungs-Programm im System Tray
(ganz rechts unten am Bildschirm) installiert.Dieses Programm ist ideal für die Routine geeignet, z.B. zum Server-Neustart. Es kann auch mehrere Server verwalten, z.B. gleichzeitig laufende Versionen 2.0 und 2.2 des Apache-Servers oder des Tomcat Java-Servers. |
Mit Rechtsklick bietet das Mini-Programm die Option 'Open Services': Damit starten sie das allgemeine Dienst-Verwaltungs-Programm (nächster Absatz). |
Dienst-Verwaltungs-Programm:Alle installierten Hintergrund-Dienste auf Win-PC werden mit diesem Programm (detailliert) verwaltet: C:\WINDOWS\system32\services.msc
Sie können es u.a. mit Rechtsklick auf das Apache Tray-Programm (Absatz oben) öffnen.Das Programm zeigt eine Liste aller installierten Dienste. Die Apache-Server-Versionen 1, 2 und 2.2 finden sie unter den Namen
Apache
►
Mehrere Apache-Versionen können gleichzeitig installiert sein.
Auf jedem Port darf allerdings nur ein Server 'lauschen' (auf Anforderungen warten):Apache2 Apache2.2 Wenn alle Server am gleichen Port (80) lauschen, dann darf jeweils nur einer davon eingeschaltet sein. Wenn die Server auf unterschiedlichen Ports lauschen, dann können sie gleichzeitig in Betrieb sein, der gewünschte Port muss jedoch in der Browser-Adresszeile angegeben werden. |
Start-Eigenschaften:
Mit Rechtsklick auf einen Dienst sind dessen Eigenschaften zugänglich:
Jeder Dienst kann hier z.B. komplett abgeschaltet werden.Stellen sie die Start-Eigenschaften ein: Dienst entweder automatisch bei Systemstart starten, oder manuell (mehrere Möglichkeiten). Normale Webserver werden automatisch gestartet. Manueller Start und Stop mit dem Dienst-Verwaltungs-Programm: In der linken Fensterhälfte finden sie Links, mit denen sie jeden installierten Dienst manuell starten oder anhalten können. Achtung: Führen sie keine Änderung an anderen Diensten aus, deren Funktion sie nicht genau kennen ! |
|
Server-User:
Mit Klick auf die Registerkarte "Anwender" des
Dienst-Verwaltungs-Programms services.msc können sie den
User des Server-Programms einstellen. Das kann ein Systemkonto (account) sein,
oder ein beliebiges anderes Konto.Mit dem Windows Task Manager können sie jederzeit feststellen, welcher User den Server-Dienst betreibt (Standard ist SYSTEM ). |
Achtung: Anwender ist nicht die/der jeweilige Web-BesucherIn des
Servers, sondern jener User, welcher das Server-Dienst-Programm selbst ausführt.
Das hat Auswirkungen auf die Zugriffsrechte ! Falls sie kein/e System-SpezialistIn sind, wählen sie die Standard-Einstellung Anwender = Lokales Systemkonto . |
|
Konsolen-Programme:
Öffnen sie ein Konsolen-Fenster (Eingabeaufforderung) cmd.exe Ausgabe des aktuellen Status. Verwenden sie die Dienst-Namen apache, apache2, apache2.2 C:\> sc query apache2.2
Starten oder stoppen sie Apache:
C:\> net start apache2.2
C:\> sc start apache2.2 C:\> net stop apache2.2 C:> sc stop apache2.2 |
Die Programme net und sc können
alternativ an Stelle des Dienst-Verwaltungs-Programmes services
für Start / Stop / Restart des Apache Servers verwendet werden. Hinweis: Diese Befehle eignen sich für die Automatisierung. |
| Falls sie auf Probleme mit Start & Stop des Servers stoßen, versuchen sie es mit spezialisierten Werkzeugen. |
Mit dem Windows Task Manager | Prozesse können
sie jederzeit feststellen, ob der Dienst läuft:
ApacheMonitor.exe (System-Tray)
Apache.exe (Apache 2) httpd.exe (Apache 2.2) |
Test von Apache-Webserver |
|
|
Voraussetzung: Apache Webserver installiert, als Dienst angemeldet,
gestartet. Es ist kein Zufall, dass der Test vor der Konfiguration beschrieben wird:
Der Apache Webserver läuft meistens nach Installation problemlos. Sehen sie sich anschließend trotzdem die Konfiguration an und führen sie einige Anpassungen durch ! |
Die Tests werden zuerst direkt am Server-PC ausgeführt,
erst danach von anderen PC im lokalen Netzwerk (LAN). ♦ Im Kapitel Probleme dieser Seite finden sie Hinweise zur Lösung typischer Anlauf-Schwierigkeiten. |
Browser-Programm:Starten sie einen Browser, z.B. Firefox, M$IE, Mozilla, Netscape, Opera, Safari, ...Ihr Webserver sollte mit jedem gängigen Browser funktionieren. |
Ein Browser kann Webserver (nur) dann erreichen, wenn der Server am eigenen PC läuft, oder der PC über das Netzwerk Zugang bis zum Webserver hat. |
Proxy-Router:Das ist ein Dienstprogramm auf einem PC (meist ebenfalls als Proxy bezeichnet), welches zwischen dem lokalen Netzwerk (LAN) und dem Internet vermittelt und so den Web-Zugang koordiniert.Falls ihr PC das Internet über einen Proxy erreicht, dann muss in den meisten Fällen die Browser-Einstellung für den lokalen Apache-Webserver angepasst werden. Der Grund: Ihr eigener Apache-Webserver soll innerhalb des LAN direkt adressiert werden, die Anfragen dürfen nicht über den Proxy ins Internet laufen. Einstellung für M$IE (kann je nach Version unterschiedlich sein): Befehl Für Webserver am eigenen PC fügen sie dessen Adresse zu den allenfalls vorhandenen Einträgen dazu. Die eigene IP-Adresse erfahren sie entweder mit Konsolen-Befehl ipconfig oder sie geben die Standard-Adresse localhost bzw. 127.0.0.1 ein. Beide Adressen bezeichnen immer den lokalen PC, d.h. unterschiedliche PC, je nachdem wo diese Adresse verwendet wird. |
Auf allen anderen PC im LAN geben sie Name oder IP-Adresse jenes PC ein,
auf dem der Apache-Webserver läuft. Der System-Administrator kann auch dabei
behilflich sein und die Registrierung dieser Proxy-Ausnahme zentral ausführen. Achtung: Die Proxy-Ausnahme muss meist für jeden verwendeten Browser einzeln eingegeben werden. Für Firefox (Mozilla, Netscape ..) finden sie die Einstellung unter Befehl : Unabhängig davon führt ein Proxy-Dienst auch andere Aufgaben aus, z.B. das Zwischenspeichern (Caching) häufig verwendeter Webseiten. ♦ Details zu Router und Proxy-Server |
Homepage:Nach Installation ist normalerweise eine provisorische Startseite des Servers verfügbar.Sie befindet sich (je nach Version) z.B. hier: C:\Programme\Apache Software Foundation\Apache2.2\htdocs\index.html Öffnen sie diese nicht (!!!) direkt, z.B. mit Doppelklick auf das Datei-Icon - Sie umgehen dabei den Webserver und erhalten keine Aussage über dessen Funktion! Achten sie auf die Adresszeile ihres Browsers - Falsch !!! sind z.B. alle Adresszeilen, die so beginnen:
C:\ ... index.html
file:// ... index.html |
►
Wenden sie sich per HTTP
an den Webserver: Falls sich der Server am gleichen PC befindet, tragen sie in die Browser-Adresszeile ein: Bei einem Standard-Webserver sollten alle 3 Adressen funktionieren. Für entfernte Webserver tragen sie deren Name oder IP-Adresse ein: http://192.168.0.1
Ersetzen sie die Adresse durch die tatsächliche IP-Adresse des Webservers. |
Port:Auf einer einzigen Internet-IP-Adresse können viele verschiedene Internet-Dienste abgewickelt werden, z.B. Mail, Chat, Webseiten, etc. Daher wird zusätzlichg zur IP-Adresse der Port angegeben, das ist eine Zahl, welche jedem Interrnet-Dienst zugeordnet ist. Jeder Dienst verwendet zur Kommunikation einen anderen Port, so werden die Daten auseinander gehalten.Ein Webserver lauscht normalerweise auf Port 80 auf Anweisungen. Dieser Standard-Port muss nicht angegeben werden, die beiden folgenden Anfragen sind daher in der Praxis identisch: ♣ Tipp: Mit dem Konsolen-Programm telnet (Werkzeug) können sie eine Anfrage an einen beliebigen Port senden und feststellen, ob ein Programm darauf antwortet. |
Wenn wichtige Gründe vorliegen, kann ihr Webserver auch auf einem anderen Port auf Befehle horchen. Ein solcher Grund liegt vor, wenn sie am gleichen PC (!) einen weiteren Webserver betreiben. ► Der Standard-Webserver sollte immer auf Port 80 betrieben werden ► Weitere übliche Adressen sind z.B. 8080, 8088 oder 8888. Sie können verwendet werden, wenn sie noch nicht durch einem anderen Dienst besetzt sind. ► Wenn sie eine neue Server-Version testen, dann wird diese z.B. auf Port 8080 konfiguriert und ist vom Browser so erreichbar: |
|
Achtung - Gelegentlich sind (sparsame) Installer im Umlauf, welche keine Homepage
installieren. Das Verzeichnis
C:\Programme\Apache Software Foundation\Apache2.2\htdocs
ist dann leer, oder enthält zumindest keine Start-Datei index.htmlBeim Versuch, mit einem Browser zu verbinden, erhalten sie evtl. irreführende Meldungen (keine Zugriffsrechte, keine Startseite, ...). Erstellen sie in diesem Falle eine Minimal-Webseite (Muster rechts) und kopieren sie diese als index.html in das angeführte Verzeichnis. |
<html>
<!-- startseite index.html -->
<head>
<title>HomePage</title>
</head><body> <h1>Apache Startseite</h1>
</body></html> |
|
Index-Dateien in mehreren Sprachen:
Apache bietet je nach Version evtl. Start-Dateien in vielen Sprachen,
z.B. index.html.ca ... index.html.zh Für den lokalen Betrieb benötigen sie nur eine davon, vorzugsweise index.html.de |
►
Erzeugen sie eine Kopie der deutschen
Startseite index.html.de und ändern sie den Namen
auf index.html ► Entfernen sie alle anderen index.html.* Dateien (zunächst durch Verschieben in ein eigenes Verzeichnis, nach erfolgreichem Funktionstest durch Löschen) |
|
Web-Dateien:
Der Pfad zum eigenen Web wird vom Installer meist mit
C:\Programme\Apache Software Foundation\Apache2.2\htdocs
festgelegt oder vorgeschlagen. Ändern sie die Konfiguration erst nach einem erfolgreichen
Funktionstest ! Löschen sie niemals das Verzeichnis htdocs,
es dient zum Test bei Problemen mit den eigenen Webseiten.Windows versucht sie evtl. ins Abseits zu drängen, z.B. mit C:\Dokumente und Einstellungen\UserName\...
|
Beides ist für ein lokales Web am eigenen PC unhandlich. Am besten erzeugen sie ein leicht zugängliches Web-Verzeichnis mit einem einfachen Namen (ohne Umlaute oder Leerzeichen !!!), z.B. C:\Web\htdocs
und erstellen sie dort alle ihre Webseiten, beginnend mit
C:\Web\htdocs\index.html
Sehen sie unter 'Konfiguration',
wie man diese Änderung einträgt.
|
Firewall:Heute verfügt fast jeder PC über einen Firewall, das ist eine Software zum Schutz gegen unerwünschte Eindringlinge aus dem Netzwerk. Sie sollten damit rechnen, dass der Zugriff auf einen Webserver im lokalen Netzwerk (LAN) sowohl vom Server-PC selbst als auch von jedem einzelnen PC evtl. blockiert wird.Je nach Firewall-Software erfolgt die Freigabe auf unterschiedliche Weise, kann daher hier nicht vorgestellt werden. ▲ Mindestens für Anfragen vom eigenen PC müssen sie den Zugriff auf ihren Webserver freigeben. ▲ Für Anfragen aus dem eigenen LAN können sie den Zugriff auf ihren Webserver (Port 80, dazu evtl. Port 8080 für einen Tomcat-Server) bedenkenlos freigeben. |
▼
Wenn sie aus ihrem LAN keine Verbindung mit ihrem Webserver
aufnehmen können, und alle anderen Bedingungen erfüllt sind, dann können
sie die Firewall-Software kurzfristig abschalten - Das bringt Klarheit, ob der Zugriff
dadurch blockiert wird. ► Wenn sie ihren Webserver auch für Zugriffe aus dem weltweiten Internet freigeben wollen, dann sollten sie ihn besser auf einem Linux-PC aufsetzen, und vor Freigabe die Sicherheits-Maßnahmen genau studieren und ausgiebig testen. |
|
Im Kapitel Probleme finden sie Hinweise zu typischen Anlauf-Schwierigkeiten und zu deren Lösung. |
|
Probleme mit dem Apache Webserver |
|
|
Apache ist eines der stabilsten Programme und läuft nach Installation meist ohne
besondere Einstellung problemlos. • Andererseits ergeben sich oft typische Probleme bei Personen, die zum ersten Mal Apache einsetzen, die Konfiguration über Text-Dateien nicht gewohnt sind, oder überhaupt zum ersten Mal einen Webserver kennenlernen. |
•
Hier wird eine Auswahl solcher Probleme und Lösungs-Hinweise vorgestellt. • Verwenden sie zusätzlich die zahlreichen FAQ-Webseiten und Foren im Internet: Sie sind sicher nicht die/der erste mit dem bei ihnen aufgetretenen Problem, und die Chance ist sehr groß, dass sie Hinweise zur Lösung finden. |
| ► Führen sie jeden Test zuerst direkt am Server-PC aus. | Nur dann, wenn der Test am Server-PC funktioniert, hat es einen Sinn, die gleiche Funktion von einem anderen PC im lokalen Netzwerk (LAN) zu testen. |
Check-ListeKontrollieren sie, ob die Voraussetzungen (in der hier angegebenen Reihenfolge) erfüllt sind.:► Server installiert ► Homepage index.html vorhanden ► Server-Dienst angemeldet ► Dienst gestartet ► Firewall freigegeben oder kurzfristig abgeschaltet. |
►
Wiederholen sie einen fehlgeschlagenen Test nach
Server-Restart.
Das ist sinnvoll, wenn irgendwelche Änderungen ausgeführt wurden,
jedoch noch kein Neustart des Servers erfolgte. ► Wiederholen sie einen Test evtl. nach Neustart des Betriebssystems. Geringe Aussicht auf Erfolg ! |
|
Wenn sie vergessen haben, laufende Webserver vor der Installation abzuschalten, dann ergibt das immer Probleme. Das Ergebnis ist je nach Server und Version unterschiedlich. ▲ Der 'alte' Webserver sollte eigentlich noch laufen. ▼ Der neu installierte Apache Webserver lässt sich jedoch weder starten noch deinstallieren. |
►
Stoppen sie alle Webserver. Lassen sie andere unbekannte Dienstprogramme unverändert ! ► Wiederholen sie die Apache-Installation (Auf Anfrage 'für alle User auf Port 80'). Danach sollte der neu installierte Webserver laufen. ► Wenn sie nur einen Webserver betreiben wollen: Stellen sie dessen Start-Eigenschaften auf 'automatisch', die des anderen Webservers auf 'manuell' (Kapitel Start/Stop). ► Wenn sie beide Webserver (z.B. für einen Testbetrieb) parallel betreiben wollen, dann wird der Standard-Webserver auf Port 80 eingestellt, der Test-Server auf einen anderen freien Port, z.B. 8080 oder 8888. |
|
Wenn der Webserver nicht startet, obwohl offensichtlich alle Voraussetzungen erfüllt sind, dann liegt meistens ein Fehler in der Konfigurations-Datei vor. ► Neuere Versionen geben eine Fehlermeldung in einem Alarmfenster aus, wenn der Server nicht starten kann. ► Wenn sie dieses Problem nur vermuten, dann testen sie mit dem Windows Task Manager (Werkzeug), ob der Server läuft. ► In der Dienstverwaltung (Rechtsklick auf das Apache-Icon im System-Tray) muss der Status 'Gestartet' lauten. Man kann den Dienst durch Klick auf einen Link starten oder stoppen. ► Kontrollieren sie die Server-Konfiguration. Sie befindet sich hier: C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd.conf
Sehen sie sich jede einzelne von ihnen zuletzt durchgeführte Änderung genau an.
|
▲
Behebung: Schalten sie ihre Konfigurations-Datei durch Umbenennen ab und aktivieren
sie die Original-Konfigurations-Datei der Installation (Sicherungskopie). ▲ Wenn der Server nun erfolgreich startet, dann lag der Fehler in der Konfiguration. Vergleichen sie sorgfältig jede einzelne Abweichung ihrer fehlerhaften Konfiguration mit dem Original. Ändern sie immer nur wenige Details, niemals alle gewünschten Optionen auf einmal. Testen sie die Funktion nach jeder kleinen Änderung und Server-Neustart. ▼ Wenn der Server auch in der Original-Konfiguration nicht mehr startet, dann ist eine der grundlegenden Voraussetzungen nicht erfüllt. Lesen sie die Kapitel Installation und Anmeldung hier und in der Original-Dokumentation. Wenn schon zu viel verändert wurde: • Verschieben sie evtl. vorhandene eigene Dateien der Ordner htdocs und cgi-bin in andere Pfade. • Deinstallieren sie den Server mit • Löschen sie das gesamte Verzeichnis C:\Programme\Apache Software Foundation
•
Installieren sie Apache erneut.
|
|
Dieses Problem ist zwar selten, sie sollten jedoch kontrollieren, ob Apache korrekt als Dienst angemeldet ist. ► Öffnen sie die Dienstverwaltung (z.B. mit Rechtsklick auf das Apache-Icon im System-Tray). Ihr Server muss in der Liste erscheinen, der Status sollte 'Gestartet' lauten. |
▲
Wenn der Dienst angemeldet ist, erscheint er in der angezeigten Liste.
Versuchen sie, ihn durch Klick auf den entsprechenden Link zu starten oder zu stoppen. ▼ Wenn der Server nicht in der Liste aufscheint, versuchen sie die manuelle Anmeldung mit alternativen Werkzeugen |
|
Dieses Problem ist der häufigste Fehler in einer nicht funktionierenden Konfiguration: ► Vergleichen sie sorgfältig jedes Detail der rechts angeführten Anweisungen mit der Realität in ihrem Dateisystem: |
Anweisungen mit Pfad-Angaben
ServerRoot
DocumentRoot ScriptAlias <Directory ... > |
|
ServerRoot
Ist der Pfad zum Apache-Verzeichnis. Hier werden alle Programme, die Konfiguration usw.
gesucht. Standard ist der rechts gezeigte Pfad. Er sollte nicht geändert werden !
|
Pfad zum Apache-Verzeichnis
C:\Programme\Apache Software Foundation\Apache2.2\
|
|
DocumentRoot
Ist der Pfad zu den ihren HTML-Webseiten, Bildern usw. Im angegebenen Verzeichnis muss
mindestens die Datei index.html enthalten sein.Standard ist der rechts gezeigte Pfad. In der Praxis ist dieser Pfad immer geändert und zeigt auf ihr Web-Verzeichnis. ► Schalten sie die geänderte Zeile mit #-Kommentar ab und setzen sie den Pfad wieder auf das Original der Installation. ► Kontrollieren sie, ob dieses Verzeichnis noch existiert und wenigstens eine minimale Datei index.html enthält. |
(Installations)-Pfade zu den Webseiten:
C:\Programme\Apache Software Foundation\Apache2.2\htdocs\
|
|
ScriptAlias
Solche Anweisungen können mehrfach vorkommen. Sie definieren einen Kurz-Namen
für einen längeren String, meist für einen Pfad. Der Kurzname kann in
allen folgenden Anweisungen an Stelle des Originals verwendet werden.
|
Fehler in diesen Pfaden verhindern nur selten den Server-Start, können aber die Ausführung bestimmter Webseiten verhindern, z.B. von CGI-Scripts und -Programmen. |
|
<Directory>
Solche Anweisungen kommen mehrfach vor. Sie beginnen einen Block von Anweisungen,
der das Verhalten in einem bestimmten Verzeichnis festlegt.
|
► Kontrollieren sie, ob die im Befehl angeführten Pfade existieren und an die richtige Stelle weisen. Meistens befindet sich unmittelbar davor eine andere Anweisung, die zum gleichen Pfad zeigt, bzw. zeigen sollte. Stellen sie allenfalls die Standardwerte der Original-Konfiguration wieder her. |
|
Kontrollieren sie, ob sich in dem durch DocumentRoot definierten Verzeichnis eine 'Homepage' index.html befindet. ► Wenn diese Datei fehlt, defekt oder zu kompliziert ist, wird sie zumindest temporär durch eine Minimal-Webseite ersetzt. |
►
Öffnen sie diese Datei probeweise mit einem Browser (z.B. durch Doppelklick oder mit
Befehl ). Wenn keine oder eine fehlerhafte Webseite angezeigt wird, schalten sie die Datei durch Umbenennung ab und ersetzen sie durch eine Minimal-Webseite (siehe Beispiel im Kapitel Test dieser Seite). |
|
Kontrollieren sie, welcher Port in der Konfiguration angegeben ist. Die Zahlen-Angaben der beiden Anweisungen
Listen 80 ServerName MeinApache:80 |
►
Wenn ein anderer Port als 80 eingestellt ist, müssen sie das im Adressfeld
des Browsers angeben. Versuchen sie z.B. ihren Webserver so zu erreichen:
http://localhost:8080
▲
Wenn das funktioniert, ist das Port-Problem gelöst.
|
|
Test auf Port-Kollision:
►
Stoppen sie den Webserver, falls er läuft. Kontrollieren sie mit einem Browser und mit dem
Werkzeug-Programm
telnet, ob sie bei Anfrage auf Port 80 Antworten erhalten.► Wenn sie bei abgeschaltetem Webserver (irgend) eine Antwort erhalten, dann liegt eine Kollision vor: Ein anderes Programm lauscht auf dem gleichen Port auf Anweisungen. |
►
Wenn eine Port-Kollision vorliegt: Finden sie heraus, welches Programm (Dienst, Server) das sein könnte und schalten sie es probeweise ab: Ihr Webserver sollte nun funktionieren. ▲ Behebung: Eines der beiden Programme muss abgeschaltet oder auf einen anderen Port umgestellt werden, z.B. der Webserver auf Port 8080. |
|
►
Wenn keine Port-Kollision vorliegt, dann starten sie den Webserver
und wiederholen sie den Test
mit telnet Ein funktionierender Webserver sollte als Antwort eine Webseite oder zumindest eine Fehlerseite (auch eine Webseite !) senden. |
▲
Wenn als Antwort eine Webseite gesendet wird, dann liegt kein Port-Problem vor. ▼ Wenn keine Antwort erfolgt, dann ist der Server nicht installiert, nicht gestartet oder im Netzwerk nicht erreichbar. Bei hartnäckigen Problemen löschen und neu installieren. |
|
Wenn der Webserver sicher läuft (Kontrolle mit Task Manager ) und antwortet (Kontrolle mit telnet ), dann ► Fordern sie die Homepage an: http://localhost Dieser Test muss direkt am Server-PC ausgeführt werden ! Erhalten sie eine Fehler-Webseite (rechts) ? |
Server kann die Homepage nicht finden: ► Wenn sie eine Fehler-Webseite erhalten, dann ist vermutlich in der Anweisung DocumentRoot der Server-Konfiguration ein falscher Pfad eingetragen. Der Pfad muss in ihr Web-Verzeichnis weisen, darin muss sich eine Datei index.html befinden. ► Die Anweisung der Konfiguration DirectoryIndex index.html index.htm
sollte so aussehen wie angegeben. Schalten sie andere Versionen mit einem führenden
#-Zeichen ab.
|
|
Keine Proxy-Ausnahme eingetragen ? ► Wenn ihr PC über keinen eigenen Internet-Anschluss verfügt, sondern über einen Proxy-Server (Router) des lokalen Netzwerkes verbunden wird, dann ist die Proxy-Adresse in der Konfiguration ihres Browsers eingetragen: Der Proxy erhält alle Web-Anfragen ihres PC. Ihr eigener Webserver kann nur dann erreicht werden, wenn seine Adresse als Ausnahme in dieser Konfiguration eingetragen ist. Details dazu im Kapitel Test |
Falsche Proxy-Ausnahme eingetragen ? ► Wenn in der Browser-Konfiguration eine Ausnahme eingetragen ist: Kontrollieren sie, ob das tatsächlich die Internet-(IP)-Adresse ihres Webservers ist, z.B. mit dem Werkzeug-Programm ipconfig ► Die Ausnahmen müssen auf jedem Browser jedes PC im lokalen Netzwerk eingetragen werden. |
|
Kein Port oder der falsche Port ? ► Wenn ihr Server nicht auf Port 80 arbeitet, müssen sie in der Browser-Adresse den Port angeben. |
Details dazu im Absatz Port-Probleme dieses Kapitels. |
|
Wenn die Tests auf dem Server-PC funktionieren, jedoch nicht auf einem anderen PC im lokalen Netzwerk, dann liegt vermutlich ein Netzwerk-Problem vor. |
Die Ausführung von Netzwerk-Tests ergibt nur dann einen Sinn, wenn sie den Server direkt am Server-PC getestet haben und er dort korrekt läuft. |
|
Ping: Ist der Server-PC erreichbar ? ► Versuchen sie, den Server-PC mit dem Werkzeug-Programm ping zu erreichen. Dazu benötigen sie die Internet-(IP)-Adresse des Server-PC, die sie z.B. mit dem Werkzeug-Programm ipconfig erhalten, wenn es am Server-PC (!) ausgeführt wurde. ► Wiederholen sie den Ping in umgekehrter Richtung |
▲
Wenn der Server in kurzer Zeit (<1..10ms) antwortet, dann funktioniert zumindest die
grundlegende Netzwerk-Verbindung. Suchen sie den Fehler in der übergeordneten Software. ▼ Wenn sie keine Antwort erhalten, überprüfen sie die Hardware. |
|
Netzwerk-Hardware ?
▼
Wenn der Server auf einen Ping nicht antwortet, dann kann er vermutlich auch mit keinem
anderen Programm erreicht werden. Beheben sie das Netzwerk-Problem und wiederholen sie den
Test.► Moderne Netzwerk-Karten haben neben dem Netzwerk-Stecker grüne Leuchtdioden eingebaut. Sie leuchten (nur dann), wenn das Netzwerk korrekt angeschlossen ist. Das gleiche gilt für Hubs (Netzwerk-Verteiler): Die grüne Anzeige leuchtet nur dann, wenn die Hardware-Verbindung funktioniert. ▼ Wenn sie keine grüne Anzeige erhalten, tauschen sie das betreffende Netzwerk-Kabel. Nur in sehr seltenen Fällen sind andere Netzwerk-Komponenten defekt. |
▲
Wenn die Hardware funktioniert (grüne Anzeige), dann sollte auch ein Ping (s.o.)
gelingen. Falls nicht, haben sie wahrscheinlich beim Ping die falsche IP-Adresse verwendet.
Prüfen sie die Konfiguration der Netzwerk-Karte(n) (Systemsteuerung |
Netzwerkverbindungen | LAN-Verbindung | TCP/IP | Eigenschaften) ♣ Tipp: Versuchen sie alle Kombinationen: Ping vom Server zu verschiedenen PC und umgekehrt, zwischen den PC in jeweils beide Richtungen, usw. Das Ergebnis zeigt, wo der Fehler liegt. |
|
Firewall ?
Wenn der Ping zum Webserver funktioniert, der Webserver jedoch vom Browser nicht erreichbar
ist, dann kann ein Firewall den Zugang verhindern. Sowohl am Server als auch an jedem
einzelnen PC kann ein Firewall die Verbindung mit dem Webserver unterbinden.► Kontrollieren sie die Firewall-Einstellungen: Am Server sollten eingehende Anfragen aus dem eigenen Netzwerk auf Port 80 erlaubt sein. Jeder einzelne PC muss auf diesem Port ausgehende Anfragen stellen und auf verschiedenen Antwort-Ports empfangen dürfen. |
► Wenn die Firewall-Einstellungen korrekt erscheinen, können sie beide Firewalls (Server + Client-PC) probeweise für einige Minuten abschalten. Testen sie, ob jetzt die Verbindung klappt: ▲ Wenn ja, dann müssen sie die Firewall Einstellungen ändern, damit ist das Problem behoben. |
|
►
Wenn ein Firewall als Problem ausgeschlossen ist, dann führen sie die Test auf
Browser-Probleme (s.o.) durch. ► Versuchen sie, den Server mit telnet zu erreichen. |
► Notfalls verfolgen sie die Daten-Pakete mit einem Monitor-Programm über ihr Netzwerk. Das ist recht aufwändig, aber ein Nothelfer bei schwierigen Netzwerk-Problemen: Kontrollieren sie, ob GET-Anfragen (vom Browser oder von telnet) richtig abgesetzt werden und am Server eintreffen. Wenn das funktioniert dann verfolgen sie umgekehrt die vom Server gesendeten Antwort-Pakete bis zum anfragenden PC. |
Konfiguration von Apache-Webserver auf Windows |
|
|
Überlegen sie vor einer Änderung der Konfiguration ihr Ziel: ● Wenn der Webserver am eigenen PC arbeiten soll, dann soll er umfangreiche Zugriffsrechte erhalten, aber für jeden Zugriff von außen gesperrt sein. ● Wenn Apache als Webserver im lokalen Netz eingesetzt wird, dann wird er ganz auf den Bedarf der Arbeitsgruppe zugeschnitten und von außen (Internet) gesperrt. |
●
Wenn Apache als Test-Server für ein Web eingesetzt wird, das bei einem externen
Web-Provider läuft, dann wird er dessen Server möglichst ähnlich gemacht.
Es ergibt keinen Sinn, Optionen zu installieren, die der Provider nicht bietet. ● Wenn Apache als Arbeits-Server für freien Zugang aus dem Internet eingesetzt wird, dann sollten sie über längere Erfahrung und professionelle Kenntnisse verfügen. |
Konfiguration mit Text-DateiAuf Linux (der Apache-Geburtsstätte) ist es üblich, Server-Programme durch einfache Text-Dateien zu steuern. Diese lassen sich mit jedem beliebigen Text-Editor öffnen, ansehen oder ändern.Das Server-Programm liest beim Start seine Konfigurations-Daten von der Datei. Diese einfache, robuste Technik wurde auf die Windows-Version übertragen. |
Die zentrale Konfigurations-Datei befindet sich normalerweise hier: C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd.conf
|
Sicherungs-Kopie► Erstellen sie auf jeden Fall eine Sicherungskopie der Konfigurationsdatei, auch dann, wenn sie keine Änderungen durchführen wollen, z.B. |
Sicherungs-Kopie
C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd_conf.bak
|
Dokumentation (aller ! Änderungen):Zeilen-Kommentare sind durch # bezeichnet. Um Änderungen auch in langen Texten sofort zu finden, hat sich folgende Technik bewährt:► Fügen sie am Datei-Anfang eine Zeile mit einem Marker (z.B. ihrem Namen) ein # Änderungen sind mit MAYER bezeichnet.
|
►
Löschen sie niemals Originaldaten, sondern schalten sie diese
mit Kommentar- Zeichen # ab. Fügen sie ihren privaten Marker
bei jeder Änderung ein, z.B.
# Original:
Timeout 250
# Timeout 300 # Änderung durch MAYER: # Ende der Änderung
|
Wichtige Einträge in der Apache-Konfigurationsdatei: |
|
ServerNameName und Port des WebServers (Beispiel).Der Port (Zahl nach dem : ) muss identisch mit der Angabe in der Listen-Zeile (s.u.) sein. |
ServerName MeinApache:80 |
ListenPort, an welchem der Apache WebServer nach Aufträgen horcht (Standard=80).Wenn sie während einer Testphase mehrere Webserver gleichzeitig betreiben, dann muss jeder auf einem anderen Port horchen (z.B. 8080, 8088, 8888). |
Listen 80 |
DirectoryIndexName der Standard-Startseite. Wenn ein Browser nur die URL des Servers oder eines anderen Verzeichnisses ohne Angabe einer bestimmten Webseite anfordert, z.B.dann wird versucht, im Grundverzeichnis oder im verlangten Verzeichnis eine Datei (Homepage) mit den angegebenen Namen zu laden. DirectoryIndex index.html index.htm
Wenn sie mehrere Namen angeben, dann werden diese in der angeführten
Reihenfolge gesucht.Wenn sie PHP als Programmiersprache für dynamische Webseiten einsetzen wollen, dann ergänzen sie die Liste mit index.php (Achtung: Leerzeichen als Trennzeichen !) |
In der Original-Distribution sind evtl. Sprach-spezifische Startseiten (.de, .en, .fr, .it, ...) enthalten. Darauf kann man auf kleinen Systemen meist verzichten: Löschen sie alle Startseiten außer der de-Version und ändern sie deren Namen auf index.html Tipp: In jedem wichtigen Verzeichnis ihrer Web-Daten sollte sich eine Datei index.html befinden. Diese sollte entweder eine echte Webseite enthalten oder eine Umleitung zu einer solchen. So stellen sie sicher, dass BesucherInnen ihres Webs auch dann brauchbare Webseiten erhalten, wenn nur ein Verzeichnis (ohne Datei-Name) angefordert wurde. |
DocumentRootund die unmittelbar nachfolgende Anweisung <Directory>Im dort angegebenen Verzeichnis-Pfad sucht Apache nach allen angeforderten Webseiten (außer CGI-Programmen). Standard-Einstellung ist das Verzeichnis htdocs innerhalb des Apache-Verzeichnisses. Das ist nur für den ersten Test nach Installation sinnvoll. ► Organisieren sie ihr eigenes Web in einem anderen Verzeichnis, z.B. in: C:\Web\htdocs
Das angegebene Verzeichnis muss die Startseite
(Homepage) index.html enthalten.Es ist wichtig, Server-Programm und (Webseiten)-Daten zu trennen, das erleichtert insbesondere die Installation neuer Versionen. ► Lassen sie das Verzeichnis htdocs unverändert, man kann es bei Problemen als sichere Reserve für Tests verwenden. |
Umleitung auf ein eigenes Web-Verzeichnis:
# DocumentRoot "C:/Programme/Apache Software Foundation/Apache2.2/htdocs"
DocumentRoot "C:/Web/htdocs"
# <Directory "C:/Programme/Apache Software Foundation/Apache2.2/htdocs">
/div>
<Directory "C:/Web/htdocs">
► Das mit DocumentRoot angegebene Verzeichnis muss zumindest eine der mit DirectoryIndex (Absatz oberhalb) angegebenen Start-Dateien enthalten, z.B. index.html ▼ Apache startet zwar auch mit einem leeren DocumentRoot Verzeichnis, kann dann jedoch keine Webseite anzeigen. Dieser Fehler ist schwer zu diagnostizieren. |
ZugangsrechteBeschränken sie die Zugangsrechte so weit wie möglich, und erlauben sie nur so viel wie notwendig und sinnvoll. |
♦ Details dazu im Kapitel Zugangsrechte auf dieser Seite. |
|
Apache-Manual
In Apache 2.0 ist der Zugang zum mitgelieferten Manual aktiviert, in Apache 2.2 leider
nicht: So wird das nachgeholt:► Suchen sie den letzten Abschnitt der Konfigurations-Datei # Supplemental configuration Include conf/extra/httpd-manual.conf
und entfernen daraus ein allenfalls führendes Kommentar-#-Zeichen.Damit wird der gesamte Inhalt der angegebenen Datei an die Konfiguration angehängt. Sie finden die Datei im angegebenen Pfad innerhalb des Apache2.2-Verzeichnisses. ► Sichern sie die Konfigurations-Datei. ► Nach einem Restart des Webservers sollte das Manual verfügbar sein: Wenn der Webserver auf Port 80 konfiguriert ist, kann die Angabe des Ports wegfallen (2. Zeile). |
Weitere Optionen
Die Bestrebungen gehen dahin, die zentrale Konfigurations-Datei zu entlasten,
und optionale Teile in eigene Text-Dateien auszulagern.► Individuelle Einstellungen sind dann portabel, d.h. ein Update macht weniger Arbeit und es passieren weniger Eingabe-Fehler. Am Beispiel der Manual-Konfiguration (links) sehen sie, wie das funktioniert. ► Studieren sie die Dateien *.conf im Pfad conf/extra innerhalb des Apache2.2-Verzeichnisses. Jede dieser Dateien kann mit einem vorbereiteten Include-Befehl der zentralen Konfigurations-Datei eingebunden werden. ► Für einige dieser Optionen müssen abgeschaltete Module aktiviert werden, d.h. das Kommentarzeichen in der Zeile der Konfigurations-Datei wird entfernt. In den einzelnen *.conf Dateien ist genau angeführt, welche Module benötigt werden. ► Nach diesem Muster können sie eigene Konfigurations-Dateien erzeugen und einbinden (z.B. für PHP oder für die Perl-Dokumentation ). |
|
Damit Änderungen in der Konfiguration wirksam werden,
müssen sie den Webserver neu starten ! ♦ Weitere wichtige Einträge finden sie in den WAMP-Kapiteln "PHP" und "Perl". |
|
Zugangsrechte |
|
|
▲
Direkt nach Installation läuft der Apache-Webserver meist problemlos.
Danach sollten sie jedoch die Zugangsrechte einschränken und das Sicherheits-Risiko
verringern. ▼ Wenn der Server läuft, jedoch nicht erreichbar ist, kann das an zu stark eingeschränkten Zugangsrechten liegen. ► Beschränken sie die Zugangsrechte in jedem Fall so weit wie möglich, und erlauben sie nur so viel wie notwendig und sinnvoll. Dazu stehen hauptsächlich 3 Methoden zur Verfügung, die geschickt und zueinander passend angewendet werden müssen: |
Standard-Methoden der Zugriffs-Kontrolle:
Dateisystem
Firewall Apache-Konfiguration |
Zugang im DateisystemJener User, welcher den Webserver (das Dienstprogramm) betreibt, benötigt Zugangsrechte zu den Programmen (Apache, PHP, ..) und Dateien (Webseiten, Bilder, ..).Auf Win-Systemen ist das meistens Anwender = Lokales Systemkonto
(Dienst-Verwaltung auf dieser Seite),
jedenfalls nicht die AnwenderInnen, welche Webseiten anfordern !
|
Die Zugangsrechte für User unhd Gruppen werden je nach Betriebssystem eingestellt,
auf Win-Systemen z.B. mit dem komplizierten Konsolen-Befehl
C:\> CACLS
(Programm cacls.exe bzw. cacls.exe /? ).Nach der Installation läuft der Webserver meistens anstandslos. Ändern sie daher die Zugangsrechte - wenn überhaupt - erst nach einem erfolgreichen Test. |
Zugang durch FirewallNormalerweise sind Firewall-Dienste auf jedem PC installiert, d.h. sowohl auf dem Webserver als auch auf allen anderen PC im lokalen Netzwerk.In der Grund-Einstellung verbieten die meisten Firewalls jeden Zugriff von außen auf den PC. Dadurch gelangen keine Anfragen an einen Webserver ! |
Sie müssen daher den Firewall am Server lockern:
Wenn ein Webserver offenbar funktioniert, jedoch trotzdem nicht erreichbar ist,
schalten sie evtl. kurzfristig den Firewall ab, um zu testen, wo das Problem liegt.
Erlauben sie z.B. auf Port 80 den Zugang von allen PC ihres lokalen Netzwerks. |
Zugang in der Apache-KonfigurationHier kann und soll man die vom Dateisystem erlaubten Rechte weiter eingeschränken. Es ist nicht möglich, hier Rechte einzutragen, die vom Dateisystem verboten werden.In der Standard-Konfiguration wird zuerst der Zugang zu allen Verzeichnissen gesperrt: Danach werden für einzelne Verzeichnisse Zugangsrechte eingeräumt, am besten nur genauso viele wie tatsächlich notwendig: Details finden sie im Manual, das nach erfolgreichem Start am eigenen Webserver verfügbar ist: (Alternativ finden sie das Manual auch online im Apache-Web). |
Konfigurations-Datei httpd.conf Zuerst: Sperre aller Verzeichnisse:
<Directory />
Danach: Erlaubter Zugang einzelnen Verzeichnissen, z.B. zum Web-Verzeichnis:
AllowOverride None
</Directory>
Order deny,allow Deny from all
<Directory "C:/Web/htdocs">
AllowOverride None
</Directory>
Order allow,deny Allow from all |
Webserver im lokalen Netzwerk (LAN)Eine sehr empfehlenswerte Einschränkung für Webserver ist die Begrenzung nach IP-Adresse der AnwenderInnen: Ersetzen sie alle (!) Allow-Anweisungen wie rechts gezeigt.Danach reagiert ihr Webserver nur mehr auf Anfragen aus dem eigenen Netzwerk und ignoriert alle anderen Anforderungen. |
Zugang nur aus dem eigenen Netzwerk:
# Allow from all
Allow from 192.168.0.0/255.255.255.0
|
Webserver am eigenen PCist eine sinnvolle und sehr empfehlenswerte Einrichtung. Damit erhalten sie mit ihrem Browser Zugriff auf alle Programme und Daten des eigenen PC.Geben sie dem Webserver den Zugriff auf alle Verzeichnisse frei, so wie rechts gezeigt. Ersetzen sie alle Allow-Anweisungen durch Begrenzung auf die eigene IP-Adresse. In diesem Fall ist der Webserver ihres PC von außen nicht erreichbar, das ist durchaus erwünscht.. |
Eigener Zugriff auf alle Verzeichnisse, Sperre für jeden Zugriff von außen:
<Directory />
AllowOverride None
</Directory>
Order allow,deny Allow from 127.0.0.1/255.255.255.255 |
Zugang zu einem beliebigen VerzeichnisFast jeder Webserver muss auch Dateien außerhalb des Standard-Web-Verzeichnisses DocumentRoot anzeigen.► Erstellen sie zur Konfiguration eine eigene Text-Datei, z.B. C:\Programme\Apache Software Foundation\Apache2.2\conf\extra\zusatz.conf
►
Tragen sie in dieser Datei ein eigenes Alias für das betreffende
Verzeichnis ein. Das erleichtert die Adressierung am Browser und verhindert fremde Einsicht in
die Verzeichnis-Struktur.► Unmittelbar darauf sollte ein <Directory>-Block folgen, welcher die Zugriffsrechte für dieses Verzeichnis festlegt. ► Binden sie die zusätzliche Konfigurationsdatei ein: Öffnen sie die Datei C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd.conf
und fügen sie am Ende der Datei diese Zeile an:
Include conf/extra/zusatz.conf
|
Unten zwei Beispiele für diese Technik: + Das Perl-Manual wird von einem Webserver ideal verwaltet, muss aber an seinem Platz bleiben, weil dort die Doku aller zusätzlich installierten Module eingetragen wird. Daher wird ein Apache-Pfad dorthin gelegt, der mit Links (oder Eingabe der Adresszeile) von "/perldoku" zugänglich ist. + Die Apache Log-Datei kann (nur) für den Administrator nützlich sein. Auch eine Text-Datei kann mit einem Apache-Pfad (hier "/apachelog/access.log" ) eingebunden werden. Achten sie in diesem Fall besonders auf die Einschränkung der Zugangsrechte. |
|
Beispiel: Einbindung der Perl-Dokumentation • Fügen sie diesen Text in die Datei \conf\extra\zusatz.conf im Apache-Verzeichnis ein (legen sie die Text-Datei evtl. neu an):
Alias /perldoku "C:/Programme/perl/html"
•
Fügen sie diese Zeile am Ende der Datei \conf\httpd.conf
im Apache-Verzeichnis an.
<Directory "C:/Programme/perl/html">
Order allow,deny
</Directory>
Allow from all Include conf/extra/zusatz.conf
•
Führen sie einen Neustart des Apache-Servers aus.• Tragen sie diese Adresszeile in ihrem Browser ein: http://localhost/perldoku
|
Beispiel: Einbindung des Apache-Log • Fügen sie diesen Text in die Datei \conf\extra\zusatz.conf im Apache-Verzeichnis ein (legen sie die Text-Datei evtl. neu an):
Alias /apachelog "C:/Programme/Apache Software Foundation/Apache2.2/logs"
•
Fügen sie diese Zeile am Ende der Datei \conf\httpd.conf
im Apache-Verzeichnis an.
<Directory "C:/Programme/Apache Software Foundation/Apache2.2/logs">
<Files ~ "^access">
</Directory>
Order allow,deny
</Files>
Allow from 127.0.0.1/255.255.255.255 Include conf/extra/zusatz.conf
•
Führen sie einen Neustart des Apache-Servers aus.• Tragen sie diese Adresszeile in ihrem Browser ein: http://localhost/apachelog/access.log
|
Zugang mit .htaccess-DateiApache bietet die Möglichkeit, den Zugang zu jedem einzelnen Verzeichnis mit einer darin enthaltenen Datei namens .htaccess zu steuern. Diese Methode ist nur dann sinnvoll, wenn jemand für den Inhalt verantwortlich ist, jedoch keinen Zugang zur Server-Konfiguration hat. |
In dieser Datei gilt die gleiche Syntax wie für die gesamte Apache-Konfiguration,
zu finden auf (Alias)-Adresse /manual auf jedem Apache-Server. In einem Windows-Fenster wird dieser Datei-Name meist nicht erlaubt. Erstellen sie eine Text-Datei mit beliebigem Namen und ändern sie ihn in der Konsole (cmd.exe) mit Befehl rename |
Zugang aus dem InternetFür den allgemeinen Zugriff aus dem Internet sollten sie ihren Webserver nur dann freigeben, wenn sie über professionelles Fachwissen verfügen. Das Risiko unerwünschter Eindringlinge ist hoch und vor allem unnötig.Im Normalfall ist es besser, dafür einen Web-Provider einzusetzen.
|
Allerdings leistet der eigene Webserver gute Dienste bei der Entwicklung und beim Test eigener Webseiten. Professionelle Arbeits-Server sind meistens auf Linux aufgesetzt, das ist nach Erfahrung sicherer, stabiler und schneller. |
| ♦ Details auf der spezialisierten Seite zur Konfiguration von Apache-Verzeichnissen | |
Weiter mit Apache-Webserver |
|
| In kleinen lokalen Systemen kann ein gut eingerichteter Webserver viel zu einem hohen Gebrauchswert beitragen. | Hier einige Tipps für den Ausbau eines Webservers. |
Dynamische Webseiten:Ein wesentlicher Vorteil eines Webservers ist die Möglichkeit, dynamische Webseiten zu erstellen: Das sind Webseiten, die nach Anforderung der Anwender eigens durch ein Programm am Webserver (!) erzeugt werden. |
Dazu werden meist Programme in den Programmiersprachen Perl, PHP und / oder Python verwendet. ♦ Details zur Konfiguration von Perl oder PHP auf Windows. |
| Auch mit Java können dynamische Webseiten erzeugt werden. Java arbeitet normalerweise schneller als Perl oder PHP. | Für Java-Servlets wird jedoch (zusätzlich) ein eigener Server eingesetzt, z.B. der ausgezeichnete (kostenlose) OpenSource-Server Apache Tomcat. |
SQL-Server:Die ideale Ergänzung ist ein SQL-Datenbank-Server. Standard ist die für privaten Gebrauch kostenlose Software MySQL♦ Details zur Installation von MySQL auf Windows |
Datenbank-Server sind spezialisiert auf die schnelle und sichere Verwaltung von Daten. Die Bedienung der Datenbank erfolgt über (dynamische) Webseiten, deshalb besteht meist eine enge Zusammenarbeit zwischen SQL-DB-Server und Webserver. |
Homepage:Richten sie die Startseite ihres eigenen Webservers als Homepage auf allen verwendeten Browsern ein, z.B. + Diese Seite startet blitzschnell, und zwar auch ohne Internet-Zugang !+ Erstellen sie auf ihrer Homepage alle häufig gebrauchten Links. Ordnen sie diese nach sachlicher Zusammengehörigkeit: Das kommt dem menschlichen Denken wesentlich besser entgegen als die starre hierarchische Ordnung eines Dateisystems. Manche Einträge können z.B. mehrmals bei verschiedenen Themen aufscheinen. + Kopieren sie häufig verwendete Daten auf den eigenen Webserver. Der Zugriff erfolgt viel schneller, verbraucht kein Download-Volumen und funktioniert auch bei gestörtem Internet-Zugang. |
Beispiele:
+ Eine Seite mit Resourcen-Links: Die wichtigen Nachschlage-Werke, z.B.
SelfHTML, ...)
gehören per download in ihr Web-Verzeichnis, und ein Link dorthin auf die Resourcen-Seite.+ Auf ihrer Hobby-Seite sind die häufig verwendeten Links organisiert, aber natürlich auch der Zugang zu ihrer Sammlung, die in der eigenen Datenbank organisiert ist. + Archive (Texte, Briefe, Fax, Bilder, Musik, ...) sind am besten in ihrer Datenbank aufgehoben und werden per Link von ihrer Homepage aus verwaltet... + Mit einem Webserver am eigenen PC können sie beliebige Programme ausführen und haben (bei selektiver Freigabe) Zugriff auf alle Daten. ♦ Details in den Kapiteln Systemprogramme mit Programmiersprachen und ActiveX. |
Lokale Programme:Ihr Browser darf keine Programme starten, die auf ihren PC zugreifen. Das ist ein wichtiges Sicherheits-Prinzip. Auch in Webseiten enthaltene Programme (z.B. Java-Applets) haben keinen Zugriff auf ihren PC.WebServer-Programme z.B. in den Programmiersprachen Perl, PHP oder Python dürfen je nach erteilten Zugriffsrechten auf den Server-PC zugreifen. Wenn auf ihrem Arbeits-PC ein Webserver installiert ist, haben sie daher Browser-Zugriff auf ihren PC ! |
Ein lokaler Webserver bietet daher eine ideale Möglichkeit, mit Hilfe des Browsers (PHP)-Programme am eigenen PC auszuführen: Der Phantasie sind hier keine Grenzen gesetzt. Mit Java, Perl oder PHP können sie (nach Berechtigung) auf alle Verzeichnisse und Dateien zugreifen, neue Dateien erstellen, Programme starten, Mail senden und empfangen, Internetseiten öffnen und durchforsten, ... |
Spezielle Werkzeuge |
|||||||
|
Hier finden sie Hinweise zu Werkzeugen, die für normale Installation und Betrieb
nicht unbedingt notwendig sind. Sie sind schwieriger zu verstehen und aufwändiger in der Handhabung. |
Diese Werkzeuge werden eingesetzt, wenn die einfachen Standard-Methoden nicht ausreichen, um Probleme zu lösen. | ||||||
Task ManagerIm Windows Task Manager (taskmgr.exe) finden sie eine Liste aller laufenden Programme und Dienste. Starten sie das Programm z.B. mit den Tasten Strg-Alt-Entf und wechseln sie zum Register 'Prozesse'.Nur wenn sie eine Zeile mit den rechts gezeigten Daten (erste Zeile) finden, dann läuft der Webserver httpd.exe |
Taskmanager / Prozesse (vereinfacht)
|
||||||
Apache-Dienstprogramm:Im Lieferumfang des Apache-Servers befindet sich auch das Programm apache.exeDamit lässt sich der Server manuell als Dienst anmelden, aber auch starten und anhalten. Lesen sie die Dokumentation zu diesem Programm ! Die manuelle Einrichtung (install) ist nur dann notwendig, wenn ihr Installer Apache nicht als Dienst eingerichtet hat, oder wenn die Einrichtung entfernt wurde. Hinweis: Diese Befehle eignen sich für die Automatisierung. |
Öffnen sie ein Konsolen-Fenster (Eingabe-Aufforderung) cmd.exe
wechseln sie ins Apache-2-Verzeichnis:
C:\> cd C:\Programme\Apache Software Foundation\Apache2.2\bin So installieren sie Apache 2-Webserver als Service:
C:\Programme\Apache Software Foundation\Apache2.2\bin> apache -k install
So starten und stoppen sie den Server:
C:\Programme\Apache Software Foundation\Apache2.2\bin> apache -k start
C:\Programme\Apache Software Foundation\Apache2.2\bin> apache -k stop |
||||||
Konsolen-Programm NET:Dieses Programm ist auf neueren Windows-Betriebssystemen installiert.Öffnen sie ein Konsolen-Fenster (Eingabe-Aufforderung) cmd.exe Starten oder stoppen sie Apache 1:
C:\> net start apache
C:\> net stop apache |
Starten oder stoppen sie Apache 2:
C:\> net start apache2 C:\> net stop apache2 Das Programm net kann alternativ an Stelle des Programmes apache für Start / Stop / Restart des Apache Servers verwendet werden. Hinweis: Diese Befehle eignen sich für die Automatisierung. |
||||||
Konsolen-Programm SC:Dieses Programm (Service Controller) ist auf neueren Windows-Betriebssystemen installiert.Öffnen sie ein Konsolen-Fenster (Eingabe-Aufforderung) cmd.exe Ausgabe des aktuellen Status: C:\> sc query apache2.2
|
Start oder Stop von Apache 2.2:
C:\> sc start apache2.2 C:\> sc stop apache2.2 Das Programm sc kann alternativ an Stelle des Programmes apache für Start / Stop / Restart des Apache Servers verwendet werden. Hinweis: Diese Befehle eignen sich für die Automatisierung. |
||||||
Automatisierung:Dazu erstellen sie ein Script für den Windows-CMD-Interpreter.Erstellen sie eine leere Text-Datei, z.B.: C:\apache_start.cmd
Tragen sie die gewünschten Konsolen-Befehle als Text-Zeilen ein, z.B.
net start apache2
Dieses Script startet den Apache Server (Version 2).Das Script apache_start können sie auf verschiedene Arten "auslösen", z.B.: + Aus Windows durch Doppelklick. auf das Datei-Icon. + Aus dem Windows-Startmenü, wenn sie dort eine Verknüpfung zu dem Script anlegen. + In einem Konsolen-Fenster durch Eingabe von C:\> c:\apache_start
+ In anderen CMD-Scripts durch Einfügen der Befehlszeile
c:\apache_start
+ Mit dem Windows-Scheduler "Geplante Tasks" - das kommt allerdings
für Webserver kaum in Frage.Ein analoges Script-Programm C:\apache_stop.cmd
zum Stopp von Apache 2 Webserver enthält diesen Text:
net stop apache2 Alternativ können sie an Stelle des net-Programms auch die entsprechenden Befehle des apache-Programms (s.o.) einsetzen. Die Scripts lassen sich durch Befehle für Start & Stopp anderer Dienste ergänzen. Ein script apache_restart.cmd enthält nacheinander die Befehle für Start & Stopp. |
Die Umgebungsvariable PATH : Wenn sie ein Script starten wollen, müssen sie normalerweise den gesamten Pfad dorthin angeben: C:\> c:\programme\myprox\apache_start.cmd Wenn der Pfad zum Verzeichnis in der Umgebungs-Variablen PATH eingetragen ist, dann kann man das Script auch ohne Angabe des Pafdes starten. In diesem Fall genügt der Datei-Name, bei *.cmd-Dateien kann man auch die Datei-Endung weglassen: C:\> apache_start Der Kurz-Befehl funktioniert an jeder Stelle des Dateisystems, z.B. auch nach Verzweigung auf das Laufwerk D: D:\> apache_start ♦ Details zum Commandline-Interpreter und zu Umgebungs-Variablen auf Windows |
||||||
Konsolen-Programm ipconfigWenn sie die Internet-(IP)-Adresse ihres Servers oder PC nicht kennen, dann hilft dieser Befehl. Öffnen sie eine Konsole (cmd.exe) und geben sie den Befehl ipconfig ein.Das Programm zeigt für jeden einzelnen Netzwerk-Adapter die(momentan) zugeordnete IP-Adresse an. Gateway ist jene Adresse, an welche alle Anfragen geleitet werden, die auf Grund der Einstellung der Maske nicht ins lokale Netzwerk fallen - Das ist normalerweise der Proxy-Server, welcher ihr Netzwerk mit dem Internet verbindet. |
C:\> ipconfig
Ethernetadapter LAN-Verbindung IP-Adresse . . . . 192.168.0.12 Subnetzmaske . . . 255.255.255.0 Standardgateway. . 192.168.0.1 |
||||||
|
Tipp für SpezialistInnen: (Vorsicht, jede Änderung der Daten kann Betriebssystem, Programme oder Daten irreversibel beschädigen !) Eine Liste aller Netzwerk-Devices finden sie in der Registry-Datenbank HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces
Details zu den einzelnen Devices in
HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/{***}
(ersetzen sie *** durch die Bezeichnung eines Devices aus der Liste).
|
|||||||
Konsolen-Programm pingIst ein wichtiges Werkzeug zur Netzwerk-Analyse. Es stellt minimale Ansprüche und überprüft lediglich, ob überhaupt ein Kontakt zur angegebenen Internet-(IP)-Adresse möglich ist.Ping arbeitet auf allen gängigen Systemen, z.B. auch auf Linux. Ping arbeitet unabhängig vom Port ! |
Ping einer funktionierenden Netzwerk-Verbindung (vereinfacht)
C:\> ping 192.168.0.1
Ping einer nicht funktionierenden Netzwerk-Verbindung
Antwort von 192.168.0.1: Bytes=32 Zeit<1ms Antwort von 192.168.0.1: Bytes=32 Zeit<1ms
C:\> ping 98.76.54.32
Zeitüberschreitung der Anforderung Zeitüberschreitung der Anforderung |
||||||
PC-NameDie sichere Adressierung eines PC erfolgt immer mit seiner IP-Adresse.Alternativ kann auch der PC-Name verwendet werden (wenn die Namens-Auflösung korrekt funktioniert). |
Den PC-Namen erhalten sie mit Hilfe verschiedener Metrhoden Das Konsolen-Programm set zeigt ohne Argument alle Umgebungs-Variablen an. So wird selektiv der Name ausgegeben: C:\> set computername
Adressierung des eigenen PC mit IP-Adressen oder Name:
http://127.0.0.1
http://192.168.0.123 http://MeinPC |
||||||
Konsolen-Programm telnetTelnet arbeitet auf allen gängigen Systemen, z.B. auch auf Linux. Damit kann man u.a. eine gezielte Anfrage an eine Internet-(IP)-Adresse und einen bestimmten Port richten.So können sie testen, ob der gesuchte Port erreichbar (besetzt) ist oder nicht anwortet (unbesetzt). Öffnen sie ein Konsolenfenster (Startmenü | Ausführen | cmd) und geben sie den telnet-Befehl ein: |
Anwort eines besetzten Ports
C:\> telnet localhost 80
Die Antwort ist unterschiedlich je nach dem reagierenden Programm. Webserver löschen
die Anzeige - auch eine Antwort (siehe nächster Absatz).
C:\> telnet localhost 1234
Keine Antwort von einem unbesetzten Port.
Verbindungsaufbau zu localhost Port 1234 . . fehlgeschlagen |
||||||
|
Falls sich ihr Browser hartnäckig weigert, die Startseite des Webservers anzuzeigen,
können sie mit dem Konsolen-Programm telnet eine direkte Anfrage
(GET) an den Server stellen: Öffnen sie am Server-PC ein Konsolenfenster und geben sie ein: C:\> telnet localhost 80
Das Anzeige-Fenster wird gelöscht. Den nächsten Befehl müssen sie daher
"blind" eingeben, er fordert die Standardseite (homepage) vom Webserver an:
get /
Drücken sie noch 1-2mal die Return-Taste.Alternativ können sie den Namen einer bestimmten Webseite angeben: get index.htm
|
Falls ihr Apache Webserver korrekt arbeitet, dann wird der HTML-Quelltext der
angeforderten Seite (index.htm) zurückgesendet und auf der
Konsole angezeigt, d.h.
<html> . . . </html> Falls der Server arbeitet, die Seite jedoch nicht findet, wird der HTML-Quelltext der Standard-Fehlerseite angezeigt. Auch wenn sie keinen GET-Befehl eingeben und das Programm mit Strg-C und return abbrechen, wird die Fehler-Seite gesendet. Falls der Server nicht antwortet, bleibt ihnen noch die Möglichkeit, die Anfrage-Daten mittels eines Monitor-Programms (s.u.) zu verfolgen. |
||||||
Paket-Verfolgung mit Monitor-ProgrammenDiese Methode erfordert relativ viele Fachkenntnisse. Man verfolgt einzelne Daten-Pakete über das Netzwerk. Diese Mühe tut man sich nur an, wenn alle anderen Methoden keine Erklärung für Probleme liefern konnten. |
Allerdings zeigt ein Paket-Monitor jedes einzelne Byte an, auch den
HTTP-Header
eines Daten-Pakets. Einen ausgezeichneten kostenlosen (!) PacketMonitor bietet AnalogX zum Download an. |
||||||