Arndt Schönbergs Weblog

Sonntag Mai 22, 2016

Apache Roller: Links auf CSS verweisen auf lokalen Rechner

Ausgangssituation

  • Roller Installation auf Ubuntu 14.04 auf Wildfly in einer VM im lokalen Netzwerk
  • Zugriffe werden über einen anderen (extrenen) Server mit Apache weitergeleitet

Problem

Die in den Seiten eingebundenen Links (z.B. auf die CSS Dateien) verweisen auf den Server der VM und nicht auf den Apache Server, der nach außen sichtbar ist.

Lösung

Apache Roller bezieht den forderen Teil der URLs scheinbar immer von dem Server, auf dem die Software installiert ist (in diesem Fall die VM, die im lokalen Netz läuft). In dem Menüpunkt, der wie ich finde etwas versteckt ist,

Hauptmenü -> Systemadministration

kann dieses Verhalten überschrieben werden. Unter

Absolute URL zur Site (falls notwendig)

kann eine URL eingetragen werden, die für den Zugriff verwendet werden soll (z.B. http://www.<meine Domain>/roller). Wichtig ist hierbei, dass am Ende kein Slash mehr verwendet wird, da andernfalls die Links der Kategorien nicht mehr funktionieren. Nach den Änderungen musste ich Wildfly neu starten, damit die geänderten Werte auch verwendet werden.

Montag Dez 28, 2015

Installation von Roller 5.1.x in Wildfly 9.x

Dieser Artikel beschreibt die Installation von Roller 5.1.x in dem Applikationsserver Wildfly 10.x. Basis ist eine Ubuntu 14.04 Installation. Die Schritte sind für andere Betriebssysteme analog durchführbar.

Systemvoraussetzungen

  • Java 8
  • Postgres 9.3 (oder eine andere 9.x Version)
  • Wildfly 9.x
  • JDBC Treiber für Postgres als Modul wurde in Wildfly bereitgestellt

Download

Das Installationsarchiv und die Dokumentation von Roller können unter
https://roller.apache.org/
heruntergeladen werden. In dem Installationsarchiv findet sich neben dem WAR Archiv auch die Dokumentation als Open Document Dateien.

Datenbank anlegen

Roller legt alle Daten in einer Datenbank an. Um diese und einen entsprechenden Datenbanknutzer anzulegen, müssen folgende SQL-Befehle (über eine GUI wie PG-Admin oder auf der Kommandozeile) ausgeführt werden.
CREATE ROLE roller_user LOGIN PASSWORD 'secret' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE DATABASE roller OWNER roller_user encoding 'UTF8'; 
Nach der Erstellung der Datenbank in dieser anmelden und auch das Schema dem Nutzer zuordnen.
ALTER SCHEMA public OWNER TO roller_user;

Datenverzeichnis anlegen

Für die Ablage von Dateien (Uploads, Index-Dateien, ...) benötigt Roller ein Arbeitsverzeichnis. Unter Linux sollte dies unter /var angesiedelt sein (z.B. /var/roller). Das Verzeichnis muss angelegt werden. Der Nutzer, der Wildfly startet (im Allgemeinen „Wildfly“), muss Vollzugriff auf das Verzeichnis erhalten.
mkdir /var/roller
chown wildfly:wildfly /var/roller

Anpassungen in Wildfly

Bereitstellen des War-Archivs

Das War-Archiv muss in das deploy Verzeichnis (im Allgemeinen /standalone/deployments) von Wildfly kopiert und eine entsprechende dodeploy Datei (roller.war.dodeploy) angelegt werden.

JNDI-Einträge erstellen

Die JNDI-Einträge werden in der standalone.xml Datei angelegt (es kann auch die GUI verwendet werden). Für den Datenbank JNDI-Eintrag muss der Treiber bekannt sein und der eigentliche Eintrag erstellt werden. Der entsprechende Ausschnitt sieht wie folgt aus:
...
<datasource jta="false" jndi-name="java:/RollerDS" pool-name="RollerDS_Pool" enabled="true" use-java-context="true" use-ccm="true">
	<connection-url>jdbc:postgresql://localhost:5432/roller</connection-url>
	<driver>postgresql</driver>
	<security>
		<user-name>roller_user</user-name>
		<password>secret</password>
	</security>
</datasource>
<drivers>
	<driver name="postgresql" module="org.postgresDatabase.postgres">
		<xa-datasource-class>org.postgres.Driver</xa-datasource-class>
	</driver>
…
</drivers> 
...
Der Mail JNDI Eintrag, der ebenfalls in der standalone.xml abgelegt wird besteht aus den folgenden Teilen, wobei entsprechende Server und Authentifizierungsdaten ergänzt werden müssen.
...
        <subsystem xmlns="urn:jboss:domain:mail:2.0">
…
            <mail-session name="rollerMail" jndi-name="java:/RollerMail">
                <smtp-server outbound-socket-binding-ref="roller-mail-smtp"/>
            </mail-session>
        </subsystem>
…
        <outbound-socket-binding name="roller-mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
…

Wildfly module

Module in Wildfly können entweder in
WILDFLY_HOME/modules/
oder in
WILDFLY_HOME/modules/system/layers/base/
abgelegt werden. Da das erste Verzeichnis für nicht System-Module verwendet wird für Roller das Verzeichnis
WILDFLY_HOME/modules/org/apache/roller/configuration/main
erstellt. In diesem Verzeichnis werden die folgenden Dateien erzeugt.

module.xml

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.apache.roller.configuration"> 
   <resources> 
       <resource-root path="."/> 
   </resources> 
</module> 

roller-custom.properties

Der Installationstyp „auto“ ist für den ersten Start wichtig, da über diesen die Datenbanktabellen angelegt werden.
# Für den ersten Start
installation.type=auto
# Nach dem ersten Start
# installation.type=manual

# Linux
mediafiles.storage.dir=/var/roller/mediafiles
search.index.dir=/var/roller/searchindex
log4j.appender.roller.File=/var/roller/roller.log

# WIndows
# mediafiles.storage.dir=d:/t/Roller/rollerdata/mediafiles
# search.index.dir=d:/t/Roller/rollerdata/searchindex
# log4j.appender.roller.File=d:/t/Roller/rollerdata/roller.log

database.configurationType=jndi
database.jndi.name=java:/RollerDS

mail.configurationType=jndi
mail.jndi.name=java:/RollerMail

hibernate.cfg.xml

<hibernate-configuration>
      <session-factory>
         <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
      </session-factory>
</hibernate-configuration>

Erster Start von Roller

Nach dem Start von Wildfly kann Roller aufgerufen werden.
http://localhost:8080/roller
Es folgen die Abfragen, ob die notwendigen Datenbanktabellen angelegt werden sollen. Nachdem die Tabellen angelegt wurden muss der erste (Admin-)Nutzer und ein erstes Blog angelegt werden. Dies erfiolgt über die GUI von Roller. Der Installationtype sollte nach der Basiskonfiguration auf "manual" gesetzt werden.

Calendar

Feeds

Search

Links

Navigation