SixCMS 5.0 Installation und Administration Handbuch für Systemverwalter Version 1.3 (Stand vom 11.07.2002) © 2002 - Six Offene Systeme GmbH Installation und Administration Inhaltsverzeichnis Vorwort 1 SixCMS 5.0 Systemvoraussetzungen 1.1 Betriebssystem 1.2 Webserver 1.3 Datenbank 1.4 Optionale Zusatzsoftware 2 Installation der Basistechnologie 2.1 Installation von Apache/PHP 2.2 Installation von MySQL 2.3 Konfiguration des Webservers 3 Installation SixCMS 5.0 3.1 Anmerkung zum Installationspaket 3.2 Installationsschritte 3.2.1 Anlegen des SixCMS home-Verzeichnisses 3.2.2 Kopieren der SixCMS-Pakete auf Ihren Server 3.2.3 Entpacken des Installationspakets 3.2.4 Anlegen der MySQL-Datenbank 3.2.5 Aktivieren des SixCMS-Moduls 3.2.6 Konfigurationsdatei ablegen und anpassen (siehe auch Anhang-2) 3.2.7 SixCMS im DOCUMENT_ROOT Ihres Webservers aktivieren 3.2.8 Converter für Import/Export installieren 3.2.9 Anpassen der Berechtigungen und der Konfigurationsdatei 3.2.10 Neustarten des Webservers 4 Administration im laufenden Betrieb 4.1 Backup 4.2 SixCMS-Updates Anhang-1: MySQL-User für SixCMS Anhang-2: SixCMS-Konfigurationsdatei © 2002 Six Offene Systeme GmbH 2 Installation und Administration Vorwort Dieses Handbuch wendet sich vor allem an Systemverwalter, die zumindest über ein Grundwissen des UNIX Betriebssystems verfügen (Datei-Handling, Benutzer- und Rechte-Verwaltung, „vi“ Editor, ...). Auch wenn die folgende Anleitung nach bestem Wissen und Gewissen erstellt wurde übernimmt Six Offene Systeme GmbH keinerlei Haftung für etwaige Fehler oder durch Fehlinterpretationen entstandene Schäden! Six Offene Systeme GmbH Sielminger Str. 63 D-70771 Leinfelden-Echterdingen Tel: +49 711 99091 -0 Fax: +49 711 99091 -99 Web: http://www.six.de Email: [email protected] © 2002 Six Offene Systeme GmbH 3 Installation und Administration 1. SixCMS 5.0 Systemvoraussetzungen SixCMS 5.0 setzt als Server einen Rechner mit UNIX-Betriebssystem voraus. Die Hardware-Voraussetzungen werden im Wesentlichen von den zu erwartenden Zugriffszahlen und der Anzahl der im Content-Management-System verwalteten Artikel bzw. Seiten bestimmt. Grundsätzlich aber gilt: die Anforderungen an die Prozessorleistung sind in der Regel nicht dramatisch, viel wichtiger ist die Geschwindigkeit der Festplatte(n) und vor allem die Größe des Arbeitsspeichers. Das System kann z.B. auf einer Maschine mit 400er Pentium CPU und 128 MB RAM durchaus brauchbar funktionieren. Neben dem UNIX-Betriebssystem sind für den Betrieb von SixCMS 5.0 ein Apache Webserver, PHP4 als Middleware sowie ein MySQL Datenbankserver erforderlich, wobei letzterer auch auf einem separaten Rechner gelagert sein kann (z.B. aus Performance- oder Sicherheitsgründen). Die unten aufgelisteten Systemvoraussetzungen verweisen z.T. auf die aktuellen Versionen der Basis-Software (Stand April 2002), die sich womöglich schon in Kürze geändert haben könnten. Bitten lesen Sie deshalb auch die entsprechenden Informationen auf unserer Homepage. Hier nun die Anforderungen an das Betriebssystem und die erforderlichen Komponenten nochmal im einzelnen: 1.1 Betriebssystem: • • • UNIX (Linux (mit libc6), Sun Solaris SPARC, FreeBSD, andere Derivate auf Anfrage), am besten mit Entwicklungs-Umgebung (Perl 5.005 oder 5.6, gccCompiler, make,...). Für die Nutzung der Importer-Funktionalität werden die Tools "zip" und "unzip" benötigt. Falls Sie den SixCMS-internen Scheduler nutzen möchten, ist dazu ein Tool wie "wget", "fetch" oder "lwp-request" erforderlich. Das optional erhältliche SixCMS-Statistikmodul setzt zusätzlich den PerlSupport für MySQL voraus (mittels DBI/DBD). 1.2 Webserver: • • • Apache 1.3.12 oder höher (=> http://www.apache.org). PHP4 Version 4.1.2 oder höher (=> http://www.php.net) ältere Versionen können leider nicht unterstützt werden Optional kann Apache/PHP auch mit SSL Unterstützung eingerichtet werden (=> http://www.openssl.org). 1.3 Datenbank: © 2002 Six Offene Systeme GmbH 4 Installation und Administration • MySQL 3.23.37 oder höher (=> http://www.mysql.com). MySQL 4.0.x ist bereits ebenfalls möglich 1.4 Optionale Zusatzsoftware: • • ImageMagick (4.2.9 oder höher => http://www.simplesystems.org/ImageMagick). Eigentlich wird nur das im Paket enthaltene Tool "convert" verwendet, wenn Thumbnails von importierten Bildern erstellt werden sollen. wvWare (wv-0.5.44 oder höher => http://www.wvWare.com) für den Import von Microsoft Word Dokumenten (optional auch mit den Paketen "zlib", "libwmf" und "freetype" für zusätzliche Funktionalität). 2. Installation der Basistechnologie Die Installation und Konfiguration des UNIX-Betriebssystems sollte grundsätzlich von geübten Fachleuten durchgeführt werden und kann verständlicherweise hier nicht weiter erläutert werden. Folgender Abschnitt enthält nur eine kurze, sich auf die für SixCMS 5.0 relevanten Punkte beschränkende Beschreibung der Installation und Konfiguration der Basistechnologie. Ausführlichere Informationen zu Apache, PHP und MySQL findet man mittlerweile zu Genüge im Netz, angefangen bei den o.g. Websites. 2.1 Installation von Apache/PHP: Für den Einsatz von SixCMS 5.0 werden bestimmte Optionen von Apache bzw. PHP benötigt, die logischerweise nur dann aktiviert und konfiguriert werden können, wenn sie bereits beim Kompilieren der Software berücksichtigt wurden! Deshalb empfehlen wir, möglichst beide Pakete auf dem Rechner selbst zu kompilieren, auch wenn sie in den meisten Linux-Distributionen standardmässig im sog. RPM-Format als fertige Binaries mitgeliefert werden. Bei anderen Plattformen wie z.B. Sun Solaris hat man eh keine Wahl, weil für sie solche vorgefertigten Installationspakete normalerweise nicht exis-tieren. Diese Vorgehensweise bietet zudem folgende Vorteile: − Man kann auf die neuesten Releases bzw. Patch-Level zugreifen statt auf die meist nicht mehr ganz aktuellen Versionen, die den Distributionen produktionsbedingt beiliegen. − Man kann selbst genau bestimmen, welche Module bzw. Optionen eingebunden werden. − Zukünftige Updates der Basistechnologie lassen sich i.d.R. einfacher durchführen. © 2002 Six Offene Systeme GmbH 5 Installation und Administration Folgende Beispiele des „configure“-Aufrufes sollten es auch weniger erfahrene Systemver-walter ermöglichen, einen lauffähigen Apache-Webserver mit (dynamischem) PHP-Modul aufzusetzen. Bitte lesen Sie dazu auch die jeweiligen Anleitungen von Apache und PHP, insbesondere die „INSTALL“-Dateien in den ausgepackten Quellcode-Verzeichnissen! Apache 1.3.xx: OPTIM="-O2 -pipe" \ ./configure \ --prefix=/usr/local/apache/1.3.xx \ --enable-module=most \ --enable-module=so PHP 4.1.x: CFLAGS="-O2 -pipe" \ ./configure \ --prefix=/usr/local/apache/1.3.xx \ --with-apxs=/usr/local/apache/1.3.xx/bin/apxs \ --with-config-file-path=/usr/local/apache/1.3.xx/conf \ --with-mysql=/usr/local/mysql \ --enable-track-vars \ --enable-magic-quotes \ --enable-memory-limit Selbstverständlich können bei Bedarf auch noch weitere Optionen hinzugefügt werden, vorausgesetzt man ist sich deren Folgen bewusst. 2.2 Installation von MySQL: Auch bei der Installation von MySQL empfehlen wir immer, eine aktuelle Version aus dem Internet herunterzuladen (möglichst keine RPMs), wobei es hier für alle gängigen UNIX-Derivate passende Binär-Pakete gibt. Diese MySQL-Server lassen sich i.d.R. auch mühelos in ein paar kurzen Schritten installieren und starten (siehe Anleitung „INSTALL-BINARY“ im ausgepackten MySQL-Paket). © 2002 Six Offene Systeme GmbH 6 Installation und Administration 2.3 Konfiguration des Webservers: Für den Einsatz von SixCMS sind in der Konfigurationsdatei des Apache-Webservers und des PHP’s einige Anpassungen notwendig. Sollten Sie mit dem Editieren dieser Konfigura-tionsdateien nicht vertraut sein fragen Sie nach der Möglichkeit einer „remote Installation“, bei der über eine sichere SSH-Verbindung alle Installtionsschritte von einem Support-Mitarbeiter der Firma Six oder eines entsprechend qualifizierten Partners durchgeführt werden. Folgende Optionen sollten in der Webserver-Konfiguration aktiviert sein (z.B. in der "httpd.conf"): # Erkennen von index.php als index-Datei: DirectoryIndex index.html index.php # PHP4 Optionen: php_admin_flag track_vars on php_admin_flag register_globals on php_admin_flag magic_quotes_gpc on php_admin_flag magic_quotes_runtime off php_admin_flag enable_dl on php_admin_flag ignore_user_abort on php_admin_flag safe_mode off php_admin_value memory_limit 67108864 # Fuer das DocumentRoot-Verzeichnis des [virtuellen] Hosts: <Directory "/DOCUMENT_ROOT/des/Webservers"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> Nach der SixCMS-Installation muss, damit das Shared Object Modul beim Starten des Apache-Webservers geladen wird, die Datei "php.ini" folgende Zeilen enthalten (der Pfad kann natürlich entsprechend der lokalen Gegebenheiten abweichen): extension_dir=/home/sixcms/lib extension=sixcms5.so error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING © 2002 Six Offene Systeme GmbH 7 Installation und Administration 2.4 Unterstützte PHP-Versionen / Betriebssysteme: SixCMS 5.0 ist momentan für folgende PHP-Versionen verfügbar: PHP 4.1.0 – 4.2.0: sixcms5.0.0_412_sys.so PHP 4.2.1 sixcms5.0.0_421_sys.so Sys: Linux (lin), Solaris (sol), FreeBSD (bsd), HP/UX (hpux) Falls Sie weitere Fragen zu den Systemvoraussetzungen haben oder bei der Installation von SixCMS 5.0 Probleme auftreten, wenden Sie sich bitte an unseren SixCMS-Support (Email: [email protected])! © 2002 Six Offene Systeme GmbH 8 Installation und Administration 3. Installation SixCMS 5.0 3.1 Anmerkung zum Installationspaket: Diese Installationsanleitung beschreibt die Installation der Linux-Version von SixCMS für PHP 4.1.2. Sie gilt jedoch analog für Solaris oder FreeBSD und andere PHP Versionen. Ersetzen Sie dann einfach die betriebssystemspezifischen Dateinamen durch die Ihnen vorliegenden. Der Dateiname des Installationspaketes setzt sich wie folgt zusammen: sixcms5.0.PATCHLEVEL_PHPVERSION_BETRIEBSSYSTEMKÜRZEL_inst.tgz Bei dem Installationspaket „sixcms5.0.2_412_lin_inst.tgz“ handelt es sich also um die SixCMS Version 5.0 mit dem Patchlevel 2, die für den Einsatz unter Linux und PHP ab Version 4.1.0 vorgesehen ist. (Wir empfehlen Ihnen dringend statt PHP 4.1.0 die Version 4.1.2 oder neuer einzusetzen, daher der Modulname). ACHTUNG: für verschiedene Betriebssysteme werden meist auch unterschiedliche SixCMS-Module benötigt! Bitte überprüfen Sie deshalb vor einem geplanten PHPUpdate oder einem Betriebssystem-Wechsel die Verfügbarkeit eines passenden Moduls auf der SixCMS-Support-Site (http://www.sixcms.de/support) oder setzen Sie sich mit unserem SixCMS-Support in Verbindung (Email: [email protected])! Das Archiv „sixcms5.0.0_412_lin_inst.tgz“ enthält folgende Dateien: • • • • • • • • config/sixcms_config.php (Konfigurationsdatei) export/ (Verzeichnis für Export) import/ (Verzeichnis für Import) lib/sixcms5.0.0_lin.so (Shared Object-Modul des SixCMS) licence/ (Verzeichnis für Lizenzfile) logs/ (Verzeichnis für Logdateien) pkg/sixcms5.0.0_db.sql (Datenbankscripts) pkg/sixcms5_docs.tgz (Anwendung und Dateien im DocumentRoot) Einige Dateien sind im UNIX-"tar"-Format archiviert und mit "gzip" komprimiert (erkennbar an der Endung „.tgz“). Sie können diese auf unterschiedliche Weise entpacken, z.B. mit: $ gtar -xvzf datei_name.tgz $ tar -xvzf datei_name.tgz $ gunzip < datei_name.tgz | tar -xvf - © 2002 Six Offene Systeme GmbH 9 Installation und Administration Falls Sie weitere Fragen zu SixCMS haben oder bei der Installation Probleme auftreten, wenden Sie sich an unseren SixCMS-Support (Email: [email protected])! © 2002 Six Offene Systeme GmbH 10 Installation und Administration 3.2 Installationschritte: 3.2.1 Anlegen des SixCMS home-Verzeichnisses: Legen Sie ein Verzeichnis an: $ mkdir /home/sixcms und darin das Unterverzeichnis: $ mkdir /home/sixcms/pkg 3.2.2 Kopieren der SixCMS-Pakete auf Ihren Server: Speichern Sie die Datei "sixcms5.0.0_412_lin_inst.tgz" auf Ihrem Webserver in das Verzeichnis "/home/sixcms/pkg". 3.2.3 Entpacken des Installationspakets: $ cd /home/sixcms $ gtar -xvzpf /home/sixcms/pkg/sixcms5.0.0_412_lin_inst.tgz 3.2.4 Anlegen der MySQL-Datenbank: Unterschiedliche Datenbank-Operationen bedürfen unterschiedlicher Zugriffsrechte, die unabhängig von den mit Ihrem UNIX-Account zusammenhängenden Rechten in einer MySQL-eigenen Benutzerverwaltung definiert werden. Falls folgende Operationen mit ‚Access denied ...’ Fehlermeldungen scheitern liegt es i.d.R. daran, dass Sie diese entweder mit einem ungültigen (MySQL-)Benutzer aufrufen, oder Sie sich nicht mit der Option „-p [passwort]“ für den jeweiligen MySQL-Befehl authentifiziert haben. Legen Sie mit Hilfe des "mysqladmin"-Befehls eine neue Datenbank an: $ mysqladmin –u root create sixcms5_ihrefirma © 2002 Six Offene Systeme GmbH 11 Installation und Administration Aus Gründen der besseren Übersichtlichkeit sollten Sie als Datenbanknamen “sixcms5_” gefolgt von z.B. Ihrem Firmennamen wählen. Bitte beachten Sie dabei, dass je nach MySQL-Version bestimmte Sonderzeichen wie “-“ oder “.” in Datenbanknamen unzulässig sind! Laden Sie nun das Datenbankscript in diese neu angelegte Datenbank: $ mysql –u root sixcms5_ihrefirma < /home/sixcms/pkg/sixcms5.0.0_db.sql Auch SixCMS benötigt als Applikation einen Datenbank-User mit bestimmten Zugriffsrechten. Um genauer zu sein: er muss SELECT-, INSERT-, UPDATE-, DELETE-, CREATE und DROP-Statements auf die SixCMS-Datenbank ausführen dürfen. Falls außer dem MySQL-User "root" (den man nur für administrative Zwecke verwenden sollte) noch kein entsprechender Benutzer existiert, sollten Sie noch einen MySQL-User anlegen (z.B. "sixcms") und ihm die o.g. Zugriffsrechte auf Ihre SixCMSDatenbank gewähren (siehe Anhang-1). 3.2.5 Aktivieren des SixCMS-Moduls: Legen Sie im Unterverzeichnis „lib“ einen symbolischen Link zum Modul – dem eigenlichen SixCMS-Programm - an: $ ln -s /home/sixcms/lib/sixcms5.0.0_412_lin.so /home/sixcms/lib/sixcms5.so 3.2.6 Konfigurationsdatei ablegen und anpassen (siehe auch Anhang-2): Wechseln Sie die in das Unterverzeichnis „config“ und öffnen Sie die Konfigurationsdatei mit Ihrem UNIX-Editor (i.d.R. „vi“): $ vi /home/sixcms/config/sixcms_config.php Passen Sie die Konfigurationsdaten entsprechend Ihrer Installation an. Achten Sie hierbei darauf, dass bei den Parametern vom Typ "$prefs[variable_path_fs]" die Pfade *absolut* anzugeben sind, also mit führendem "/"! Dagegen gilt beispielsweise der Pfad zum SixCMS *relativ* zur DOCUMENT_ROOT des Webservers, also *ohne* führenden "/": [...] $prefs[sixcms_path] = "sixcms"; [...] © 2002 Six Offene Systeme GmbH 12 Installation und Administration Beachten Sie bitte auch, dass der Webserver-User Lese-Zugriff auf diese Datei benötigt, und deshalb auch sämtliche übergeordnete Verzeichnisse für ihn zugänglich sein müssen (es muss mindestens das "executable"-Flag gesetzt sein)! 3.2.7 Berechtigungen anpassen in /home/sixcms Das Verzeichnis /home/sixcms enthält unter anderem üblicherweise das LogVerzeichnis und das Lizenzverzeichnis. Auf diese muß der Webserver-User Schreibberechtigung besitzen, z.B. mit $ $ $ $ $ chmod chmod chmod chmod chmod -R -R -R -R -R a+w a+w a+w a+w a+w /home/sixcms/export /home/sixcms/import /home/sixcms/licence /home/sixcms/logs /home/sixcms/spool 3.2.8 SixCMS im DOCUMENT_ROOT Ihres Webservers aktivieren: (Bitte geben Sie hier den Pfad zur DOCUMENT_ROOT Ihres Webservers ein) $ cd /DOCUMENT_ROOT $ gtar -xvzpf /home/sixcms/pkg/sixcms5_docs.tgz 3.2.9 Anpassen der Berechtigungen und der Konfigurationsdatei: Sie müssen sicherstellen, dass der Webserver-User in die Unterverzeichnisse von "sixcms_upload" schreiben darf, z.B. mit: $ chmod -R a+w /DOCUMENT_ROOT/sixcms_upload/* Alternativ können Sie auch mit "chown" die Verzeichnisse dem User übertragen, als der der Apache-Webserver läuft (siehe Parameter „User“ in „httpd.conf“), also z.B.: $ chown -R nobody /DOCUMENT_ROOT/sixcms_upload/* Schließlich müssen Sie eventuell noch den Ablageort der Konfigurationsdatei anpassen: $ vi /DOCUMENT_ROOT/sixcms_config_user.php 3.2.10 Neustarten des Webservers: Bevor Sie das SixCMS-Modul aktivieren sollten Sie Ihre Apache-Konfiguration überprüfen: © 2002 Six Offene Systeme GmbH 13 Installation und Administration $ /usr/local/apache/1.3.xx/bin/apachectl configtest Syntax OK und dann, um die Installation abzuschließen, den Webserver neu starten: $ /usr/local/apache/1.3.xx/bin/apachectl stop $ /usr/local/apache/1.3.xx/bin/apachectl start Sollte das Modul nicht zur PHP-Version passen taucht folgende Fehlermeldung auf: PHP Warning: SixCMS 5.0: Unable to initialize module Module compiled with debug=0, thread-safety=0 module API=20001222 PHP compiled with debug=0, thread-safety=0 module API=20001214 These options need to match in Unknown on line 0 In diesen Fall sollten Sie das für Ihre PHP-Version passende Modul von der SixCMSSupport-Seite herunterladen, es muss nur die .so-Datei in das Verzeichnis /home/sixcms/lib kopiert werden und der symbolische Link „sixcms5.so“ angepasst werden. Bitte beachten Sie, daß SixCMS 5.0 nur für PHP > 4.1.2 verfügbar ist. Ältere Versionen werden nicht unterstützt. Auch wenn beim letzten Befehl keine Fehlermeldung auf Ihrer Systemkonsole erscheint, sollten Sie die letzten Einträge im Apache-Fehlerprotokoll überprüfen (den genauen Pfad entnehmen Sie bitte dem Parameter “ErrorLog” in der “httpd.conf”): $tail /usr/local/apache/1.3.xx/logs/error_log [...] [Fri Aug 31 17:18:20 2001] [notice] Apache/1.3.xx (Unix) PHP/4.1.x configured – resuming normal operations Die Installation ist damit abgeschlossen. Sie sollten nun über die URL http://www.ihrefirma.de/sixcms/admin/ auf das Administrationstool von SixCMS zugreifen können. 3.2.11 Eingabe Lizenzschlüssel und erstes Login: Wenn Sie diese URL zum ersten Mal aufrufen, werden Sie automatisch zum Lizenztool weitergeleitet, in das Sie bitte die Ihnen zur Verfügung gestellten Lizenzschlüssel eintragen. Am Besten tragen Sie gleich alle ein. Bitte beachten Sie: Die Lizenzschlüssel passen nur zu dem Ihnen zur Verfügung gestellten „licence_ident“, den Sie unbedingt vorher in Ihrer sixcms_config.php eingetragen haben müssen. © 2002 Six Offene Systeme GmbH 14 Installation und Administration Nach erfolgreicher Eingabe rufen Sie erneut http://www.ihrefirma.de/sixcms/admin/ auf. Sie erhalten nun die Loginmaske. Wenn Sie sich nun einloggen, erzeugen Sie automatisch den ersten Benutzer (Superuser) mit dem von Ihnen eingegebenen Usernamen und Passwort. Diesen Benutzer können Sie selbstverständlich später noch ändern, aber bitte geben Sie diesen ersten User sorgfältig ein. 3.2.12 Überprüfung der Systemkonfiguration: Um zu prüfen ob alle Pfade korrekt eingegeben wurden und Ihr Webserver richtig konfiguriert ist, klicken Sie bitte in der System-Navigation auf Admin: Systemtools und wählen Sie das Programm „check“. Sie erhalten nun eine Übersicht über die eingegebenen Parameter mit einem SOLL/IST-Vergleich. Passen Sie gegegebenfalls die entsprechenden Einstellungen in sixcms_config.php oder der Webserverkonfiguration an und rufen Sie die Seite zur Kontrolle erneut auf. © 2002 Six Offene Systeme GmbH 15 Installation und Administration 4. Administration im laufenden Betrieb Wurde das SixCMS erst einmal erfolgreich gestartet fallen für den Administrator kaum noch Aufgaben an, um den störungsfreien Betrieb des Systems zu gewährleisten. Alle relevanten Informationen, die Sie nach erfolgter Installation zur Wartung des Systems brauchen, finden Sie - nach Anmeldung als Superuser - durch Aufruf von Admin: Systemtools: check. © 2002 Six Offene Systeme GmbH 16 Installation und Administration 4.1 Backup Eine der wichtigsten Aufgaben des Systemverwalters ist die Datensicherung, um in Falle eines Ausfalls des Servers das System wiederherstellen zu können. Diese Sicherung lässt sich in zwei Bereiche aufteilen: • Backup der Betriebssystemumgebung nebst Webserver, PHP, MySQLBinaries, SixCMS-Modul, Hilfsprogramme usw., also „Standardsicherung“. • Backup der Webseiten-Inhalte, also des vom SixCMS verwalteten Contents und Layoutes, hier „Contentsicherung“ genannt. Bei der Standardsicherung ist genau so zu verfahren wie bei der Sicherung eines Apache-Webservers ohne SixCMS. Ist der Server einmal fertig eingerichtet, kann diese Sicherung archiviert werden und muss nur nach einem Update aktualisiert werden. Die Contentsicherung sollte so aussehen, dass zuerst die Inhalte SixCMS- Datenbank gesichert werden indem ein sog. „dump“ erstellt wird, und dieser dann gleich anschliessend zusammen mit den Document-Root des Webservers gesichert werden sollte. Den Datenbank-Dump erzeugen Sie z.B. mit $ mysqldump –q –l –u sixcms sixcms5_ihrefirma > sixcms5_ihrefirma.DATUM.sql Alternativ können Sie dieses Backup auch gleich komprimien: $ mysqldump –q –l –u sixcms sixcms5_ihrefirma | gzip > sixcms5_ihrefirma.DATUM.sql.gz Hierdurch wird die komplette SixCMS-Datenbank in eine (komprimierte) (ASCII-)Datei geschrieben. Diese könnte man dazu verwenden, im Falle eines Falles mit $ mysql –u root sixcms5_ihrefirma < sixcms5_ihrefirma.DATUM.sql bzw. bei der komprimierten Methode mit $ gunzip < sixcms5_ihrefirma.DATUM.sql.gz | mysql –u root sixcms5_ihrefirma die komplette Datenbank wieder herzustellen. Vor dem Einlesen dieses Dumps muss allerdings in eine leere also i.d.R. neu angelegten MySQL-Datenbank erfolgen! Neben der Datenbank muss zur Sicherung des Contents das Verzeichnis „sixcms_upload“, das in der Regel im Dokument-Root Ihres Webservers liegt, inklusive aller Unterverzeichnisse archiviert werden. Dies kann z.B. mittels „tar“-Befehl oder einem anderen UNIX-Backup-Tool geschehen. © 2002 Six Offene Systeme GmbH 17 Installation und Administration 4.2 SixCMS-Updates In unregelmäßigen Abständen werden Patches zu SixCMS 5.0 veröffentlicht, die Fehlerbehebungen (sog. „bug-fixes“) und/oder funktionale Erweiterungen beinhalten. Diese Patches werden samt Upgradeanleitung auf der SixCMS-Support-Seite http://www.sixcms.de/support/ veröffentlicht, und können dort von registrierten Kunden jederzeit in der aktuellsten Version heruntergeladen werden. Bitte beachten Sie, dass auch hier für verschiedene Betriebssystem-Versionen meist unterschiedliche SixCMS5-Module benötigt werden! Die Patches enthalten in aller Regel eine neue „shared object“-Datei. Diese wird dann, wie in der Upgradeanleitung des Patches beschrieben, in das Verzeichnis „/home/sixcms/lib“ kopiert und der dort vorhandene symbolische Link „sixcms5.so“ mit diesem neuen Modul verknüpft. Bei manchen Patches ist es zudem notwendig ein Update der SixCMS- Datenbank durchzuführen. Dies wird dann aber in der Upgradeanleitung des jeweiligen Patches näher beschrieben. Um das installierte Update zu aktivieren muss zum Schluss der Apache Webserver neu gestartet werden: $ /usr/local/apache/bin/apachectl stop $ /usr/local/apache/bin/apachectl start Nach erfolgtem Patch empfiehlt es sich die „Standardsicherung“ zu aktualisieren. © 2002 Six Offene Systeme GmbH 18 Installation und Administration Anhang-1: MySQL-User für SixCMS Anhand dieser Anleitung können Sie einen MySQL-User mit den benötigten Zugriffsrechten auf Ihre SixCMS-Datenbank anlegen. Im folgenden nehmen wir mal an, dass für den MySQL-Superuser „root“ noch kein Passwort vergeben wurde. Dies macht zwar die Einrichtung des Servers etwas bequemer, stellt aber eine Sicherheitslücke dar die bei einem Produktivsystem möglichst schnell geschlossen werden sollte! Falls dies auf Ihrem Datenbank-Server schon geschehen ist müssen Sie zur Passwort-Eingabe zusätzlich die Option „-p“ oder „--password“ verwenden. Stellen Sie eine Verbindung zur Datenbank „mysql“ her, die zum Zeitpunkt der MySQL-Installation automatisch angelegt wird und u.a. Datenbank-, Host- und Benutzer-Tabellen enthält. $ mysql -u root mysql Der MySQL-Server meldet sich nun z.B. mit Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 3.23.37 Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql> An diesem MySQL Prompt geben Sie folgendes ein: mysql> INSERT INTO user (Host, User, Password) -> VALUES('localhost', 'sixcms', password('Ihr_Passwort')); MySQL quittiert Ihnen das mit: Query OK, 1 row affected (0.00 sec) Sie haben nun einen User mit Namen „sixcms“ eingerichtet, der aber noch über keinerlei Rechte verfügt: © 2002 Six Offene Systeme GmbH 19 Installation und Administration mysql> SELECT * FROM user WHERE User='sixcms'; +-----------+---------+------------------+-------------+-------------+------------+-------------+-------------+-----------+-------------+---------------+-------------+-----------+------------+-----------------+------------+------------+ | Host | User | Password | Select_priv | Insert_priv | Update_pr iv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Proce ss_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | +-----------+---------+------------------+-------------+-------------+------------+-------------+-------------+-----------+-------------+---------------+-------------+-----------+------------+-----------------+------------+------------+ | localhost | sixcms | 7e25a3af5175e52b | N | N | N | N | N | N | N | N | N | N | N | N | N | N | +-----------+---------+------------------+-------------+-------------+------------+-------------+-------------+-----------+-------------+---------------+-------------+-----------+------------+-----------------+------------+------------+ 1 row in set (0.00 sec) mysql> Wie Sie sehen wird das MySQL-Passwort verschlüsselt in der dritten Spalte der „user“-Tabelle hinterlegt. Nun müssen noch Sie in der Tabelle „db“ die Zugriffsrechte Ihres Benutzer „sixcms“ auf Ihre Datenbank „sixcms4_ihrefirma“ festlegen: mysql> INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) -> VALUES ('localhost', 'sixcms4_ihrefirma', 'sixcms', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.00 sec) mysql> Dies können Sie anschliessend überprüfen mit: mysql> SELECT * FROM db WHERE user='sixcms'; +-----------+-------------------+---------+-------------+-------------+------------+-------------+-------------+-----------+------------+-----------------+-----------+------------+ | Host | Db | User | Select_priv | Insert_priv | Update_p riv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Ind ex_priv | Alter_priv | +-----------+-------------------+---------+-------------+-------------+------------+-------------+-------------+-----------+------------+-----------------+-----------+------------+ | localhost | sixcms4_ihrefirma | sixcms | Y | Y | Y | Y | Y | Y | N | N | N | N | +-----------+-------------------+---------+-------------+-------------+------------+-------------+-------------+-----------+------------+-----------------+-----------+------------+ 1 row in set (0.00 sec) mysql> Sie verlassen MySQL mit © 2002 Six Offene Systeme GmbH 20 Installation und Administration mysql> quit Achtung: um die gerade durchgeführten Zugriffsrechte-Änderungen zu aktivieren Müssen Sie unbedingt MySQL neu zu laden: $ mysqladmin -u root reload Jetzt sollten Sie testen, ob Sie als MySQL-Benutzer “sixcms” eine Verbindung mit Ihrer SixCMS-Datenbank aufbauen können: $ mysql -u sixcms -p'Ihr_Passwort' sixcms5_ihrefirma Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 528 to server version: 3.23.37 Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql> Bye $ quit Bitte überprüfen Sie auch die entsprechenden Parameter in der SixCMSKonfigurationsdatei: [...] $prefs['db'] = "sixcms5_ihrefirma"; $prefs['dbhost'] = "localhost"; $prefs['dbuser'] = "sixcms"; $prefs['dbpass'] = ""; [...] Bitte denken Sie daran, dass ab jetzt die Verwaltung Ihrer SixCMS-Datenbank ausschließlich mittels der SixCMS-Applikation erfolgen sollte. Jeglicher anderweitige direkte Zugriff auf die SixCMS-Datenbank wird von Six nicht supported! Selbstverständlich können aber bei Bedarf weitere MySQL-Instanzen für eigene Applikationen angelegt werden. © 2002 Six Offene Systeme GmbH 21 Installation und Administration Anhang-2: SixCMS-Konfigurationsdatei Im folgenden werden noch einmal alle relevanten Einträge der SixCMS Konfigurationsdatei erläutert (/home/sixcms/config/sixcms_config.php). Bitte ersetzen Sie generell „DOCUMENT_ROOT“ durch die Document-Root Ihres Servers (z.B. /usr/local/apache/htdocs) Zeile 12 ff. - Lizenz: $prefs['licence_ident'] = "customer"; $prefs['licence_file_fs'] = "/home/sixcms/licence/licence.six"; $prefs['masterSlave'] = "standalone"; Bitte geben Sie in jedem Falle den licence_ident genau so ein, wie Sie ihn von Six zur Verfügung gestellt bekommen haben. Nur dann sind Ihre Lizenzschlüssel gültig. Zeile 18 ff. - Zugangsdaten zur Datenbank: $prefs['db'] = "sixcms5_ihrefirma"; $prefs['dbhost'] = "localhost"; $prefs['dbuser'] = "sixcms"; $prefs['dbpass'] = ""; Hier werden die Zugangsparameter zur MySQL Datenbank definiert, der Datenbankname sollte sich in der Regel aus dem Präfix „sixcms5_“ und Ihrem Firmennamen zusammensetzen, Sie haben Ihn beim Anlegen der Datenbank selbst definiert. Sollte die Datenbank auf einer anderen Maschine als der Apache-Webserver laufen, kann diese im Parameter $prefs[dbhost] definiert werden. Den Datenbankuser ($prefs[dbuser] und das Passwort dieses User $prefs[dbpass] tragen Sie bitte entsprechend ein. Zeile 25 - Authentifizierungssart: $prefs['auth']['type'] = "internal"; Stellen Sie hier die von Ihnen gewünschte Authentifizierung und Optionen ein, wenn Sie nicht die SixCMS-interne Userverwaltung nutzen möchten. Näheres entnehmen Sie bitte der Dokumentation. © 2002 Six Offene Systeme GmbH 22 Installation und Administration Zeile 29 - Servereinstellungen: $prefs['sixcms_server'] = "http://www.example.com:port"; $prefs['sixcms_path'] = "sixcms"; $prefs['sixcms_path_fs'] = "sixcms5:sixcms"; Bitte fügen Sie hier die URL zu Ihrem Server, den relativen Ablageort des SixCMS und den absoluten Ablageort ein (an letzterem sollten keine Änderungen notwendig sein). Zeile 34 ff. – weitere Pfade: # other paths $prefs['template_path_fs'] = "DOCUMENT_ROOT/sixcms_upload/templates"; $prefs['spool_path_fs'] = "/home/sixcms/spool"; $prefs['tmp_path_fs'] = "/tmp"; „template_path_fs“ ist der Ablageort für die evaluierten Template-Files. Die Ablage im Verzeichnis sixcms_upload ist nicht unbedingt notwendig und kann auch frei gewählt werden. In „spool_path_fs“ werden Ausgaben des Schedulers abgelegt, wenn dafür kein absoluter Pfad angegeben wurde (z.B. „HTTP-Aufruf“ speichern als „test.html“). „tmp_path_fs“ ist das Verzeichnis, in das von SixCMS temporäre Dateien gespeichert werden. Ist dieser Parameter nicht angegeben, wird standardmäßig „/tmp“ verwendet. Zeile 40 ff. – Medien: # media definitions # $prefs['media_path'] = "sixcms_upload/media"; $prefs['media_path_fs'] = "DOCUMENT_ROOT/sixcms_upload/media"; $prefs['autothumb_width'] = 70; # in pixel Ist der Parameter „media_path“ gesetzt, so werden Medien ohne Umweg direkt aus dem Upload-Verzeichnis ausgegeben. Unter diesen Umständen ist die Nutzung von %CMS_AUTH() in der Konfiguration des Medien-Containers nicht wirksam. %CMS_AUTH() erlaubt es Ihnen die Medien eines Containers gegen unberechtigten Zugriff zu schützen. Aus diesem Grund ist $prefs[media_path] ab SixCMS 5.0.2 standardmäßig deaktiviert. „media_path_fs“ ist der reale Ablageort der Medienfiles. Falls Sie Medien gegen unberechtigten Lesezugriff schützen möchten, sollten Sie media_path_fs außerhalb der Document-Root wählen (also unerreichbar für einen Standard-HTTP-Zugriff). „autothumb_width“ gibt die Breite des automatisch beim Upload zu erzeugenden Thumbnails an. Dieser Wert kann in der Konfiguration eines Containers für diesen Container angepaßt werden. Anmerkung: Für die automatische Thumbnail-Erzeugung benötigen Sie das Programm „convert“ aus dem Paket ImageMagick (siehe auch Systemvoraussetzungen). © 2002 Six Offene Systeme GmbH 23 Installation und Administration Zeile 44 ff. – Cache-Einstellungen: # caching $prefs['cache_path_fs'] = "DOCUMENT_ROOT/sixcms_upload/cache"; $prefs['caching_allowed'] = "on"; $prefs['caching_footer'] = "off"; $prefs['caching_wait'] = 20; # in seconds $prefs['caching_max_days'] = 2; # days before cache files are removed by scheduler jobs „cache_path_fs“ ist der tatsächliche Ablageort für Cachefiles, kann problemlos auch außerhalb der Document-Root liegen. Bei High-Traffic-Sites kann es sich empfehlen das Cache-Verzeichnis auf eine zweite, schnelle Platte zu legen. „caching_allowed“ schaltet das Caching des SixCMS komplett ein oder aus. Der Parameter „caching_footer“ gibt eine Zeile am Ende der gecachten Seiten aus. Wird ein Cachefile gerade erzeugt und ein zweiter Prozeß möchte dieses ausliefern, so bestimmt „caching_wait“ die Anzahl Sekunden, die dieser zweite Prozeß auf die Fertigstellung des Cachefiles warten soll. Ist die Zeit verstrichen, erhält der Anwender die Meldung „invalid cachefile“. Zeile 51 ff. - Ablageort SixCMS-Logfiles und kundenspezifischer Funktionen: # logging, custom_funcs and errors $prefs['log_path_fs'] = "/home/sixcms/logs"; $prefs['custom_funcs_fs'] = "/home/sixcms/custom_functions"; Im „log_path_fs“ werden alle Logfiles abgelegt, die von SixCMS erzeugt werden. Im Verzeichnis „custom_funcs_fs“ können PHP-Funktionen abgelegt werden, die innerhalb von SixCMS-Templates per %CMS_REQUIRE(funktionsname) eingebunden werden können. Der Dateiname muß dabei mit dem Funktionsnamen identisch sein, also z.B. „funktionsname.php“. Zeile 53 ff. – Log-Einstellungen: $prefs['syslog'] = "personal"; # personal | anonymous | off $prefs['performance_logging'] = "off"; $prefs['access_logging'] = "off"; $prefs['error_logging'] = 1; Über den Parameter „syslog“ können Sie zwischen einem persönlichen, anonymen und gar keinem System-Log wählen. Performance-Logging erlaubt Ihnen die langsameren Seiten Ihres Systems zu finden. Dieses Log finden Sie neben dem errorlog in $prefs[log_path_fs]. Wir empfehlen das error_logging zu aktivieren (Wert 1), auf diese Weise können Fehler sehr viel leichter nachvollzogen werden. „access_logging“ ist nur relevant, wenn Sie das optionale Modul SixCMS-Statistik einsetzen. Das hiermit erzeugte access_log kann dazu verwendet werden eine Artikelstatistik zu erzeugen, die auch zuverlässig alias-Aufrufe auflöst.. © 2002 Six Offene Systeme GmbH 24 Installation und Administration Zeile 58 ff. – Fehler-Templates: $prefs['error_frontend_template_id'] = 0; $prefs['error_backend_template_id'] = 0; SixCMS erlaubt es Ihnen eigene Templates für die Darstellung von Fehlerseiten (wie z.B. „error resolving template“ oder „access denied“ zu verwenden. Bitte tragen Sie hierfür die ID des entsprechenden Templates ein. Als einzigen (optionalen) Platzhalter sollten diese Templates %CMS_ERROR() enthalten. Sie können für Frontend und Backend verschiedene Fehlertemplates konfigurieren. Defaultmäßig sind diese Zeilen auskommentiert und die Fehler werden „schmucklos“ auf einer weißen Seite ausgegeben. Zeile 64 ff. – Zusatz-Optionen: $prefs['max_batch'] = 100; $prefs['sixcms4_url_compatibility'] = "off"; max_batch bestimmt die Defaulteinstellung für die maximale Anzahl an Artikeln, die ein Benutzer bei einer Massenoperation verändern darf. Diesen Defaultwert können Sie bei jedem Benutzer individuell einstellen (Rechteverwaltung): sixcms4_url_compatibility sollte nur auf „on“ gesetzt werden, wenn Sie mit einer Site arbeiten, die von SixCMS4 auf SixCMS5 migriert wurde – und auch in diesem Falle nur falls Probleme bei der Übergabe von Werten in der URL auftauchen. Diese Option erlaubt, daß Suchparameter in der URL statt regulär mit sv[feldname]=wert auch einfach als feldname=wert geschrieben werden können. Zeile 69 ff. – Session-Optionen: $prefs['session_name'] = "CMS_SESSION_ID"; $prefs['session_idletime'] = 7200; # in seconds (1 hour = 3600) Den Session-Namen sollten Sie nicht verändern. Die Session-Idletime gibt an, nach welcher Zeitspanne an Inaktivität eine Session automatisch ihre Gültigkeit verliert. © 2002 Six Offene Systeme GmbH 25 Installation und Administration Zeile 74 ff. – Benutzte Programm und deren Optionen: # used programs $prefs['programs']['convert'] = "/usr/bin/convert"; $prefs['programs']['zip'] = "/usr/bin/zip"; $prefs['programs']['unzip'] = "/usr/bin/unzip"; $prefs['programs']['tar'] = "/bin/tar"; Programme, die von SixCMS benutzt werden. Bitte passen Sie hier ggfs. die Pfade an Ihre Gegebenheiten an. “convert” wird benutzt um beim Upload von Medien automatisch ein Thumbnail zu erzeugen, es ist Bestandteil vom Paket ImageMagick (siehe Systemvoraussetzungen). “zip”, “unzip” und “tar” werden standardmäßig für den Massen-Import und –Export benötigt. Zeile 78 ff. – Optionale Zusatzprogramme: # # # # # # # # optional: $prefs['programs']['wvware'] = "/usr/bin/wvWare"; $prefs['programs']['pdflatex'] = "/usr/bin/wvWare"; $prefs['programs']['gzip'] = "/usr/bin/gzip"; $prefs['programs']['gunzip'] = "/usr/bin/gunzip"; $prefs['programs']['compress'] = "/usr/bin/compress"; $prefs['programs']['uncompress'] = "/usr/bin/uncompress"; $prefs['programs']['antivirus'] = "/usr/local/bin/uvscan.sh"; “wvWare”: Tool zur automatischen Konvertierung von Microsoft-Word-Dateien beim Upload (innerhalb eines Artikels). “pdflatex”: Wird benötigt für das optionale Modul SixCMS-tex2pdf, mit dem SixCMSInhalte dynamisch als PDF ausgegeben werden können. “gzip”, “gunzip”, “compress” und “uncompress”: Archivierungs-Programme. Sie müssen diese nur angeben, wenn Sie die entsprechenden “archive”-Parameter setzen möchten. “antivirus”: Optionales Zusatzprogramm, daß hochgeladene Dateien auf Viren prüft, bevor sie in die Mediendatenbank aufgenommen werden. © 2002 Six Offene Systeme GmbH 26 Installation und Administration Zeile 100 ff. – Mailserver-Optionen: # email settings # mail server to use for mailings and email agent $prefs['mail_server'] = "localhost"; # query DNS for mail domain validation $prefs['mail_check_dns'] = "on"; # array with additional mail headers # $prefs['mail_header'] = array("X-MSMail-Priority: normal"); # hostname to use in SMTP HELO headers # $prefs['mail_helo_host'] = "valid_helo_host"; Einstellungen für den Mail-Versand. „mail_server“: Server, der für den Mailversand genutzt wird. „mail_check_dns“: Wenn diese Option auf „on“ steht, werden Email-Adressen vor Eintrag im Profilmanager auf Existenz der Domain geprüft. Existiert die Domain nicht, wird der Eintrag verweigert. „mail_header“: ein PHP-Array mit zusätzlich zu verwendenden Mail-Headern, z.B. „ReplyTo: [email protected]“ „mail_helo_host“: Falls Sie Probleme beim Versenden von Mails haben (also z.B. Ihr Mailserver Nachrichten von Ihrem Webserver nicht akzeptiert), können Sie hier optional einen validen Hostnamen eintragen. Zeile 107 ff. – Einstellungen und Ablageort von Import/Export # import-export $prefs['import_path_fs'] = "/home/sixcms/import"; $prefs['export_path_fs'] = "/home/sixcms/export"; # $prefs['format_path_fs'] = "/home/sixcms/format"; # time limit to remove temporary directories. $prefs['import_temp_limit'] = 3600; # in seconds $prefs['export_temp_limit'] = 3600; # in seconds “import_path_fs”: Verzeichnis, in dem Dateien für den automatischen Import abgelegt werden. “export_path_fs”: Verzeichnis, in dem der Export (temporär) exportierte Dateien ablegt. “format_path_fs”: Verzeichnis für kundenspezifische Formate “import_time_limit”, “export_time_limit”: Lebensdauer für temporäre Dateien in Importund Export-Verzeichnissen. Zeile 114 ff. – Einstellungen der Archivierungsprogramme für Import/Export # achive comands to compress/uncompress $prefs['archive']['comp']['zip'] = ... $prefs['archive']['decomp']['zip'] = ... Standardmäßig ist das Format „zip“ konfiguriert. © 2002 Six Offene Systeme GmbH 27 Installation und Administration Zeile 122 ff. – Optionale Archivierungsprogramme für Import/Export # optional additional archivers # $prefs['archive']['comp']['tgz'] = ... # $prefs['archive']['decomp']['tgz'] = ... Sie müssen diese nur konfigurieren, wenn Sie auch andere Archiv-Formate außer “zip” mit Import/Export verarbeiten möchten. Der Artikel- und Medien-Import/-Export kann zusätzlich zu “zip” auch all diejenigen Archiv-Formate verarbeiten, die Sie in den “archive”-Parametern konfigurieren. Zeile 133 ff. – Proxy-Einstellungen # proxy for URLs # $prefs['proxy']['http'] = "myproxy.example.com:port"; # $prefs['proxy']['no'] = "mydomain.com yourdomain.com"; Diese Einstellungen benötigen Sie nur dann, wenn von Ihrem Server aus Zugang zum Internet benötigt wird (z.B. Import einer externen URL), dieser Zugang aber in Ihrem Netzwerk nur über einen Proxy-Server möglich ist. Bitte beachten Sie, daß Sie beim Editieren auf keinen Fall Zeichen hinter dem abschließenden ?> eingeben. Dies führt zu Funktionsstörungen des SixCMS. Beachten Sie dabei auch, daß ein Texteditor manchmal ohne Ihr zutun ein „newline“ am Ende der Datei einfügt. Auch diese führt zu Problemen und muß in jedem Falle manuell wieder entfernt werden. # attention: # please DO NOT ADD ANY characters AFTER this position! # the > has to be the last character in this file! ?> © 2002 Six Offene Systeme GmbH 28