71223_7701.jpg

WWW für alle

Grundkonfiguration des Apache-Webservers

01.05.2004
Äußerst populär und daher bei fast allen Distributionen standardmäßig dabei – der Apache-Webserver ist ein Paradebeispiel für Open-Source-Software. Doch die Ernüchterung folgt auf den Fuß, denn seine Konfiguration wirkt auf den ersten Blick sehr umfangreich und dadurch kompliziert. Dieser Artikel gibt erste Hilfe.

Webserver stehen zumeist im Rechenzentrum; der Zugriff darauf erfolgt über das Internet. Wer sich jedoch in das Abenteuer namens "Der eigene Webserver" stürzen möchte, tut gut daran, sich zunächst auf dem eigenen Computer mit der Software vertraut zu machen.

Es gibt auch andere Gründe, auf dem eigenen Arbeitsplatzrechner einen HTTP-Daemon zu betreiben: Eigene Web-Projekte lassen sich so stressfrei erarbeiten und testen, und so manche nützliche Anwendung funktioniert nur, wenn ein Webserver im Hintergrund werkelt.

Wenn aber ein eigener Apache läuft, dann sollte man wissen, wie man ihn konfiguriert und wo die relevanten Dateien liegen. Schließlich will man nicht einfach so Dateien ins Web stellen und mit einem offenen Scheunentor böse Buben auf den eigenen Rechner locken, sondern auch wissen, was dann passiert und wer alles auf die Inhalte zugreift. Nicht zuletzt kann man anderen Usern über Passwort-geschützte Bereiche Zugriff auf wichtige Inhalte erlauben, ohne dass gleich der gesamte Datenbestand weltöffentlich wird.

Den Apache-Webserver gibt es in zwei Entwicklungsreihen: den älteren, aber weiterhin als "Stütze des Webs" fungierenden Apache 1.x (aktuellste Version: 1.3.30) sowie die modernere 2.x-er Reihe [1] (zu Redaktionsschluss bei 2.0.49 angelangt). Teilweise liefern selbst aktuelle Distributionen noch ältere Ausgaben mit. Für Einsteiger ist es jedoch unerheblich, welche Entwicklungsreihe installiert ist; in den wichtigsten Konfigurationspunkten unterscheiden sie sich nämlich nicht.

Was läuft?

Ob direkt bei der Installation eines Linux-Systems oder nachträglich – ist die Entscheidung für den Webserver gefallen, nimmt man am besten das Installationstool der jeweiligen Distribution her, um die gewünschten Apache-Pakete auszuwählen und einzuspielen. Je nach Distribution gehören zum Basis-Paket zusätzlich PHP oder eine Reihe Perl-Module, die man nach Belieben (und abhängig vom Einsatzzweck des Servers) installieren kann.

Einmal ins System eingespielt, vergewissert man sich, dass der Server läuft. Mit der Standard-Konfiguration sollte er sich ohne Probleme starten lassen. So zeigt

ps waux | grep httpd

an, wieviele Instanzen des Webservers laufen. Beim Apache heißt der Webserver-Dämon httpd und arbeitet im Hintergrund. Er ist es, der beim Starten des Webservers als erster Prozess angestoßen wird. Erst später kommen je nach Konfiguration (und je nach der Anzahl der Zugriffe auf den Server) weitere httpds als Kind-Prozesse hinzu. Daher kann es sein, dass ps jede Menge httpd-Einträge anzeigt. Sieht man keinen einzigen, dann läuft auch kein Webserver.

Wenn der Distributor den Server nicht bereits nach der Installation aktiviert, gibt es zwei Möglichkeiten, den Apachen zu starten – und natürlich auch zu stoppen. Einmal findet sich bei guten Distributionen im Verzeichnis /etc/init.d/ ein Start-Stopp-Skript, zum anderen gehört das Tool apachectl, das etwas mehr Optionen anbietet, zum Lieferumfang.

Ersteres startet den Server nach dem Booten mit dem Befehl

/etc/init.d/apache start

und beendet ihn beim Herunterfahren des Rechners mit

/etc/init.d/apache stop

Wer es von Hand auf der Kommandozeile aufruft, kann ihm statt start oder stop auch die Argumente restart bzw. reload mit auf den Weg geben. Der Unterschied zwischen diesen beiden besteht darin, dass beim Reload nur die Konfigurationsdatei neu eingelesen wird, während Restart einen bereits laufenden Apachen zuerst runterfährt, um ihn danach wieder zu starten. Läuft bislang kein Server, wirkt restart wie start.

Mit den Argumenten start, stop und restart kennt apachectl ähnliche Optionen wie das Start-Stopp-Skript. Zum Neuladen der Konfiguration kommt jedoch der Befehl

apachectl graceful

zum Einsatz. Bekommt der Systemverwalter dabei die Antwort command not found, gibt man den Pfad zum Programm mit an:

/usr/sbin/apachectl configtest

Die Option configtest macht nichts weiter, als die Konfiguration zu testen, aber das ist sehr hilfreich.

Wo liegt das alles?

Klappt das Starten und Stoppen, macht man sich auf die Suche nach der Konfiguration. Dabei wird man oft das Gefühl nicht los, die wichtigen Dateien und Verzeichnisse seien überall auf der Festplatte verstreut, aber nie da, wo man sie vermutet. Dies hat zum einen historische Gründen, zum anderen liegt es aber auch daran, dass sich die Experten über die passenden Plätze streiten.

Bei Suse 9.0 beispielsweise findet man die Konfigurationsdateien in /etc/httpd/ und die Daten-Verzeichnisse der Webpräsenz unter /srv/www/, während der httpd im Verzeichnis /usr/sbin/ liegt. Andere Distributionen sammeln die Web-Verzeichnisse unter /usr/local/apache oder /usr/local/httpd; teilweise liegen dort auch Konfigurationsdateien oder Programme.

Leider ist es wichtig zu wissen, wo sich die Konfigurationsdateien befinden und wo die Web-Verzeichnisse untergebracht sind, weshalb der Anwender um eine kleine Suchaktion nicht herumkommt. Glücklich sind die, denen ps waux | grep httpd etwas in der Art von httpd -f /etc/httpd/httpd.conf anzeigt: Sie können sich die weitere Suche sparen und wissen nun, dass die Konfigurationsdateien unter /etc/httpd/ zu finden sind. Alle anderen (und alle, die es genauer wissen wollen) schauen sich die Ausgabe des Befehls httpd -V einmal genauer an (Listing 1).

Listing 1

Der Apache verrät sich

rechner:~ # httpd -V
Server version: Apache/1.3.28 (Linux/SuSE)
Server built:   Oct 29 2003 19:51:11
Server's Module Magic Number: 19990320:15
Server compiled with….
 -D EAPI
 -D EAPI_MM
 -D EAPI_MM_CORE_PATH="/var/lib/httpd/mm"
 -D HAVE_MMAP
 -D HAVE_SHMGET
 -D USE_SHMGET_SCOREBOARD
 -D USE_MMAP_FILES
 -D HAVE_FCNTL_SERIALIZED_ACCEPT
 -D HAVE_SYSVSEM_SERIALIZED_ACCEPT
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D DYNAMIC_MODULE_LIMIT=128
 -D HARD_SERVER_LIMIT=2048
 -D HTTPD_ROOT="/srv/www"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="/var/run/httpd.scoreboard"
 -D DEFAULT_LOCKFILE="/var/run/httpd.lock"
 -D DEFAULT_ERRORLOG="/var/log/httpd/error_log"
 -D TYPES_CONFIG_FILE="/etc/httpd/mime.types"
 -D SERVER_CONFIG_FILE="/etc/httpd/httpd.conf"
 -D ACCESS_CONFIG_FILE="/etc/httpd/access.conf"
 -D RESOURCE_CONFIG_FILE="/etc/httpd/srm.conf"
rechner:~ #

Damit erfahren sie neben der Versionsnummer (1.3.28) und der verwendeten Distribution (Suse) eine Menge darüber, in welchen Verzeichnissen der Server welche Daten vermutet und mit welchen speziellen Optionen das Programm übersetzt wurde. Für uns sind vor allem die Zeilen ab -D HTTPD_ROOT von Interesse. Als "Server Root" bezeichnet man das Oberverzeichnis für die Webserver-Dateien, für die kein anderer Pfad spezifiziert wurde, im Beispiel unter /srv/www/. Die Prozess-Identifikationsnummer (PID) des laufenden Servers lässt sich der Datei /var/run/httpd.pid entnehmen. Fehlermeldungen landen in /var/log/httpd/error_log, und sämtliche Konfigurationsdateien liegen unter /etc/httpd/. Alle anderen Merkmale können wir ignorieren.

Zwei davon sind die Konfigurationsdateien in ACCESS_CONFIG_FILE und RESOURCE_CONFIG_FILE. Damit hat es folgendes auf sich: Vor Jahren verabschiedeten sich die Apache-Entwickler von den bis dato verwendeten Dateien access.conf und srm.conf; stattdessen landete die gesamte Konfiguration in der Datei httpd.conf, vor allem aus Gründen der Übersichtlichkeit. Mittlerweile entpuppt sich httpd.conf jedoch als so vollgestopft mit Konfigurationspunkten, dass einige Distributionen Teile der Konfiguration wieder in eigene Dateien auslagern und dann mittels eines sogenannten Include wieder einbinden. Für einfache Webserver reicht es aber in jedem Fall, lediglich httpd.conf zu betrachten.

Abbildung 1: Sobald der Apache läuft, kann man mit dem Browser zumindest die Default-Startseite abrufen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Web-Server Apache 2
    Das Herzstück eines typischen Internet-Servers bildet ein Programm, das WWW-Seiten anbietet. Weltweit am häufigsten genutztes Exemplar dieser Gattung ist der Apache-Web-Server, dessen Entwickler kürzlich die Version 2 zur allgemeinen Verwendung freigaben.
  • tHTTPd
    Sie wollen auf die Schnelle ein Verzeichnis freigeben, auf das andere per Web-Browser zugreifen können? Dafür extra den Apache-Server zu starten, hieße, mit Kanonen auf Spatzen zu schießen. Einfacher geht's mit tHTTPd.
  • MoinMoin-Wiki
    Bei der gemeinsamen Arbeit an einem Projekt ist es sinnvoll, die Ideen und lose Fäden an einer zentralen Stelle zu sammeln. Wikis sind für so einen Zweck wie geschaffen.
  • PHP installieren und konfigurieren
    Im Web gibt es unendlich viele PHP-Programme: Web-Fotogalerien, -Groupware und sogar Applikationen, die direkt auf der grafischen Oberfläche laufen. Den PHP-Interpreter zu installieren und zu konfigurieren, ist manchmal recht aufwändig.
  • Apache-Projekt beseitigt drei Sicherheitslücken im HTTP-Server
    In Version 2.2.14 des HTTP-Servers Apache hat das Projekt maßgeblich Fehlerbereinigungen aufgenommen.
Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...