Die Installation von Apache können Sie wie gewohnt mit
apt-get install apache durchführen. Auch dieses Paket
beinhaltet ein Konfigurationscript, welches während der Installation gestartet
wird. Wenn Sie Apache später neu konfigurieren möchten, können Sie
das mit dem Programm
apacheconfig durchführen.
sushi:~# apt-get install apache
Reading Package Lists... 100%
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
apache
0 packages upgraded, 1 newly installed, 0 to remove and 246 not upgraded.
Need to get 0B/356kB of archives. After unpacking 666kB will be used.
Selecting previously deselected package apache.
(Reading database ... 64458 files and directories currently installed.)
Unpacking apache (from .../web/apache_1.3.9-10.deb) ...
Setting up apache (1.3.9-10) ...
Installing new configuration file /etc/apache/httpd.conf ...
Installing new configuration file /etc/apache/access.conf ...
Installing new configuration file /etc/apache/srm.conf ...
Installing new configuration file /etc/apache/cron.conf ...
Updating alias /doc/ -> /usr/doc/ in srm.conf (for Debian docs).
Your config files will not be modified until you select Y at "save changes."
Enter the email address of your server administrator. This address
will be used in error messages allowing users to submit reports of
faulty links or misconfigured cgi-programs to you. It should be an email
address that corresponds to a human.
Who should the ServerAdmin be? [you@your.address] fr@openoffice.de |
Geben Sie hier Ihre E-Mail Adresse an. Diese Adresse können Sie später
automatisch in Ihre Webseiten einbinden, zum Beispiel wenn es gewünscht
ist, den Betreiber des Servers (Webmaster) zu erreichen.
The DocumentRoot is set to /var/www.
Installing your new homepage in /var/www.
This release of the Apache server can be configured to load only certain
modules into memory. This program can automagically configure Apache
so only modules that are actually needed are loaded.
Do you want to manually choose which modules to load? [y/N]
|
Das Apache-Paket kommt mit einer ganzen Reihe von Modulen die,
ähnlich wie die Module des Linux-Kernels, die Funktionalität
des Webservers erweitern. Wir werden später noch einige interessante
Module vorstellen. Sie können jetzt aber ohne Probleme darauf verzichten,
weitere Module auszuwählen. Der Webserver wird auch so funktionieren.
Working magic...........................................done.
# LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so
# LoadModule env_module /usr/lib/apache/1.3/mod_env.so
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
# LoadModule info_module /usr/lib/apache/1.3/mod_info.so
# LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so
# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so
# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so
# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so
# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so
# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so
# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so
# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so
# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
# LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so
# LoadModule put_module /usr/lib/apache/1.3/mod_put.so
# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so
# LoadModule auth_ldap_module /usr/lib/apache/1.3/auth_ldap.so
# LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so
# LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so
# LoadModule cvs_module /usr/lib/apache/1.3/mod_cvs.so
# LoadModule define_module /usr/lib/apache/1.3/mod_define.so
# LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so
# LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so
Pondering...........................................done.
Save these changes to the configuration files? [Y/n]
|
Das Konfigurationsprogramm wird die nötigen Dateien unter
/etc/apache/ speichern. Wie Sie sehen, sind
viele Zeilen auskommentiert, hierzu dient das Zeichen
#
am Zeilenanfang. Wenn Sie später bestimmte Funktionen benötigen,
entfernen Sie dieses Zeichen und starten Sie den Server neu. Bei
einigen Modulen sind weitere Eintragungen in der Konfiguration notwendig,
ein paar Beispiele finden Sie weiter unten, die anderen werden in der
Dokumentation zu Apache beschrieben.
Rotated `/etc/apache/httpd.conf' at Sun Jan 23 19:25:42 CET 2000.
Rotated `/etc/apache/srm.conf' at Sun Jan 23 19:25:42 CET 2000.
Restart Apache now? [Y/n]
Stopping apache with apachectl ...
Waiting for apache to terminate ...done.
/usr/sbin/apachectl start: httpd started
|
Der Webserver ist nun installiert und Sie können diesen mit einem
beliebigen Webbrowser unter der Adresse:
http://localhost/ erreichen. Es wurde bei der Installation eine Testseite eingerichtet,
diese sollte Ihnen angezeigt werden. Die Dateien zu dieser Seite finden Sie
unter
/var/www/. Sie können dort nun eigene Seiten ablegen.
Wenn Sie sich näher mit dem Apache Webserver beschäftigen wollen,
sollten Sie auch die Dokumentation installieren, die sich im Paket
apache-doc befindet.
Der Apache Webserver verfügt über eine Vielzahl von Funktionen, einige interessante
möchten wir Ihnen im folgenden vorstellen.
Server Side Includes
(SSI)
erlauben es, Webseiten, bevor diese zum
Browser geschickt werden, zu interpretieren.
Sie können über speziellen Code innerhalb
der Seite Variablen benutzen oder einfach
Entscheidungen (if then...) treffen und viele andere Dinge.
Um diese Funktionalität zu aktivieren, muß
das Modul
mod_include entweder
mit eincompiliert sein, oder es muß beim Start
des Servers geladen werden. Weiterhin müssen Seiten,
die interpretiert werden sollen, die Endung
.shtml bekommen und Sie müssen
dies in der Konfiguration aktivieren:
AddType text/html .shtml
AddHandler server-parsed .shtml
|
Die erste Zeile weist den
.shtml-Dateien
den Mime-Type
text/html zu,
die zweite Zeile bestimmt, daß diese Dateien durch den Server
interpretiert (parsed) werden sollen.
Weiterhin müssen Sie diese Funktion noch explizit
einschalten, mit der Zeile
in der Datei
/etc/apache/httpd.conf oder in
einer Datei
.htaccess innerhalb des
gewünschten Verzeichnisses Ihres Webservers (hierzu muß
AllowOverride ebenfalls
aktiviert sein).
Die zu interpretierenden Kommandos müssen innerhalb des
HTML-Codes als SGML-Kommentare eingebettet werden.
Die Syntax hierzu lautet:
<!--#element attribute=value attribute=value ... -->
|
Die Werte (value) werden meist in doppelten
Anführungszeichen, seltener in einfachen Anführungszeichen, gefaßt.
Beachten Sie, daß der Abschluß dieser Zeile
( -->) mit einem Leerzeichen beginnt!
Erlaubte Elemente sind unter anderem:
„config“,
„echo“,
„exec“,
„fsize“,
„flastmod“,
„printenv“,
„set“ und
„include“.
Nähere Informationen zu diesen Elementen finden
Sie in der Dokumentation, auf das
Element
„include“ gehen wir nun etwas genauer ein.
Mit dem Element „include“ können Sie Text aus einer anderen
Datei in die aktuelle Datei einfügen.
Jede dieser so eingebundenen Dateien unterliegt den Zugriffsrechten des
jeweiligen Verzeichnisses, wenn Sie also
für den betreffenden Bereich die Option
„IncludesNoExec“
gesetzt haben, werden so
eingebundene CGI-Scripte ignoriert. Wenn diese Option nicht angegeben
ist, wird das CGI-Script ausgeführt und das
Ergebnis eingebunden.
Das Element „include“ benötigt noch weitere Attribute,
diese definieren den Ort, an dem die einzubindende
Datei zu finden ist:
file - dieses Attribut gibt einen relativen
Pfad zu der Datei an. Der Wert darf kein absoluter Pfad sein
und darf keinen Verweis auf ein höherliegendes Verzeichnis
(../) enthalten.
virtual - hiermit wird eine komplette
URL relativ zum aktuellen Dokument angegeben.
Hier sind keine Rechnernamen (hostname) zugelassen. Wenn die
URL nicht mit einem /
beginnt, wird ein Pfad relativ zum aktuellen Dokument angenommen.
Weiterhin stehen Ihnen einige Variablen zur Verfügung, die
Sie entweder direkt oder in Zusammenhang
mit den Kommandos
echo oder
if und
elif
verwenden können:
Hier nun ein kleines Beispiel für die Anwendung in der Praxis.
Wenn Sie einen Webserver mit vielen
Seiten pflegen müssen, sind Sie vielleicht schon mal in die
Verlegenheit gekommen, das Layout verändern
zu müssen. Nun ist es natürlich sehr aufwendig, dies in
allen Dateien ändern zu müssen. Die Lösung
hierfür ist nun, eine HTML-Datei zu erstellen, in der
das Layout der Seite(n) bestimmt wird.
Innerhalb des BODY Tags erstellen
Sie nun sinngemäß folgende
Einträge:
<!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" -->
in foo
<!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" -->
in bar -->
<!--#else -->
in neither
<!--#endif -->
|
Dies bewirkt, daß je nachdem mit welcher URL die Datei aufgerufen wird, eine andere Datei
in den BODY Tag eingelesen wird. Sie müssen natürlich nicht die
Hauptdatei entsprechend der Namen der anderen Dateien kopieren, ein passender Link reicht
hier völlig aus. Natürlich können Sie die Liste der Dateien beliebig erweitern, dies soll nur
ein kurzes Beispiel darstellen. Jede Veränderung des Aussehens der HTML-Seiten im Kopf der
Datei wird nun sofort auf allen Seiten wirksam.