Linux:Apache-Server: Unterschied zwischen den Versionen

Aus Alexander's Wiki
Zeile 1: Zeile 1:
{{GoogleAnalytics}}
Der Apache2-Server wird (unter Ubuntu) über mehrere Konfigurationsdateien gesteuert. Sie liegen alle im Verzeichnis ''/etc/apache2''. Das Wurzelverzeichnis für die HTML-Seiten liegt i.d.R. in ''/var/www''.
Der Apache2-Server wird (unter Ubuntu) über mehrere Konfigurationsdateien gesteuert. Sie liegen alle im Verzeichnis ''/etc/apache2''. Das Wurzelverzeichnis für die HTML-Seiten liegt i.d.R. in ''/var/www''.
Nicht in jeder Ubuntu-Version hat das Verzeichnis ''/var/www''  die richtigen Rechte gesetzt. Daher ist es sinnvoll, folgende Befehle aufzuführen, welche dafür sorgen, dass sowohl der Systembenutzer ''www-data'' als auch die Gruppe ''www-data'' Schreibrechte auf dieses Verzeichnis bekommen.
Nicht in jeder Ubuntu-Version hat das Verzeichnis ''/var/www''  die richtigen Rechte gesetzt. Daher ist es sinnvoll, folgende Befehle aufzuführen, welche dafür sorgen, dass sowohl der Systembenutzer ''www-data'' als auch die Gruppe ''www-data'' Schreibrechte auf dieses Verzeichnis bekommen.

Version vom 16. Oktober 2010, 15:05 Uhr

Vorlage:GoogleAnalytics Der Apache2-Server wird (unter Ubuntu) über mehrere Konfigurationsdateien gesteuert. Sie liegen alle im Verzeichnis /etc/apache2. Das Wurzelverzeichnis für die HTML-Seiten liegt i.d.R. in /var/www. Nicht in jeder Ubuntu-Version hat das Verzeichnis /var/www die richtigen Rechte gesetzt. Daher ist es sinnvoll, folgende Befehle aufzuführen, welche dafür sorgen, dass sowohl der Systembenutzer www-data als auch die Gruppe www-data Schreibrechte auf dieses Verzeichnis bekommen.

  sudo chmod 0775 /var/www
  sudo chgrp -R www-data /var/www

Um als normaler Benutzer Dateien in /var/www anlegen oder bearbeiten zu können, wird der gewünschte Benutzer zur Gruppe www-data hinzugefügt:

  sudo adduser <benutzername> www-data


apache2.conf

Die apache2.conf ist eigentlich die zentrale Konfigurationsdatei für den Apache2-Webserver. Durch die vielen Einstellmöglichkeiten ist sie aber zu groß geworden und verweist an vielen Stellen auf andere Konfigurationsdateien. So z.B.:

...

  # Include module configuration:
  Include mods-enabled/*.load
  Include mods-enabled/*.conf

  # Include all the user configurations:
  Include httpd.conf

  # Include ports listing
  Include ports.conf

...

Der erste Abschnitt verweist auf die Module, die Apache2 verwenden soll. Das ist hier gleich ein ganzes Verzeichnis. Wenn man neue Module benötigt, braucht man nur die entsprechende .load und .conf-Dateien aus dem Verzeichnis mods-available in das Verzeichnis mods-enabled kopieren. Für die php-Unterstützung sind das beispielsweise php5.conf und php5.load.

Im zweiten und dritten Abschnitt werden die beiden weiter unten erwähnten Dateien geladen.

...

  # Include the virtual host configurations:
  Include sites-enabled/

...

Dieser Abschnitt verweist in das Verzeichnis sites-enabled, wo die Webseiten-Konfiguration vorgenommen wird. Sonst beinhaltet die apache2.conf nur Einstellungen wie und wo geloggt werden soll und unter welchen Rechten der Server laufen soll. Die Beschreibungen in der Konfigurationsdatei sind dazu selbsterklärend.

httpd.conf

Früher wurde die httpd.conf für die Konfiguration der Webseiten benutzt. Heute scheint sie leer zu sein.

ports.conf

In der ports.conf werden die Ports angegeben auf den der Apache-Webserver hören soll. Standardmäßig ist das Port 80 (der erste Eintrag). Ich habe noch den Port 81 (der zweite Abschnitt) für Testzwecke hinzugefügt. Im dritten Abschnitt wird getestet, ob das Verschlüsselungsmodul (SSL) vorhanden ist, denn dann wird auch Port 443 (https) aktiviert.

  NameVirtualHost *:80
  Listen 80

  NameVirtualHost *:81
  Listen 81

  <IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
  </IfModule>

Man kann natürlich auch eine Beschränkung auf bestimmte Rechner durchführen. Dann muss die IP mit angegeben werden, beispielsweise Listen 127.0.0.1:81 lässt nur den Rechner zu auf dem der Apache installiert ist.

sites-enabled

000-default

  <VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName aah253.braunschweig.bba.intern

	DocumentRoot /var/www/produktiv
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>

        AddDefaultCharset UTF-8

  </VirtualHost>

001-Port81

  <VirtualHost *:81>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/testumgebung
	<Directory />
		Options +FollowSymLinks +Indexes
		AllowOverride None
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined


        AddDefaultCharset UTF-8
  </VirtualHost>

weiterführende Links