Linux:Apache-Server: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) K |
||
Zeile 165: | Zeile 165: | ||
== ModSecurity == | == ModSecurity == | ||
== ModSSL == | |||
= weiterführende Links = | = weiterführende Links = | ||
*[http://wiki.ubuntuusers.de/apache Ubuntu Wiki] | *[http://wiki.ubuntuusers.de/apache Ubuntu Wiki] |
Version vom 9. Februar 2013, 12:22 Uhr
Apache Grundkonfiguration
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
<user_home>/public_html Directory aktivieren
In das Apache Module Konfigurationsverzeichnis wechseln:
cd /etc/apache2/mods-enabled
Um mod_userdir zu aktivieren, muss man die folgenden symbolischen Links hinzufügen:
sudo ln -s ../mods-available/userdir.load
sudo ln -s ../mods-available/userdir.conf
Apache neu starten:
sudo apache2ctl restart
We can now access the web applications stored in our /home/username/public_html directory via http://localhost/~username/
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>