Apache installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
[[Kategorie:Installationsanleitungen]]
[[Kategorie:Installationsanleitungen]]
[[Kategorie:eigene Daemons]]
[[Kategorie:eigene Daemons]]
Der Apache ist ein Webserver zur Beantwortung von HTTP-Requests und wird üblicherweise zur Auslieferung von Webseiten genutzt. Auf HS Systemen läuft ein zentrale Apache, der standardmäßig die Anfragen für die eigene Domain verarbeitet und die eigenen Webseiten ausliefert.
 
Der [http://httpd.apache.org/ Apache] ist ein Webserver zur Beantwortung von HTTP-Requests und wird üblicherweise zur Auslieferung von Webseiten genutzt. Auf HS Systemen läuft ein zentrale Apache, der standardmäßig die Anfragen für die eigene Domain verarbeitet und die eigenen Webseiten ausliefert.


Unter Umständen kann es sinnvoll sein, einen eigenen Apache zu betreiben, vor allem dann, wenn man Apache Module betreiben möchte, die vom zentralen Apache (z.B. aus Sicherheitsgründen im Shared Hosting) nicht zur Verfügung gestellt werden.
Unter Umständen kann es sinnvoll sein, einen eigenen Apache zu betreiben, vor allem dann, wenn man Apache Module betreiben möchte, die vom zentralen Apache (z.B. aus Sicherheitsgründen im Shared Hosting) nicht zur Verfügung gestellt werden.
Zeile 110: Zeile 111:
</IfModule>
</IfModule>
</pre>
</pre>
== Weblinks ==
[http://httpd.apache.org/docs/2.2/ Dokumentation des Apache2.2]

Version vom 20. Januar 2010, 10:29 Uhr


Der Apache ist ein Webserver zur Beantwortung von HTTP-Requests und wird üblicherweise zur Auslieferung von Webseiten genutzt. Auf HS Systemen läuft ein zentrale Apache, der standardmäßig die Anfragen für die eigene Domain verarbeitet und die eigenen Webseiten ausliefert.

Unter Umständen kann es sinnvoll sein, einen eigenen Apache zu betreiben, vor allem dann, wenn man Apache Module betreiben möchte, die vom zentralen Apache (z.B. aus Sicherheitsgründen im Shared Hosting) nicht zur Verfügung gestellt werden.

Voraussetzungen

  • eigene IP: Eine eigene IP wird gegen ein monatliches Entgelt von HS zur Verfügung gestellt und von den Hostmastern eingerichet.
  • Portumleitungen Port 80 -> 8080 und 443 -> 8443: ebenfalls von einem Hostmaster eingerichtet.

Konfiguration /etc/apache2.conf

Die Konfiguration eines Apache kann hier nicht beschrieben werden, dafür gibt es ziemlich dicke Bücher. Nur ein paar Hinweise:

  • Die Konfiguration des zentralen Apache kann in großen Teilen übernommen werden, man kann also gut /etc/apache2 in das eigene Benutzerverzeichnis ~/etc/apache2 kopieren, Pfade anpassen und einmal damit starten. Aber sei gewarnt: Den Apache (auch mit Vorwissen) zum Laufen zu bringen, braucht Zeit und Geduld. Wer nicht ein Grundwissen in Linux-Administration mitbringt, sollte davon Abstand nehmen.

Grundkonfiguration

Hier wird die eigene IP 111.222.333.444, und das HS-Paket xyz00 angenommen, sowie, dass das Verzeichnis /home/pacs/xyz00/etc/apache2/run/ existiert. In der Konfigurationsdatei apache2.conf werden folgende Direktiven angepasst:

ServerRoot /home/pacs/xyz00/etc/apache2
ServerName xyz00.hostsharing.net
ServerAdmin xyz00@xyz00.hostsharing.net
User xyz00
Group xyz00
Listen 111.222.333.444:8080
Listen 111.222.333.444:8443
NameVirtualHost 111.222.333.444:8443
NameVirtualHost 111.222.333.444:8080
ExtendedStatus On
LockFile /home/pacs/xyz00/etc/apache2/run/apache2.lock
PidFile /home/pacs/xyz00/etc/apache2/run/apache2.pid

Für Logging:

ErrorLog /home/pacs/xyz00/var/web.err
CustomLog /home/pacs/xyz00/var/web.log combined

Einbinden weiterer Konfigurationsdateien

Der Apache erlaubt das Einbinden weiterer Konfigurationsdateien mit der "Include"-Direktive. Damit und mittels per Symlink in Verzeichnisse gelinkter Konfigurationsdateien lässt er sich sehr flexibel konfigurieren. Als Beispiel sei die einsehbare Konfiguration des zentralen Apache unter /etc/apache2 genannt. Mit folgenden Beispiel-Direktiven lassen sich alle Dateien von Konfigurationsverzeichnissen einbinden:

Include /home/pacs/deg00/etc/apache2/conf.d/
Include /home/pacs/deg00/etc/apache2/mods-enabled/
Include /home/pacs/deg00/etc/apache2/sites-enabled/

Start- und Stopskripte

Um den eigenen Apache zu starten und zu stoppen, müssen eigene Skripte geschrieben werden. In diesem Beispiel wird angenommen, dass sich die Konfiguration in ~/etc/apache2 (/home/pacs/xyz00/etc/apache2) befindet, dort sind ebenfalls die Skripte für Start und Stop.

Startskript ~/etc/apache2/start-apache.sh

 #! /bin/bash
 /usr/sbin/apache2 -f /home/pacs/xyz00/etc/apache2/apache2.conf

Stopskript ~/etc/apache2/start-apache.sh

 #! /bin/bash
 pid=$(cat /home/pacs/xyz00/etc/apache2/run/apache2.pid)
 kill -TERM $pid
 

Wenn der eigene Apache mit mod_fcgid läuft, ist es sinnvoll (wenn auch nicht besonders schön oder elegant), bei einem Stop des Apache die unter der eigenen Benutzerkennung laufenden FCGI-Prozesse abzuwürgen. Hier wird angenommen, dass sich die Sockets innerhalb der Verzeichnisstruktur ~/etc/apache2/run/ befinden.

 sleep 1
 killall -u xyz00 -KILL apache2
 killall -u xyz00 -KILL php
 rm ~/etc/apache2/run/fcgisock/*
 rm ~/etc/apache2/run/apache2.pid
 rm ~/etc/apache2/run/cgisock*

Überwachung und Start bei Systemstart

Die Überwachung des Apachen genauso wie der Start beim Hochfahren des Systems wird mit Monit gewährleistet. Dies muss natürlich entsprechend konfiguriert werden.

Hinweise und Erfahrungswerte

mod_fcgid

Die Konfiguration des zentralen Apachen (in /etc/apache2/mods-enabled/fcgid.conf) kann nicht ohne Änderung übernommen werden. Dass der darin befindliche Pfad zum Verzeichnis für die Sockets SocketPath /var/run/apache2/fcgisock geändert werden muss, sollte klar sein. Aber der Apache möchte mit mod_fcgid noch eine Datei "shm" für Shared Memory anlegen. Und wenn dies nicht explizit konfiguriert wurde, standardmäßig in /var/lib/apache2/fcgid/shm. Das ist für den eigenen Apache natürlich nicht möglich, er hat da keine Schreibrechte.

Eine funktionierende Konfiguration für mod_fcgid sieht daher so aus:

SocketPath /home/pacs/xyz00/etc/apache2/run/fcgisock
SharememPath /home/pacs/xyz00/etc/apache2/run/shm

IPCConnectTimeout 20
IPCCommTimeout 600
IdleTimeout 300
IdleScanInterval 120
BusyTimeout 300
BusyScanInterval 120
ErrorScanInterval 10
ZombieScanInterval 9
ProcessLifeTime 3600
SpawnScoreUpLimit 100
SpawnScore 1.
TerminationScore 2.
MaxProcessCount 250
DefaultMaxClassProcessCount 10
DefaultMinClassProcessCount 3
PHP_Fix_Pathinfo_Enable 1
OutputBufferSize 256

<IfModule mod_fcgid.c>
 AddHandler fcgid-script .fcgi
 IPCConnectTimeout 20
</IfModule>


Weblinks

Dokumentation des Apache2.2