![]() |
SELFHTML Server Konfiguration:
|
|
| |
Die Datei-Struktur mußte vor allem eines sein: einheitlich! Das ist sehr wichtig, das haben wir auf dem alten Server gemerkt: ist sie nicht einheitlich, herrscht nur absolutes Chaos. Jeder packt irgendwo seine Files hin, und letztenendes blickt keiner mehr durch, wo eigentlich was liegt. Deshalb ist es sehr wichtig, einen logischen und einheitlichen Verzeichnisbaum aufzubauen.
Der physikalische Verzeichnisbaum besteht aus im Grunde fünf Teilen: dem Projekt-Baum, dem Cron-Baum, dem Konfigurations-Baum für Konfigurations-Dateien der Software, die von Anfang an auf dem Rechner war (System-eigene Software), dem Verzeichnisbaum der Konfigurations-Dateien der Software, die nachträglich installiert wurde und dem Verzeichnisbaum für die User.
Der Verzeichnisbaum für die System-eigene Software liegt in /etc. Programme, die umfangreiche Konfigurationen
haben, bekommen eigene Unterverzeichnisse (z. B. der named) mit dem Namen des Programms, Programme mit nur
einer Konfigurations-Datei bekommen keines.
Der Verzeichnisbaum für die nachinstallierte Software liegt in /usr/local/etc/<programmname>.
Hier gibt es keine Zugeständnisse: jede nachinstallierte Software bekommt ein eigenes Verzeichnis.
Einen Sonderfall bildet hier die Apache-Konfiguration: die Haupt-Konfigurationsdatei liegt in
/usr/local/etc/apache. Die Konfigurations-Dateien für die einzelnen Virtual Hosts liegen in
/usr/local/etc/apache/virtual/<domainname>. Sie tragen den Namen der Subdomain, also z. B. trüge
die Konfigurations-Datei für die Subdomain forum.de.selfhtml.org den Namen
/usr/local/etc/apache/virtual/teamone.de/selfforum. Durch einen Include auf
/usr/local/etc/apache/virtual/ in der Haupt-Konfigurationsdatei werden die Dateien eingebunden (seit Apache
1.3.13 wird bei Includes auf Verzeichnisse der gesamte Verzeichnisbaum nach Dateien gesucht und alle
werden geparsed). Außerdem liegen in /usr/local/etc/apache noch zwei Dateien: eine für die
Rewrite-Rules, um von dem alten URL-Baum auf den neuen zu mappen, und eine für die mod_gzip-Konfiguration. Beide
werden je nach Bedarf in den Subdomain-Konfigurations-Dateien eingebunden.
Der Cron-Verzeichnisbaum ist recht einfach gehalten: alle Cron-Scripte befinden sich in
/home/cron/<scriptname>, das Backup-Script z. B. läge in /home/cron/backup/.
Auch werden in diesem Verzeichnis für das Script relevante Daten gehalten.
Der Projekt-Verzeichnisbaum ist der komplexeste: zunächst einmal ist der gesamte WWW-Baum unterhalb von
/home/www/. Dann hat jede Domain ein eigenes Unterverzeichnis, das so heißt wie sie selber:
der Webtree von TeamOne.de liegt in /home/www/teamone.de/. Weiterhin hat jede Subdomain von TeamOne.de ihr
eigenes Verzeichnis innerhalb dieses Domain-Verzeichnisses: /home/www/teamone.de/selfforum/ z. B. für
das SELFHTML-Forum. Jede Subdomain hat die fünf folgenden Verzeichnisse:
In logs werden die Logdateien gespeichert. In dokumente liegen die ganz normalen
HTML-Dokumente und Bilder und dergleichen. In cgi-bin liegen die CGI-Scripte, je nach dem wie aufwendig
eventuell in einem eigenen Verzeichnis. In cgi-bin/shared liegen die Module, die die Scripte vielleicht
benötigen. In cgi-shared liegen die Daten- (cgi-shared/data/<scriptname>) und
Konfigurations-Verzeichnisse (cgi-shared/config/<scriptname>) der verschiedenen Skripte.
Die Home-Verzeichnisse der User liegen allesamt in /home/users/.
Es ist meiner Meinung nach sehr wichtig, dass sich an diese Struktur gehalten wird!
Als "virtuellen Verzeichnisbaum" bezeichne ich die Home-Verzeichnisse der User. Jeder User muß auf die
verschiedenen Projekte zugreifen können, denen er zugeordnet ist. Dafür gibt es in seinem Home-Verzeichnis
symbolische Links auf die Projekt-Verzeichnisse. Z. B. ist der User xyz den Projekten SELFHTML-Suche und SELFHTML-Forum
zugeordnet, so hat er in seinem Home-Verzeichnis Links auf die Verzeichnisse
/home/www/teamone.de/selfsuche/ und /home/www/teamone.de/selfforum/.