Inhaltsverzeichnis
Die sys.inc.php Datei ist die zentrale Konfigurationsdatei
von Welcompose, in der die zum Betrieb der Software notwendigen Einstellungen definiert werden.
Es ist sozusagen das Herz der Software.
|
Anmerkung |
|---|---|
|
Die allermeisten Parameter der hier aufgeführten Konfigurationsabschnitte brauchen Sie nicht manuell anpassen. Sie werden während der Installation von Welcompose durch die Angaben im Setup-Prozeß automatisch gesetzt und/oder generiert. |
Pfad zum Stammverzeichnis des Welcompose Backend. Wird in vielen Dateien als Prefix benötigt und durch die Angaben im Setup-Prozeß eingefügt.
Pfad zum Stammverzeichnis der Ausgabeseite. Wird in vielen Dateien als Prefix benötigt und durch die Angaben im Setup-Prozeß eingefügt.
Welcompose bringt ein Logging Framework mit, das das Logging von Fehlern auf viele verschiedene Arten ermöglicht. Verwendet wird dabei das PEAR-Paket Log[18]. Allerdings ist das Logging von Haus aus deaktiviert, um Sicherheitsprobleme durch offen zugängliche Logdateien zu vermeiden.
Standardmässig empfiehlt sich das Logging in eine Datei. So können auch Fehler entdeckt werden, die beim regulären Betrieb der Webseite auftauchen, die normalerweise unbemerkt bleiben.
Um das Logging in eine Datei zu aktivieren, gilt es zuerst, einen geeigneten Speicherplatz für die Logdatei zu finden.
|
Warnung |
|---|---|
|
STELLEN SIE UNTER ALLEN UMSTÄNDEN SICHER, DASS DIE LOGDATEIEN NICHT ÜBER DAS WEB EINSEHBAR SIND! Ist das nicht möglich, verzichten Sie auf das Logging. |
Erlaubt der Webhoster das Schreiben in Verzeichnisse,
die nicht vom Web aus zugänglich sind, sollte dort ein Ordner
angelegt werden (beispielsweise mit dem Namen
log/) und dessen Rechte so verändert werden,
dass PHP dort hineinschreiben kann. Setzen Sie für den Schlüssel
handler den Wert file
und für den Schlüssel name den Pfad vom
Dateisystem-Root zur Logdatei im soeben angelegten Ordner.
Beispiel:
[log] handler = "file" name = "/var/log/welcompose/welcompose.log" level = PEAR_LOG_WARNING
Kann nur auf Verzeichnisse zugegriffen werden, die über das
Web einsehbar sind, kann das bei der Welcompose-Installation
vorbereitete Verzeichnis tmp/log/
verwendet werden. Setzen Sie für
den Schlüssel handler den Wert
file. Den Pfad beim Schlüssel
name können Sie stehen lassen, da er beim Setup
korrekt erzeugt worden sein sollte. Beispiel:
[log] handler = "file" name = "/www/meinewebsite.tld/tmp/log/welcompose.log" level = PEAR_LOG_WARNING
Nun müssen Sie den Zugriff auf das Verzeichnis
tmp/log/ vom Web aus unterbinden. Es gibt
dazu verschiedene Möglichkeiten:
Bei den meisten Webhostern ist eine passende
Änderung der Server-Konfiguration relativ
einfach zu bewerkstelligen, sofern auf Apache
gesetzt wird. So kann einfach eine Datei mit
dem Namen .htaccess
und dem Inhalt Deny from all in
tmp/log/ abgelegt und damit
der Zugriff auf das Verzeichnis verwehrt werden.
Deny from all kann ebenfalls direkt
in der Server-Konfigurationsdatei
httpd.conf verwendet
werden. Um zu erfahren, wie dies genau geht
und was bei anderer Webserver-Software wie
lighttpd oder Cherokee getan werden muss,
konsultieren Sie bitte die Dokumentation der
jeweiligen Produkte.
Das Ändern der Schreibrechte des Ordners
tmp/log/ ist eine
Vorgehensweise, die unabhängig der verwendeten
Server-Software, aber nicht auf Windows
funktioniert. Sie basiert darauf,
dass dem Anwender und der Gruppe des Webservers
die Leserechte für das Verzeichnis entzogen
werden. Wenn Sie nicht selber wissen, wie das
geht, wenden Sie sich bitte an den
Provider-Support, weil eine korrekte
Konfiguration ohne genaue Kenntnis des
Server-Setups unmöglich ist.
|
Warnung |
|---|---|
|
VERWENDEN SIE DIE DIREKTE AUSGABE KEINESFALLS IM PRODUKTIVEINSATZ! |
Beim Aufsetzen oder bei der Entwicklung mit Welcompose kann es angenehm sein, Fehler direkt beim Seitenaufruf zu Gesicht zu bekommen. PEAR::Log stellt dazu zwei verschiedene Log-Handler bereit.
Für jeden Anwender und jeden Browser funktioniert der sogenannte
Display Handler. Er gibt die Debug- und Fehlermeldungen direkt
aus, wie dies PHP auch tut. Um den Display Handler zu
aktivieren, setzen Sie für den Schlüssel
handler den Wert display
und für den Schlüssel name einen leeren Wert.
[log] handler = "display" name = level = PEAR_LOG_WARNING
Für Anwender des Webbrowsers Firefox gibt es mit der Firebug-Extension [19] eine optisch attraktive Alternative zum Display Handler, bei der die Fehler im Rahmen der Firebug-Konsole und nicht direkt in der Seite ausgegeben werden.
Um den Firebug Handler zu aktivieren, setzen Sie
für den Schlüssel handler den Wert
firebug und für den Schlüssel
name einen leeren Wert.
[log] handler = "firebug" name = level = PEAR_LOG_WARNING
PEAR::Log unterstützt eine Vielzahl von Log Levels, mit denen die zu loggenden Debug- oder Fehlermeldungen gefiltert werden können. So ergibt es beispielsweise keinen Sinn, im Produktivbetrieb Debug-Meldungen zu loggen.
Für den Produktivbetrieb empfiehlt sich die Verwendung des
Log Levels PEAR_LOG_INFO respektive
PEAR_LOG_WARNING.
PEAR_LOG_INFO entspricht etwa PHPs
Log Level E_NOTICE und höher während
PEAR_LOG_WARNING E_WARNING und höher
entspricht.
Für die Entwicklung von Welcompose kann auf die Log Levels
für den Produktivbetrieb oder PEAR_LOG_DEBUG
gesetzt werden.
Ist momentan nicht dokumentiert (Stand: 08.01.2012)
Unikater Kennungsschlüssel, der während Installation von Welcompose generiert wird. Er wird u.a. dafür genutzt, um im Installer-Script eine eindeutige Passwortphrase zu erstellen und die Eindeutigkeit beim Anlegen eines Backend-Benutzer Cookies zu gewährleisten.
Sprachwahl für das Backend in DIN ISO 3166 Schreibweise. Die Sprachwahl,
im Setup-Prozeß angeben wird, kann hier manuell angepasst werden.
Es stehen die Sprachen Deutsch (de_DE.UTF-8)
und Englisch (en_GB.UTF-8, Standard) zur
Verfügung. Die Angaben beziehen sich auf Text und Datumsangaben
(LC_ALL). Wird durch die Angaben
im Setup-Prozeß eingefügt.
|
Anmerkung |
|---|---|
|
Für alle Welcompose Version < 0.9.0, die noch mit der
Zeichenkodierung ISO-8859-1 arbeiten, tragen Sie bitte hier
( |
Diese Einstellung ist sozusagen die Rückfalloption, falls der
Wert des Parameters all auf
dem Server nicht verfügbar ist. C ist
eine Einstellung, die jeder Server beherrscht und die grundsätzlichen
Formate abdeckt.
Treiber für die Datenbankkommunikation. Mögliche Angaben sind
mysqli und pdo (Standard).
Data Source Name für die Verbindung zur Datenbank. Wird durch die Angaben im Setup-Prozeß automatisch generiert.
Der Datenbank-Benutzername. Wird durch die Angaben im Setup-Prozeß eingefügt.
Der Datenbank-Passwort. Wird durch die Angaben im Setup-Prozeß eingefügt.
Welcompose arbeitet intern mit Konstanten für die Tabellen der
Datenbank. Bitte belassen sie den Wert in der Standardeinstellung
(true).
Ist momentan nicht dokumentiert (Stand: 08.01.2012)
In einigen Fällen ist es für die Syntax einer Datenbankabfrage notwendig
variable Werte mit sog. Backticks zu umschließen. Bitte lassen die Standardeinstellung
auf true.
Relativer Pfad zum Speicherort der Media-Dateien. Wird in vielen Dateien als Prefix benötigt.
Absoluter Pfad zum Speicherort der Media-Dateien ausgehend vom Root-Verzeichnis des Servers. Wird in vielen Dateien als Prefix benötigt.
Oktale Angabe von Schreibrechten. Bitte beachten Sie nachstehenden Abschnitt.
Einige Webspace-Provider[20] haben ihre Server derart konfiguriert, dass sie hochgeladene Dateien so ablegen, dass sie vom Webserver nicht gelesen werden können.
Um dieses Problem zu beheben, muss Welcompose angewiesen werden,
die Rechte der Dateien nach dem Upload zu modifizieren. Setzen Sie
als Wert den oktalen Wert für die gewünschten Schreibrechte, die Welcompose setzen soll.
Im Beispiel wurde 0644 gewählt. Wenn Sie
nicht wissen, welchen Wert Sie wählen sollen, wenden Sie sich bitte
an den Provider-Support:
[media] ... chmod = 0644 [global_file] ... chmod = 0644
|
Warnung |
|---|---|
|
Achten Sie darauf, nicht die führende Null zu vergessen, da der Wert sonst dezimal interpretiert wird, was zu falschen Rechten führt! |
Wenn Sie nun Dateien hochladen, sollten diese angezeigt werden.
Relativer Pfad zum Speicherort der Globalen Dateien. Wird in vielen Dateien als Prefix benötigt.
Absoluter Pfad zum Speicherort der Globalen Dateien ausgehend vom Root-Verzeichnis des Servers. Wird in vielen Dateien als Prefix benötigt.
Oktale Angabe von Schreibrechten.
|
Anmerkung |
|---|---|
|
Beachten Sie auch die Hinweise zu Datei-Uploads unter Abschnitt 13.1.6.1, „Schreibrechte Datei-Uploads“ |
Ist dieser Parameter gesetzt (1), werden alle Seiten und
CSS-Dateien Gzip-komprimiert ausgeliefert. Dieses beschleunigt den Seitenaufruf.
Mögliche Eingaben: 1 oder 0 (Standard).
Legen Sie fest, wie lange die Auswahl des aktuell eingestellten Projektes im Adminbereich
gültig ist. Angabe nicht relevant, wenn nur ein Projekt vorhanden ist.
Die Werteangaben erfolgen im Format Millisekunden und beliebig anpassbar.
Standardwert 2592000 (30 Tage).
Absoluter Pfad zum Speicherort der Textkonverter ausgehend vom Root-Verzeichnis des Servers.
Absoluter Pfad zum Speicherort der Textmakros ausgehend vom Root-Verzeichnis des Servers.
Welcompose nutzt in seiner Standardeinstellung parametisierte URLs. Jedes URL-Muster wird einem Namen zugeordnet, der sich aus verschiedenen Angaben zusammensetzt. Ausführliche und detailierte Informationen hierzu finden Sie im Abschnitt 14.3.1, „URL-Muster“
Aktuelle URL-Muster (Welcompose Version 0.9.4):
blog_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" blog_index_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>" blog_index_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" blog_index_tag_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>&start=<start>" blog_index_start = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" blog_index_start_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>" blog_index_start_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" blog_index_start_tag_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>&start=<start>" blog_atom_10 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Atom10" blog_atom_10_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Atom10&tag=<tag_word>" blog_atom_10_start = "/index.php?project_name=<project_name>&action=Atom10" blog_atom_10_start_tag = "/index.php?project_name=<project_name>&action=Atom10&tag=<tag_word>" blog_rss_20 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Rss20" blog_rss_20_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Rss20&tag=<tag_word>" blog_rss_20_start = "/index.php?project_name=<project_name>&action=Rss20" blog_rss_20_start_tag = "/index.php?project_name=<project_name>&action=Rss20&tag=<tag_word>" blog_comments_atom_10 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=CommentsAtom10" blog_comments_atom_10_start = "/index.php?project_name=<project_name>&action=CommentsAtom10" blog_comments_rss_20 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=CommentsRss20" blog_comments_rss_20_start = "/index.php?project_name=<project_name>&action=CommentsRss20" blog_item = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Item&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>&posting_day_added=<posting_day_added>&posting_title=<posting_title>" blog_item_start = "/index.php?project_name=<project_name>&action=Item&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>&posting_day_added=<posting_day_added>&posting_title=<posting_title>" blog_archive_year = "/index.php?project_name=<project_name>&page_name=<page_name>&action=ArchiveYear&posting_year_added=<posting_year_added>" blog_archive_year_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=ArchiveYear&posting_year_added=<posting_year_added>&start=<start>" blog_archive_year_start = "/index.php?project_name=<project_name>&action=ArchiveYear&posting_year_added=<posting_year_added>" blog_archive_year_start_pager = "/index.php?project_name=<project_name>&action=ArchiveYear&posting_year_added=<posting_year_added>&start=<start>" blog_archive_month = "/index.php?project_name=<project_name>&page_name=<page_name>&action=ArchiveMonth&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>" blog_archive_month_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=ArchiveMonth&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>&start=<start>" blog_archive_month_start = "/index.php?project_name=<project_name>&action=ArchiveMonth&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>" blog_archive_month_start_pager = "/index.php?project_name=<project_name>&action=ArchiveMonth&posting_year_added=<posting_year_added>&posting_month_added=<posting_month_added>&start=<start>" event_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" event_index_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>" event_index_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" event_index_tag_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>&start=<start>" event_index_start = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" event_index_start_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>" event_index_start_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" event_index_start_tag_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&tag=<tag_word>&start=<start>" event_atom_10 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Atom10" event_atom_10_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Atom10&tag=<tag_word>" event_atom_10_start = "/index.php?project_name=<project_name>&action=Atom10" event_atom_10_start_tag = "/index.php?project_name=<project_name>&action=Atom10&tag=<tag_word>" event_rss_20 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Rss20" event_rss_20_tag = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Rss20&tag=<tag_word>" event_rss_20_start = "/index.php?project_name=<project_name>&action=Rss20" event_rss_20_start_tag = "/index.php?project_name=<project_name>&action=Rss20&tag=<tag_word>" generator_form_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" generator_form_index_start = "/index.php?project_name=<project_name>&action=Index" global_template_url = "/global_template.php?project_name=<project_name>&name=<global_template_name>" global_template_url_start = "/global_template.php?project_name=<project_name>&name=<global_template_name>&&start=<start>" simple_date_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" simple_date_index_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" simple_date_index_start = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" simple_date_index_start_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" simple_date_atom_10 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Atom10" simple_date_atom_10_start = "/index.php?project_name=<project_name>&action=Atom10" simple_date_rss_20 = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Rss20" simple_date_rss_20_start = "/index.php?project_name=<project_name>&action=Rss20" simple_form_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" simple_form_index_start = "/index.php?project_name=<project_name>&action=Index" simple_guestbook_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" simple_guestbook_index_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" simple_guestbook_index_start = "/index.php?project_name=<project_name>&action=Index" simple_guestbook_index_start_pager = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index&start=<start>" simple_page_index = "/index.php?project_name=<project_name>&page_name=<page_name>&action=Index" simple_page_index_start = "/index.php?project_name=<project_name>&action=Index"
Welcompose bietet im Rahmen des Media Manager Unterstützung für die Photo Sharing Community Flickr[21]. Die Integration von Flickr wird über das öffentliche Web-Service-API realisiert, für deren Nutzung ein spezieller Key von Nöten ist. Der API Key ist für den persönlichen Gebrauch in der Regel kostenlos und kann auf der Flickr-Webseite beantragt[22] werden. Im Rahmen von Welcompose wird kein Flickr API Key mitgeliefert!
Verfügen Sie über einen API Key, tragen Sie ihn als Wert
für den Parameter api_key ein.
api_key = "123456789123456789123456789"
Achten Sie zudem darauf, dass für den Parameter
cache_encrypt der Wert true
gesetzt ist, sodass die gecachten Antworten von Flickr verschlüsselt
werden. Der komplette Flickr-Konfigurationsblock sollte nachher
etwa so aussehen (abgesehen vom Abweichungen beim
cache_dir):
[flickr] cache_dir = "/pfad/zu/tmp/flickr_cache" cache_encrypt = true api_key = "123456789123456789123456789"
[20] Bislang ist uns nur die deutsche Domainfactory bekannt. Sollten Sie weitere Provider kennen, schicken Sie uns bitte eine E-Mail, damit wir die Liste erweitern können.