Apache2
Aus Gentoo Linux Wiki
| 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 code> 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 code>" aus.
Um Apache2 schon zum Systemstart zu starten führt man "rc-update add apache2 default code>" 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" code>
Laden des PHP4-Moduls und des SSL-Moduls
APACHE2_OPTS="-D SSL -D PHP4 -D SSL_DEFAULT_VHOST" code>
[Bearbeiten] SSL
Damit das Modul läuft, muss Apache mit dem USE-Flag SSL installiert worden sein.
- Damit eine SSL-Verbindung zu deinem Webserver aufgebaut werden kann, muss Apache auf den Port 443 hören.
- Überprüfe, ob in
/etc/apache2/conf/modules.d/40_mod_ssl.conf code> die Zeile aus Punkt 2. schon vorhanden ist. Wenn dies der Fall ist, kannst du getrost den nächsten Punkt (1.2) übergehen. - Füge
/etc/apache2/conf/httpd.conf code> die ZeileListen 443 code> bzw.Listen ip.ad.dr.ess:443 code> hinzu.
- Überprüfe, ob in
- Zusätzlich solltest du in
/etc/apache2/conf/httpd.conf code> die ZeileNameVirtualHost ip.ad.dr.ess:443 code> eintragen. - Jetzt ändere
/etc/apache2/conf/modules.d/41_mod_ssl.default-vhost.conf code> und ersetze die Zeile<VirtualHost _default_:443> mit <VirtualHost *:443> code> - Weise Apache noch an das Modul zu laden, indem du in
/etc/conf.d/apache2 code> die Option mit-D SSL code> erweiterst. (siehe auch oben) - 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 code> aus. Du kannst deine Konfiguration überprüfen, indem du mit deinem Browser https://localhost code> ö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/ code> in etc/apache2/conf code> auf /etc/apache/conf code> 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 code> 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 code> - Zusätzlich braucht aber Apache Zugriff um überhaupt ins Home-Verezeichnis zu gelangen:
chmod 711 /home/username code> - 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.
- Versuche Apache zur Gruppe users mit
- 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.
