Home / LinuxUser / 2004 / 05 / Grundkonfiguration des Apache-Webservers

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1389 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...