Wenn der Apache httpd noch nicht auf dem Rechner gestartet ist,
können bei den meisten Distributionen vorkonfigurierte Skripts genutzt
werden; in Debian GNU/Linux ist das beispielsweise:
/etc/init.d/apache start bzw.
/etc/init.d/httpd start
Alternativ kann auch apachectl genutzt werden. Das
folgende Kommando startet den Apache httpd neu:
apachectl start
Mit dem folgenden Kommando wird ein bereits laufender Apache httpd
neu gestartet, d.h. die Konfigurationsdateien werden neu eingelesen:
apachectl restart
Eine Apache- Konfiguration kann überprüft werden mit dem folgenden
Kommando:
apachectl configtest
Die Konfigurationsdatei httpd.conf des Apache httpd
sagt dem Daemon beispielsweise, wo er seine HTML- Dateien findet, wo
Skripts ausgeführt werden sollen oder welche Verzeichnisse mit
Passwörtern geschützt werden sollen.
Wo sich die Konfigurationsdatei bei der jeweiligen Distribution
findet, lässt sich mit folgendem Kommando herausfinden:
locate httpd.conf
In diesem Verzeichnis finden sich auch möglicherweise weitere
Konfigurationsdateien wie access.conf und srm.conf,
die jedoch von aktuelleren httpd- Versionen (1.3.x) nicht mehr genutzt
werden. Bei einer Apache httpd 2.x- Installation sollten diese Dateien
nicht mehr existieren.
Die Konfigurationsdateien sind üblicherweise gut kommentiert und mit
auskommentierten Beispielen ausgestattet, so dass man sich relativ
leicht
zurecht finden kann. Daher sollen an dieser Stelle nur ein paar Hinweise
auf wichtige Direktiven gegeben werden.
Mit "LoadModule" kann der Apache httpd mit zusätzlichen Funktionen
(sog. Modulen) ausgetattet werden, so z.B. mod_perl
zum direkten Ausführen von Perl- Skripts im Apache httpd.
Web-Anfragen über das Protokoll http kommen standardmässig über tcp
auf Port 80; dieser Port lässt sich mit dem "Port"- Parameter
einstellen. SSL- Verbindungen über https laufen per default auf Port
443; dazu benötigt der Apache http zusätzlich mod_ssl aus
dem OpenSSL- Projekt.
Eine oft benötigte Funktion ist das Einrichten von "Virtual Hosts"
(vhosts); solche Vhosts können in drei Varianten angelegt werden:
- IP-basiert,
- Port-basiert und
- Namens-basiert.
Klassischerweise verwendet man IP-basierte Vhosts, aufgrund der
Verknappung der IP-Adressen sind heute jedoch eher namens-basierte
Vhosts üblich, die auch von allen aktuellen Browsern unterstützt werden
(beispielsweise Netscape Navigator und Internet Explorer jeweils ab
Version 3.0).
Die relevanten Teile für eine Vhost- Konfiguration könnten etwa so
aussehen:
NameVirtualHost 10.11.12.13
<VirtualHost meinserver.domain.tld>
ServerAdmin serveradmin2@domain.tld
DocumentRoot /var/www/meinserver/
ServerName meinserver.domain.tld
Alias /image/ /var/www/image/
ErrorLog /var/log/apache/meinserver-error.log
TransferLog /var/log/apache/meinserver-access.log
</VirtualHost>
<VirtualHost deinserver.domain2.tld2>
ServerAdmin serveradmin2@domain2.tld2
DocumentRoot /var/www/deinserver/
ServerName deinserver.domain2.tld2
ScriptAlias /cgi /var/www/scripts/
ErrorLog /var/log/apache/deinserver-error.log
TransferLog /var/log/apache/deinserver-access.log
</VirtualHost>
Greift jetzt jemand auf http://meinserver.domain.tld/test.html zu, so
wird der Apache- Server versuchen, die Datei
/var/www/meinserver/test.html zu lesen und auszuliefern.
Wer selbst keinen Zugriff auf die Apache- Konfiguration hat und
Webseiten veröffentlichen will, kann üblicherweise in seinem Home-
Verzeichniss ein neues Verzeichniss namens public_html/ anlegen; das ist
dann erreichbar über den URL http://hostname.domain.tld/~username.
Ein häufiges Problem bei der Apache- Konfiguration stellen häufig die
Zugriffsberechtigungen in einem Vverzeichnis dar.
Die folgende Direktive besagt beispielsweise, dass die im
Verzeichniss liegenden Dateien vom Apache httpd als Skripts ausgeführt
werden dürfen und die im Verzeichniss vorhandene Symlinks berücksichtigt
werden sollen:
<Directory /usr/lib/cgi-bin>
AllowOverride AuthConfig
Options ExecCGI FollowSymLinks
</Directory>
Der Parameter "AllowOverride AuthConfig" besagt, dass in dem
Verzeichnis eine Datei mit der Bezeichnung .htaccess liegen
darf, in dem man den Zugriff auf dieses Verzeichniss einschränken kann.
Diese Zugriffsrechte kommen zu den Unix- Berechtigungen hinzu, z.B. dem
Account, unter dem der Webserver laeuft (z.b. www-data).
Eine einfache .htaccess Datei könnte beispielsweise
folgendermassen aussehen:
AuthName wer_hier_reinwill_braucht_ein_passwort
AuthType Basic
AuthUserFile /home/username/meinewebuser
require valid-user
Das File, in dem die User und Passwörter stehen, kann man mit dem
Program
htpasswd bearbeiten:
htpasswd -c meinewebuser user1
Legt ein neues File meinewebuser an und fügt einen User
namens user1 ein.