Apache/Schnellstartanleitung
aus openSUSE, der freien Wissensdatenbank
< Apache
Dieses Dokument beschriebt, wie Sie ihren Server so schnell wie möglich einrichten und zum Laufen bringen. Es ist keine umfassende Einführung in Web-Server, sondern nur eine schnelle Schritt-für-Schritt-Referenz.
Allgemeine Einrichtung des Systems
- Konfigurieren Sie ihr Netzwerk.
- Stellen Sie sicher, dass alle Komponenten aktuell sind, indem Sie regelmäßig die Online-Aktualisierung von YaST durchführen.
Synchronisieren der Zeit
Teile des HTTP-Protokolls hängen von einer korrekten Zeit ab.
- Konfigurieren Sie ihr System als NTP-Client, entweder mit dem YaST-Modul NTP-Einrichtung oder durch Bearbeiten von /etc/ntp.conf (fügen Sie einfach einen Servernamen hinzu) und das starten Sie es durch rcntp start, richten Sie es mit chkconfig -a ntp für den Automatischen Start ein.
Firewall
- Wenn Sie eine Firewall in Betrieb haben, dann sorgen Sie dafür, dass Port 80 geöffnet ist, damit der Server auf ihrer Maschine erreichbar ist.
Starten Sie den Server und konfigurieren Sie den automatischen Start beim Booten
- rcapache2 start
- chkconfig -a apache2
Fügen Sie Internetseiten hinzu
- Standardmäßig ist der DocumentRoot unter /srv/www/htdocs
- Wenn Sie Dokumente an anderer Stelle haben und Sie bspw. mit Alias irgendwo "/Pfad/nach/Irgendwo" verknüpfen, dann sollten Sie auch <Directory /Pfad/nach/Irgendwo> ... </Directory> nutzen, um die Zugriffsrechte und Optionen für dieses Verzeichnis zu definieren, da ein Zugriff auf das gesamte Dateisystem standardmäßig blockiert wird. Siehe auch http://httpd.apache.org/docs/2.2/de/mod/core.html#directory
Gehen Sie durch /etc/sysconfig/apache2:
- Prüfen Sie die zu ladenden Module (APACHE_MODULES="..."). (Können auch mit dem Kommando a2enmod -l angezeigt werden.)
- Fügen Sie "php5", "perl" oder andere benötigte Module je nach Bedarf zu APACHE_MODULES hinzu. Module können auf einfache (Debian-kompatible ;) Art auf der Kommandozeile aktiviert/deaktiviert werden:
a2enmod php5
a2dismod php5 - Es gibt außerdem das Kommando a2enflag, um APACHE_SERVER_FLAGS zu ändern.
- Starten Sie den Server neu (rcapache2 restart).
Wo fügen Sie ihre eigene Konfiguration ein
- Fügen Sie bspw. /etc/apache2/httpd.conf.local und ändern Sie APACHE_CONF_INCLUDE_FILES in /etc/sysconfig/apache2, bspw. APACHE_CONF_INCLUDE_FILES="httpd.conf.local".
- Um die Hierarchie und den Aufbau aller einbezogenen Dateien zu verstehen, lesen Sie die Kommentare am Anfang von /etc/apache2/httpd.conf.
- Wenn Sie unbedingt die alte, einzelne, 40KB große, monolithische Konfigurationsdatei bevorzugen, die gibt es auch noch! Einfach:
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf.dist cp /usr/share/doc/packages/apache2/httpd-std.conf-prefork /etc/apache2/httpd.conf
rcapache2 restartVirtuellen Host hinzufügen
Siehe auch http://httpd.apache.org/docs/2.2/de/vhosts/name-based.html
- Bearbeiten Sie /etc/apache2/listen.conf. Es ist der passende Ort zum Hinzufügen der NameVirtualHost-Direktiven.
- Kopieren Sie die kommentierte Vorlage /etc/apache2/vhosts.d/vhost.template nach /etc/apache2/vhosts.d/ihrhost.conf
- Passen Sie /etc/apache2/vhosts.d/ihrhost.conf ihren Bedürfnissen an.
- Alterntiver Ansatz: Fügen Sie die NameVirtualHost-Direktive und den <VirtualHost>-Container einfach ihrer einzelnen Konfigurationsdatei hinzu, wenn Sie eine haben (wie httpd.conf.local, wie oben beschrieben).
- Wenn Sie sich unsicher sind, wie Apache ihre vhost-Konfiguration interpretiert, nutzen Sie immer httpd2 -S. Falls SSL im Spiel ist, führen Sie statt dessen httpd2 -S -DSSL aus -- wie auch für andere nötige Definitionen.
- Der "Standardserver", der auf Anfragen antwortet, die nicht von anderen vhosts behandelt werden, ist immer der zuerst definierte. Wenn Sie einen bestimmten "Standardserver" für solche Anfragen wollen, müssen Sie diesen als ersten in ihrer Konfiguration setzen. Daraus folgt, dass, wenn ihre Konfiguration auf mehrere Dateien verteilt ist, wie /etc/apache2/vhosts.d/*.conf, Sie ihn einfach _default.conf nennen, oder bspw. _192.168.0.1.conf wenn Sie es über die IP-Adresse machen. Dann wird dieser als erster eingelesen.
PROBLEMLÖSUNG -- falls alles nicht funktioniert
- Staten Sie tail -F /var/log/apache2/*_log & in einer Root-Shell.
- Reproduzieren Sie das, was nicht funktioniert (indem Sie Apache starten, Anfragen durchführen, oder was auch immer) und schauen Sie sich die Ausgabe in den Protokollen an.
- Wenn Sie einen Fehler vermuten, nutzen Sie http://bugzilla.novell.com.
Mehr über die Konfiguration lernen
- Konsultieren Sie http://localhost/manual (falls das Paket apache2-doc installiert ist) oder http://httpd.apache.org/docs/2.2/de/ (die Online-Version).
- Lesen Sie die Dokumentation unter /usr/share/doc/packages/apache2/ (wo Sie auch Beispielkonfigurationsdateien finden).
Bauen von Dritt-Modulen
- Installieren Sie apache2-devel (und natürlich auch gcc und andere notwendige Entwicklungswerkzeuge).
- Nutzen Sie eins der folgenden:
apxs2 -- um ein Modul für alle MPM-Typen zu bauen apxs2-prefork -- um ein Modul für das Prefork-MPM zu bauen apxs2-worker -- um ein Modul für das Worker-MPM zu bauen
(siehe man 8 apxs2). In den meisten Fällen können Sie einfach apxs2 nutzen, die bekannteste Ausnahme davon ist mod_php4. Die Nutzung von apxs2-prefork wird dann eine versehentliche Nutzung des Moduls mit dem Worker-MPM verhindern. Ein paar wenige Module müssen außerdem Interna über das MPM erfahren, sie versuchen dann mpm.h einzubinden und müssen mit apxs2-<mpmname> gebaut werden.
Typisches Beispiel:
# apxs2 -c -i -a mod_foo.c -c kompiliert das Modul -i installiert es an der richtigen Stelle -a aktiviert es durch Ausführen von 'a2enmod mod_foo'
- Wenn das Bausystem des Moduls keinen Bau mit apxs2 erlaubt, ntuezen Sie zumindest CFLAGS=$(apxs2 -q CFLAGS) um die richtigen Compiler-Flags für ihre Apache-Installation festzustellen.
Siehe auch
- Apache für weitere Anleitungen und Informationen zum Apache Web-Server.

