Inhaltsverzeichnis
CMS Magnolia
Magnolia CMS ist einfach zu bedienendes Open Source - Content Management System (CMS). Seit dem Erscheinen im Jahre 2003, ist Magnolia schnell zum beliebten Werkzeug für auf Java basierende neue Content Management-Lösungen geworden.
Voraussetzungen
Als Voraussetzung für die Installation von Magnolia CMS sind folgende Komponenten erforderlich:
- Lauffähiger Web-Server z.B. Apache HTTP Server (empfohlen)
- Lauffähiger Application-Server z.B. Apache Tomcat
- Xalan JavaArchiv (jar-Datei) von Xalan XML
Herunterladen
Zur Installation von Magnolia CMS kann unter folgender Adresse die Magnolia Community Edition heruntergeladen werden:
Die hier besprochene Version ist die WebArchive (WAR-Datei) - ein für z.B. Apache Tomcat als Application zu installierende Version, welche einen lauffähigen Apache Tomcat voraussetzt.
magnolia-empty-webapp-3.6.3.war
Zusätzlich wird noch die Xalan JavaArchiv (JAR-Datei) benötigt. WICHTIG ist hier unbedingt die Version 2.4.0 zu verwenden !!!
Der Name der zu herunterladenden Datei lautet:
xalan-2.4.0.jar
Grundlagen
Das CMS Magnolia CMS teilt sich in zwei eigenständige Web-Anwendungen.
- Authoren Web-Anwendung
- Öffentliche Web-Anwendung
Die Authoren Web-Anwendung dient zur Erstellung der Web-Seiten und zur Verwaltung der Seiten. Die öffentliche Web-Anwendung, ist die Web-Anwendung, die auch tatsächlich von der Öffentlichkeit erreicht wird.
Dies hat Nachteile, jedoch ein wesentlicher Vorteil besteht darin, dass die Authoren Web-Anwendung hinter z.B. einer Firewall sein kann und sich nicht unbedingt auf dem produktiven Web-Server befinden muss, wie die öffentliche Web-Anwendung.
Es müssen also zwei Web-Anwendungen installiert werden.
Einer der einfachsten Wege dies zu erreichen, ist das heruntergeladene WAR-Archiv wie folgt zu kopieren und entsprechend umzubenennen. Mit folgendem Befehl, kann das heruntergeladene WAR-Archiv magnolia-empty-webapp-3.6.3.war
kopiert und umbenannt werden:
# cp /tmp/magnolia-empty-webapp-3.6.3.war /tmp/magnoliaAuthor.war
Mit diesem Befehl, kann das noch bestehende WAR-Archiv abschließend umbenannt werden:
# mv /tmp/magnolia-empty-webapp-3.6.3.war # cp /tmp/magnoliaPublic
Es soltlen nun zwei WAR-Archive mit folgenden Namen im Ordner /tmp
vorhanden sein:
magnoliaAuthor.war
magnoliaPublic.war
Installation
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Zur Installation können zwei Wege gegangen werden.
Der erste Weg ist, den Apache Tomcat mit folgendem Befehl zu beenden:
# service tomcat5 stop
Anschließend können die heruntergeladenen und umbenannten WAR-Archive magnoliaAuthor.war
und magnoliaPublic
in den Web-Application-Ordner /usr/share/tomcat5/webapps
mit folgenden Befehlen kopieren werden:
# cp /tmp/magnoliaAuthor.war /usr/share/tomcat5/webapps/ # cp /tmp/magnoliaPublic.war /usr/share/tomcat5/webapps/
Abschließend wird der Apache Tomcat mit folgendem Befehl wieder gestartet:
# service tomcat5 start
Der zweite Weg wäre eine Installation über den standardmäßig nach der Installation des Apache Tomcat mitgelieferten Tomcat Manager bzw. Tomcat Web Application Manager durchzuführen. Dies kann dann ganz bequem über die Web-Oberfläche geschehen.
Fehlermeldungen
org.apache.xalan.processor.TransformerFactoryImpl not found
Falls folgende Fehlermeldung im Apache Tomcat-Log (/var/log/tomcat5/catalina.out
) auftauchen sollte:
Using CATALINA_BASE: /usr/share/tomcat5 Using CATALINA_HOME: /usr/share/tomcat5 Using CATALINA_TMPDIR: /usr/share/tomcat5/temp Using JRE_HOME: Nov 17, 2008 3:27:22 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib Nov 17, 2008 3:27:23 PM org.apache.coyote.http11.Http11BaseProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Nov 17, 2008 3:27:23 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1803 ms Nov 17, 2008 3:27:23 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Nov 17, 2008 3:27:23 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/5.5.20 Nov 17, 2008 3:27:23 PM org.apache.catalina.core.StandardHost start INFO: XML validation disabled Nov 17, 2008 3:27:25 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive magnoliaPublic.war DEBUG info.magnolia.cms.servlets.MgnlServletContextListener MgnlServletContextListener.java(contextInitialized:164) 17.11.2008 15:27:27 rootPath is /usr/share/tomcat5/webapps/magnoliaPublic, webapp is magnoliaPublic DEBUG info.magnolia.cms.servlets.MgnlServletContextListener MgnlServletContextListener.java(getPropertiesFilesString:186) 17.11.2008 15:27:27 magnolia.initialization.file value in web.xml is undefined, falling back to default: WEB-INF/config/${servername}/${webapp}/magnolia.properties,WEB-INF/config/${servername}/magnolia.properties,WEB-INF/config/${webapp}/magnolia.properties,WEB-INF/config/default/magnolia.properties,WEB-INF/config/magnolia.properties INFO info.magnolia.cms.beans.config.PropertiesInitializer PropertiesInitializer.java(loadPropertiesFile:224) 17.11.2008 15:27:30 Loading configuration at /usr/share/tomcat5/webapps/magnoliaPublic/WEB-INF/config/default/magnolia.properties INFO info.magnolia.cms.beans.config.PropertiesInitializer PropertiesInitializer.java(loadPropertiesFile:224) 17.11.2008 15:27:30 Loading configuration at /usr/share/tomcat5/webapps/magnoliaPublic/WEB-INF/config/magnoliaPublic/magnolia.properties Initializing Log4J Initializing Log4J from [WEB-INF/config/default/log4j.xml] --------------------------------------------- MAGNOLIA LICENSE --------------------------------------------- Version number : 3.6.3 Build : 2. October 2008 Edition : Community Edition Provider : Magnolia International (info@magnolia.info) INFO info.magnolia.cms.beans.config.ConfigLoader ConfigLoader.java(load:121) 17.11.2008 15:27:30 Initializing content repositories INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(init:196) 17.11.2008 15:27:30 System : loading JCR INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:website INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:config INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:users INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:userroles INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:usergroups INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:mgnlSystem INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepositories:303) 17.11.2008 15:27:30 Loading workspace:mgnlVersion INFO info.magnolia.cms.beans.config.ContentRepository ContentRepository.java(loadRepository:346) 17.11.2008 15:27:30 System : loading JCR magnolia INFO info.magnolia.jackrabbit.ProviderImpl ProviderImpl.java(init:176) 17.11.2008 15:27:30 Loading repository at /var/lib/tomcat5/webapps/magnoliaPublic/r epositories/magnolia (config file: /usr/share/tomcat5/webapps/magnoliaPublic/WEB-INF/config/repo-conf/jackrabbit-bundle-derby-search.xml) ERROR info.magnolia.jackrabbit.ProviderImpl ProviderImpl.java(init:213) 17.11.2008 15:27:30 Unable to initialize repository: Provider org.apache.xalan.processor.TransformerFactoryImpl not found javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found ...
muss der Apache Tomcat mit folgendem Befehl beendet werden:
# service tomcat5 stop
Die Lösung dieses Problems ist, das JAR-Archiv xalan-2.4.0.jar
in das Verzeichnis /usr/share/tomcat5/webapps/magnoliaAuthor/WEB-INF/lib
und das Verzeichnis /usr/share/tomcat5/webapps/magnoliaPublic/WEB-INF/lib
mit folgenden Befehlen zu kopieren:
# cp /tmp/xalan-2.4.0.jar /usr/share/tomcat5/magnoliaAuthor/WEB-INF/lib # cp /tmp/xalan-2.4.0.jar /usr/share/tomcat5/magnoliaPublic/WEB-INF/lib
Als nächstes müssen noch die Zugriffsrechte mit folgenden Befehlen richtig gesetzte werden:
# chown tomcat.tomcat /usr/share/tomcat5/magnoliaAuthor/WEB-INF/lib/xalan-2.4.0.jar # chown tomcat.tomcat /usr/share/tomcat5/magnoliaPublic/WEB-INF/lib/xalan-2.4.0.jar
Abschließend wird der Apache Tomcat mit folgendem Befehl wieder gestartet:
# service tomcat5 start
Error on line -1: Premature end of file.
Falls folgende Fehlermeldung im Apache Tomcat-Log (/var/log/tomcat5/catalina.out
) auftauchen sollte:
Using CATALINA_BASE: /usr/share/tomcat5 Using CATALINA_HOME: /usr/share/tomcat5 Using CATALINA_TMPDIR: /usr/share/tomcat5/temp Using JRE_HOME: Nov 17, 2008 3:45:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib Nov 17, 2008 3:45:21 PM org.apache.coyote.http11.Http11BaseProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Nov 17, 2008 3:45:21 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1462 ms Nov 17, 2008 3:45:21 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Nov 17, 2008 3:45:21 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/5.5.20 Nov 17, 2008 3:45:21 PM org.apache.catalina.core.StandardHost start INFO: XML validation disabled Nov 17, 2008 3:45:23 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive magnoliaAuthor.war DEBUG info.magnolia.cms.servlets.MgnlServletContextListener MgnlServletContextListener.java(contextInitialized:164) 17.11.2008 15:45:23 rootPath is /usr/share/tomcat5/webapps/magnoliaAuthor, webapp is magnoliaAuthor DEBUG info.magnolia.cms.servlets.MgnlServletContextListener MgnlServletContextListener.java(getPropertiesFilesString:186) 17.11.2008 15:45:23 magnolia.initialization.file value in web.xml is undefined, falling back to default: WEB-INF/config/${servername}/${webapp}/magnolia.properties,WEB-INF/config/${servername}/magnolia.properties,WEB-INF/config/${webapp}/magnolia.properties,WEB-INF/config/default/magnolia.properties,WEB-INF/config/magnolia.properties INFO info.magnolia.cms.beans.config.PropertiesInitializer PropertiesInitializer.java(loadPropertiesFile:224) 17.11.2008 15:45:25 Loading configuration at /usr/share/tomcat5/webapps/magnoliaAuthor/WEB-INF/config/default/magnolia.properties INFO info.magnolia.cms.beans.config.PropertiesInitializer PropertiesInitializer.java(loadPropertiesFile:224) 17.11.2008 15:45:25 Loading configuration at /usr/share/tomcat5/webapps/magnoliaAuthor/WEB-INF/config/magnoliaAuthor/magnolia.properties Initializing Log4J Initializing Log4J from [WEB-INF/config/default/log4j.xml] --------------------------------------------- MAGNOLIA LICENSE --------------------------------------------- Version number : 3.6.3 Build : 2. October 2008 Edition : Community Edition Provider : Magnolia International (info@magnolia.info) INFO info.magnolia.cms.beans.config.ConfigLoader ConfigLoader.java(load:121) 17.11.2008 15:45:25 Initializing content repositories ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/magnoliaAuthor] StandardContext.java(listenerStart:3768) 17.11.2008 15:45:25 Exception sending context initialized event to listener instance of class info.magnolia.cms.servlets.MgnlServletContextListener java.lang.RuntimeException: org.jdom.input.JDOMParseException: Error on line -1: Premature end of file.
muss der Apache Tomcat mit folgendem Befehl beendet werden:
# service tomcat5 stop
Die Lösung dieses Problems ist, die bereits falsch/unvollständig angelegten repositories mit folgenden Befehlen wieder zu löschen:
# rm /usr/share/tomcat5/webapps/magnoliaAuthor/repositories/ -rf # rm /usr/share/tomcat5/webapps/magnoliaPublic/repositories/ -rf
Abschließend wird der Apache Tomcat mit folgendem Befehl wieder gestartet:
# service tomcat5 start
Abschließend sollte der Start ohne Probleme erfolgen!
Besonderheit: magnoliaPublic
WICHTIG ist, dass die Änderungen an der Konfigurationsdatei
/usr/share/tomcat5/webapps/magnoliaAuthor/WEB-INF/config/default/magnolia.properties
VOR der Konfiguration durch die Web-Oberfläche und dem ersten Start der Web-Anwendung magnoliaPublic
erfolgen !
Die Original-Konfigurationsdatei muss wie folgt angepasst werden:
#-------------------------------------------- # Here we define some properties not # configured in the config repository. # They are used in common before the initialization # of the repositories. # # WARNING: on Windows systems, either use the / # to separate path elements, or escape the \ with # another \, i.e C:\\magnolia\\data\\repositories # or c:/magnolia/data/repositories #-------------------------------------------- magnolia.cache.startdir=cache magnolia.upload.tmpdir=tmp magnolia.exchange.history=history magnolia.repositories.config=WEB-INF/config/default/repositories.xml magnolia.repositories.home=repositories magnolia.repositories.jackrabbit.config=WEB-INF/config/repo-conf/jackrabbit-bundle-derby-search.xml log4j.config=WEB-INF/config/default/log4j.xml # The directories in which the bootstrap files are searched # Tachtler # default: magnolia.bootstrap.dir=WEB-INF/bootstrap/author WEB-INF/bootstrap/common magnolia.bootstrap.dir=WEB-INF/bootstrap/public WEB-INF/bootstrap/common # This is only used for the initial installation afterward the configuration in the config repository is used # The value is saved in /server/admin # Tachtler # default: magnolia.bootstrap.authorInstance=true magnolia.bootstrap.authorInstance=false # Some modules contain optional sample content. They will check this property to decide if they should install # the sample data magnolia.bootstrap.samples=true # Switch to false to enhance the performance of the javascript generation and similar magnolia.develop=false #-------------------------------------------- # Repository connection #-------------------------------------------- magnolia.connection.jcr.userId = admin magnolia.connection.jcr.password = admin # Set it to true if bootstrapping/update should be performed automatically magnolia.update.auto=false
Änderungen an /usr/share/tomcat5/webapps/magnoliaAuthor/WEB-INF/config/default/magnolia.properties
Die relevanten Änderungen diesbezüglich sind mit einem Kommentar
# Tachtler
versehen.
bootstrap
-Dateien der jeweiligen Instanz, hier public
- magnolia.bootstrap.dir=WEB-INF/bootstrap/public WEB-INF/bootstrap/common
Keine Freischaltung als Author-Instanz
- magnolia.bootstrap.authorInstance=false
CMS Magnolia starten
Bevor die abschließende Konfiguration der Authoren- und der öffentlichen Seite über die Web-Anwendung erfolgen kann, sollten noch die ursprünglichen WAR-Archive aus dem Verzeichnis /usr/share/tomcat5/webapps
gelöscht werden.
Dazu ist es sehr wichtig, den Apache Tomcat zu stoppen!
Mit folgendem Befehl kann der Apache Tomcat beendet werden:
# service tomcat5 stop
Die Befehle zum löschen der WAR-Archive lauten:
# rm /usr/share/tomcat5/webapps/magnoliaAuthor.war -f # rm /usr/share/tomcat5/webapps/magnoliaPublic.war -f
Abschließend wird der Apache Tomcat mit folgendem Befehl wieder gestartet:
# service tomcat5 start
Die Endkonfiguration kann dann über die entsprechenden Web-Anwendungen erfolgen, welche z.B. unter folgenden Adressen (lokal) erreichbar sind:
- magnoliaAuthor http://localhost:8080/magnoliaAuthor
- magnoliaPublic http://localhost:8080/magnoliaPublic