Partnerlinks:
Google

www.linux-club.de/ sehr aktives und kompetentes Board m. Fragen u. Antworten rund um Linux  |  www.linux-board.de/ privates Board m. Fragen u. Antworten rund um Linux  |  meybohm bei viando.de gute Tools - u.a. "Phase 5 / HTML Editor" mein Lieblings-HTML-Editor und "Proton" - guter Texteditor www.meybohm.de  |  Wunsch-Domain schon belegt? Hier finden Sie sie trotzdem!   |  Webhosting beim Testsieger 2007. www.greatnet.de  | 
Host Europe - World Class Internet Hosting
 

  Ein Pinguin-Logo    
news About Me linux referenz tips links downloads kontakt
 
News
About
Linux
Referenz
Tips
  Linux
  Sicherheit
  Perl
  Allround Server
  Fileserver Samba
  HTTP-Server
  Zope-Server
  SQL-Server
  Mail-Server
  Proxy_Server
  FAX-Server
  Netzwerk-Tools
  SMS-Tools
  Postscript
  MS Office
Links
Downloads
Kontakt

Besucher
seit 21.10.2002
 
Mein Gästebuch
 

Apache - DER HTTP-Server in der Linux (und Windowswelt)

Teil 1

1. Allgemeine Beschreibung

1.1. Allgemeine Beschreibung

Apache ist ein kompletter und sehr komplexer HTTP-Server der mittels Modulen und Plugins um zusätzliche und neue Eigenschaften erweitert und ergänzt werden kann.

Dieser Server läuft hinter 60-70% aller Internet-Seiten da er sich im Laufe der Zeit durch ständige Code-Pflege und viele Patches (this is a patchi Server) eine hervorragende Stabilität und Anpassbarkeit an die verschiedensten Einsatzszenarien erworben hat.

Das Programm ist für Linux kostenlos und Open-Source. Darüberhinaus gibt es Versionen für MS-Windows ab NT, NovellNetware, HP MPE/iX, UnixWare und TPE.

1.2. Installation

Ich habe Apache einfach von der CD meiner Distribution als RPM-Paket installiert. Dabei sollte man wieder beachten -> im Internet nach Updates suchen und nötigenfalls diese auch einspielen (RPM-Pakete updaten).

Beachte: sobald ihr eine neue Version des Apache-Servers einspielt oder darauf upgradet, müssen auch die dazu gehörigen Module eingespielt (erneuert) werden.

1.3. Konfiguration

Die (Haupt-)Konfigurationsdatei von Apache heißt httpd.conf und liegt unterhalb von /etc/httpd. Die Konfigurationsoptionen werden meist in Form von Option Wert angegeben. Zusätzlich gibt es Abschnitte die von Start- und End-'Tags' eingeschlossen sind. Alle dazwischen liegenden Optionen und Einstellungen gelten für dieses (von den 'Tags' eingeschlossene) Objekt.

Das folgende Beispiel zeigt einen solchen Abschnitt (die Hochkommas dienen nur zum Sichtbarmachen der 'Tags'). Darin wird bestimmt, das nur wenn SSL definiert ist die darin enthaltenen Optionen ("lauschen" an Port 80 und 443) wirksam werden.

'<'IfDefine SSL'>'
Listen 80
Listen 443
'<'/IfDefine'>'


Im nächsten "Abschnitt" werden Optionen für das Root-Verzeichnis ("/") des Servers festgelegt:

  • Die Datei für User-Authentifizierung ist /etc/httpd/passwd
  • Die Datei für Gruppen-Authentifizierung ist /etc/httpd/group
  • Optionen:
    Symlinks darf gefolgt werden
    Multiviews sind erlaubt
    (weiß ich nicht so genau was das ist)
  • Die Berechtigungen für das Verzeichnis dürfen nicht von .htaccess-Dateien geändert oder überschrieben werden
'<'Directory /'>'
    AuthUserFile  /etc/httpd/passwd
    AuthGroupFile /etc/httpd/group

    Options +FollowSymLinks +Multiviews
    AllowOverride None
'<'/Directory'>'


Die HTML-, Bild- und Script(CGI)-Dateien liegen im Normalfall in Unterverzeichnissen von /usr/local/httpd. Bei SuSE 8.1 wurde dieser Pfad geändert. Neuerdings findet man das Apache-root-Verzeichnis unter /srv/www.

1.3.1 Bedeutung der Konfigurationsoptionen

Nachfolgend werde ich versuchen die wichtigsten Optionen zur Konfiguration von Apache in Ihrer Bedeutung zu erklären, oder zumindest zu übersetzen. Die meisten Einstellungen kann man so übernehmen, wie es von der SuSE-Installation vorgegeben wurde. Die wenigen Werte die ich geändert oder angepasst habe markiere ich in der folgenden Liste ROT.

. . . . .
ServerType standalone
inetd
- inetd nur auf Unix-Systemen verfügbar (Server wird bei Anfragen an den Server-Host über inetd gestartet)
- standalone (Defaultwert; für uns geeignet)
ServerRoot "/usr/local/httpd" Wurzelverzeichnis in dem die darzustellenden Dateien (cgi-Skripte, HTML-Seiten, Bilder) dieses Servers liegen; für virtuelle Server werden eigene Root-Verzeichnisse festgelegt
LockFile [Pfad/Name] Pfad und Namen der "Lock-Datei", hier werden Zugriffe auf Dateien aufgezeichnet und diese Dateien teilweise gesperrt (speziell beim Schreiben darauf)
PidFile [Pfad/Name] In diese Datei wird beim Start des Servers die ProzessID des Serverprozesses geschrieben
ScoreBoardFile [Pfad/Name] In diese Datei werden vom laufenden Server interne ProzessInformationen geschrieben (zwei getrennte Serverinstanzen sollten nicht auf ein und dieselbe Datei zugreifen!!!)
Timeout 300 Anzahl von Sekunden, bevor der Empfang bzw. Versand von Seiten mit einem Timeout beendet wird.
KeepAlive On  
MaxKeepAliveRequests 100  
KeepAliveTimeout 15  
MinSpareServers 1 Festlegung einer Mindestanzahl an aktiven Serverprozessen, für stark frequentierte Sites sollte man diese Zahl höher setzen, bei SuSE 8.1 wird dieser Wert durch SuSEconfig entsprechend dem Wert der Variablen HTTPD_PERFORMANCE in /etc/sysconfig/apache gesetzt.
MaxSpareServers 1 s.o. => Maximale Anzahl Server
StartServers 1 Anzahl der beim Systemstart zu startenden Server => Variable s.o.
MaxClients 150 Erlaubte maximale Anzahl gleichzeitig anfragender Clients => Variable s.o.
MaxRequestsPerChild 0  
Listen 192.168.100.50:80
Listen 192.168.100.50:443
Listen 192.168.100.51:80
Listen 192.168.100.51:443
Listen 192.168.100.52:80
Listen 192.168.100.52:443
  Auf welche IP-Adresse:Port (außer Standard) lauscht Apache; auf jeder neuen Zeile kann man weitere Listen IP:Port-Kombinationen angeben; anpassen an Virtuelle Domains; wenn hier nicht eingeschränkt lauscht Apache auf alle eingehenden IP's und den Default-Port
Port 80 Standardport auf dem Apache lauscht (irgendeine IP)
'<'if define ssl'>' [Optionen]
[Optionen]
[Optionen]
Wenn SSL definiert ist, dann ... => [Optionen], hier lauschen auf Port 80 und 443
User
Group
wwwrun
nogroup
User und Gruppe unter denen Apache laufen soll (als root laufen lassen bedeutet ein hohes Sicherheitsrisiko)
ServerAdmin
webmaster@
meine-domain.de
Mail-Adresse wird bei Error-Seiten mit angezeigt; bei SuSE 8.1mithilfe von HTTPD_SEC_SERVERADMIN in /etc/sysconfig/apache gesetzt
ServerName
mein-intranet.
meine-domain.de
Name unter dem der HTTP-server ansprechbar sein soll
DocumentRoot
/srv/www/htdocs Verzeichnis mit den anzuzeigenden HTML-, PHP- und anderen Dateien.
'<'directory / '>' [Optionen]
[Optionen]
[Optionen]
Hier werden für alle von Apache benutzten Verzeichnisse grundlegende Sicherheitsrichtlinien festgeschrieben. Soll später ein Verzeichnis anders (legerer) behandelt werden, muß speziell für dieses oder ein übergeordnetes die Restriktionen gelockert werden.
AuthUserFile [Pfad/Name] Pfad und Name einer Username-Passwort Datei zur Berechtigungsprüfung
AuthGroupFile [Pfad/Name] Pfad und Name einer Group:Username-Datei zur Berechtigungsprüfung
Options -FollowSymlinks "-" Minus bedeutet so viel wie "Nein", "+" Plus das Gegenteil; => Folge symbolischen Links nicht!
  +Multiviews  
AllowOverride None Durch eine .htaccess-Datei mit entsprechend gesetzten Berechtigungen, können die global festgelegten Limitierungen nicht umgangen werden (für dieses Verzeichnis)

  • auf welchem Port werden Verbindungen erwartet (standardmäßig für HTTP Port 80, HTTPS Port 443)
  • auf welcher IP-Adresse werden Verbindungen erwartet (standardmäßig die IP-Adresse der entsprechenden Netzwerkkarte - intern oder/und extern; bei virutellen Domains die der jeweiligen Domain zugeordnete - und auch vorher konfigurierte!!!)
  • auf welchen Namen hört der Server
  • Mailadresse des Webmasters - erscheint als Link auf Fehlerseiten


... der Installation des Apache-HTTP-Servers, muß man in der Datei "/etc/httpd/httpd.conf" noch so einiges anpassen.

Hier könnt ihr meine "/etc/httpd/httpd.conf" herunterladen oder einfach mal so reinschauen.

Sobald ich noch etwas Zeit finde baue ich meine Konfigurationtips noch etwas aus. Bis dahin bitte ich euch um etwas Geduld.

Die wichtigsten Teile habe ich mal an das Ende der Datei geschrieben. Hierbei handelt es sich um "include-Anweisungen" mit denen man andere Konfigurationsdateien in die große einbinden kann.

Das habe ich mit meinen virtuellen Domains so gemacht. Damit ich alles auf einem Haufen und auch etwas übersichtlich habe, habe ich alle Angaben für diese (IP-basierten) virtuellen Domains in extra Konfigurations-Dateien zusammen gefasst. Hier habe ich aber noch kein extra SSL-Zertifikat für jede Domain erstellt, geschweige denn eingebunden.

Hier nur der Übersichtlichkeit halber diese Einbindung der Include-Dateien, da die Datei "httpd.conf" doch sehr lang ist:

    Include /etc/httpd/suse_include.conf
    #############################################
    # Einbinden von virtuellen Hosts/Domains    #
    #############################################
Include /etc/httpd/www.sw-meerane.de/httpd.conf
Include /etc/httpd/swm-intranet/httpd.conf
Include /etc/httpd/www.tei-lin-net.de/httpd.conf
Include /etc/httpd/test-site/httpd.conf
    ### Vorlage - nur noch die /your-domain/httpd.conf anpassen
    # Include /etc/httpd/your-domain/httpd.conf



   

Apache Teil 1

Intro
Allgemeines
Installation
Konfiguration
Apache Teil 2
 
©  09.09.2009  Heiko Teichmeier - Glauchau/Sa.