Apache2

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index



Apache
Apache Webserver
Entwickler The Apache Software Foundation
Kategorie net-www
Lizenz Apache-2.0
Webseite www.apache.org

Dieses Howto wurde aus dem englischsprachigen Wiki übersetzt.

Gentoo macht es einfach Apache zu installieren, aber es gibt große Unterschiede zwischen den Distributionen. Dieses Howto wird die Unterschiede aufzeigen.

In Anlehnung an den Gentoo Weekly Newsletter vom 28. Februar 2005, "The Gentoo Apache Team has unmasked package updates that have been in the works for a while" ist eine detailierte Info hier verfügbar: http://dev.gentoo.org/~vericgar/doc/apache-package-refresh.html. Das erforderte, dieses Howto komplett neu zu schreiben.

Inhaltsverzeichnis

[Bearbeiten] Der Einstieg

emerge apache

Apache2 wird jetzt als stabil betrachtet und kann mit einem simplen emerge installiert werden Alle wichtigen Dateien befinden sich in /etc/apache2/ oder werden dorthin verlinkt. Manche Dateien beanspruchen /etc/apache2/conf als Option. Gentoo bietet /etc/conf.d/apache2 an, um diese Optionen automatisch beim Start mit /etc/init.d/apache2 und als rc-Scripts zu laden.

Apache2 läuft nun auf den meisten System ohne Probleme; sollte das nicht der Fall sein, ist der Unterabschnitt allgemeine Probleme vielleicht hilfreich.

DocumentRoot war standardmäßig /home/httpd/htdocs/, aber jetzt zeigt es auf /var/www/localhost/htdocs/.

[Bearbeiten] Apache starten

Um Apache2 von der Kommandozeile aus zu starten führt man "/etc/init.d/apache2 start" aus.

Um Apache2 schon zum Systemstart zu starten führt man "rc-update add apache2 default" aus. siehe auch rc-update

Teste ob Apache2 läuft mit:

"ps -ef | grep apache2"

(es sollen mehrere Apache2-prozesse angezeigt werden)

[Bearbeiten] Module

Wenn du Apache-Module installierst, ist eine Config-Datei gleich mitinstalliert. Um das Modul zum Laufen zu bringen, musst du /etc/conf.d/apache2 bearbeiten. In der Option APACHE2_OPTS wird -D Modulname hinzugefügt. Achte dabei darauf, dass alles hinter dem Gleichheitszeichen in Anführungszeichen steht. Beispiele: Laden des PHP4-Moduls:

APACHE2_OPTS="-D PHP4"

Laden des PHP4-Moduls und des SSL-Moduls

APACHE2_OPTS="-D SSL -D PHP4 -D SSL_DEFAULT_VHOST"

[Bearbeiten] SSL

Damit das Modul läuft, muss Apache mit dem USE-Flag SSL installiert worden sein.

  1. Damit eine SSL-Verbindung zu deinem Webserver aufgebaut werden kann, muss Apache auf den Port 443 hören.
    1. Überprüfe, ob in /etc/apache2/conf/modules.d/40_mod_ssl.conf die Zeile aus Punkt 2. schon vorhanden ist. Wenn dies der Fall ist, kannst du getrost den nächsten Punkt (1.2) übergehen.
    2. Füge /etc/apache2/conf/httpd.conf die Zeile Listen 443 bzw. Listen ip.ad.dr.ess:443 hinzu.
  2. Zusätzlich solltest du in /etc/apache2/conf/httpd.conf die Zeile NameVirtualHost ip.ad.dr.ess:443 eintragen.
  3. Jetzt ändere /etc/apache2/conf/modules.d/41_mod_ssl.default-vhost.conf und ersetze die Zeile <VirtualHost _default_:443> mit <VirtualHost *:443>
  4. Weise Apache noch an das Modul zu laden, indem du in /etc/conf.d/apache2 die Option mit -D SSL erweiterst. (siehe auch oben)
  5. Als letztes muss noch ein Zertifikat erstellt werden. Dazu führe folgende Zeilen auf deinen Server als root aus:
Code: Hinzufügen eines Zertifikates
cd /usr/lib/ssl/apache2-mod_ssl/
./gentestcrt.sh
mkdir /etc/apache2/conf/ssl
cp server* /etc/apache2/conf/ssl/
(bei net-www/apache-2.0.54-r12 : gentestcrt: /usr/sbin/gentestcrt.sh)

Damit die Änderungen aufgenommen werden, musst du den Apache-Server neu starten. Führe dazu /etc/init.d/apache2 reload aus. Du kannst deine Konfiguration überprüfen, indem du mit deinem Browser https://localhost öffnest. Gratulation zu deinem SSL-Server :)

[Bearbeiten] Bekannte Probleme

[Bearbeiten] Probleme bei der installation von PHP 4 (Stand 25. April 2005)

Wenn du PHP4 Installierst solltest du das Verzeichnis modules.d/ in etc/apache2/conf auf /etc/apache/conf verlinken. Dazu führe

Code: Verlinken des Verzeichnises für PHP4
mkdir /etc/apache
mkdir /etc/apache/conf
ln -s /etc/apache2/conf/modules.d/ /etc/apache/conf/modules.d/

Näheres zu diesen Problem im Forum: [1]

[Bearbeiten] Häufige Probleme

Siehe /var/log/apache2/error_log für Fehler.

  • Error: [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of ""
    • Wenn nach der Basis-Installation "mod_unique_id" aktiviert ist, kann es zu Problemen kommen und der Server startet nicht. Einfach das Modul in der /etc/apache2/conf/apache2.conf auskommentieren und das Problem ist behoben.
    • Der Fehler kann auch auftreten, wenn Hostname des Systems und ServerName in der httpd.conf nicht übereinstimmen.
  • Es ist nicht möglich eine sichere Verbindung aufzubauen.
    • nicht gelöst bis jetzt..
    • Ich glaube ich habe diesen Fehler. Er zeigt einen Mozilla (Firefox und Mozilla Suite) Fehlerdialog mit einer kleinen Nachricht, die ich nicht mehr genau weiß. Aber es enthielt den Fehlercode -8192 am Ende. Ich habe das gelöst, indem ich ein eigenes selbstsigniertes Zertifikat erstellt habe: openssl genrsa -out server.key 2048 und openssl req -new -x509 -key server.key -out server.crt -days 1095 im Verzeichnis /etc/apache2/conf/ssl/.
    • Das Problem tritt auch mit dem Internet Explorer auf. Deshalb sollte man, wie schon beschrieben, selbst signierte Zertifikate erstellen. Von gentestcrt.sh ist abzuraten.
  • Bekomme 403 Forbidden, wenn ich auf http://127.0.0.1/~you_user_name/ zugreifen will.
    • Versuche Apache zur Gruppe users mit usermod -g apache -G users apache hinzuzufügen, stelle sicher, dass die Rechte stimmen (siehe chmod) und aktualisiere die Seite.
    • Apache braucht Zugriff auf das Verzeichnis /home/username/public_html: chmod 755 /home/username/public_html
    • Zusätzlich braucht aber Apache Zugriff um überhaupt ins Home-Verezeichnis zu gelangen: chmod 711 /home/username
    • Das Modul UserDir ist dafür zuständig und es muss also geladen werden. Prüfe die /etc/apache/conf/apache2.conf auf die Zeile LoadModule userdir_module modules/mod_userdir.so. Wenn http://yoururl.com/~user aufgerufen wird, sucht Apache in ~user/public_html nach einem Index. Das verzeichnis muss also mindestens Leserechte für die Gruppe haben, je nach dem, mit welchen Rechten das Verzeichnis, bzw. der Apache läuft.
  • SSLCertificateFile: Datei /usr/lib/apache2/conf/ssl/server.crt existiert nicht oder ist leer.
    • Wenn du das Zertifikat erstellt und kopiert hast, stelle sicher, dass der Pfad /var/cache/apache2 existiert: mkdir /var/cache/apache2. Andernfalls kann Apache den Zertifikatspeicher nicht erstellen und der SSL-Service kann nicht gestartet werden. (geschrieben von Gal Diskin)
  • Fehler beim Starten von Apache: (2)No such file or directory: apache2: could not open error log file /usr/lib/apache2/logs/error_log.
    • Überprüfe ls -la /usr/lib/apache2/logs, um zu sehen, wohin es zeigt (sollte /var/log/apache2 sein). Wenn es nicht existiert, solltest du den Link selbst erstellen: mkdir /var/log/apache2
  • [warn] NameVirtualHost myhostname.com:443 has no VirtualHosts
    • Der Browser scheint sich zu verbinden, aber stoppt mit einm komischen Fehler.
  • [error] apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName (shutting down)
    • Der apache server startet anscheinend nicht mit einem ungültigen domain namen. Lösung: Den hostnamen auf localhost setzen in /etc/conf.d/hostname.

[Bearbeiten] Hinweise des Authors

Beim Arbeiten mit Apache schlage ich vor, die Konfigurationsdateien von Grund auf selber zu schreiben, die Standard-Dateien sind eher als Anleitung gemeint und nicht für produktiven Einsatz gedacht. Apache von Grund auf zu konfigurieren hört sich vielleicht schwer an, aber es ist weitaus sauberer so (siehe http://httpd.apache.org/docs-2.0/ [englisch] für Hilfe ). -- Thrasher 13:15, 20 Mar 2004 (EST)


Nein, ich bin dagegen! Wenn man einen Produktivserver aufsetzt, ist es sinnvoll, sich so weit wie möglich am Standard zu orientieren. Vor allem wenn es mehrere Administratoren, wie in allen größeren IT-Abteilungen, sollte das System dem allgemeinen Standard entsprechen, damit sich jeder schnell zurechtfindet. Die Default-Konfigurationsdateien stammen ja meist von den Entwicklern selbst und die kennen ihr Programm am besten! Daher sind die meisten Default Einstellungen nach meiner Erfahrung recht gut. 07.05.2007 (Lungo).

Diesem Artikel ist eine Todo-Liste in der Diskussionsseite beigefügt. - Du kannst uns helfen, diesen Artikel zu erweitern, indem du die Punkte auf der Liste abarbeitest.