Liferay Portal - Mehrere Portal Instanzen über Tomcat Virtual Hosts

Liferay Portal bietet die Möglichkeit über einen Klick und ein paar kurze Angaben aus dem Control Center heraus neue Portal Instanzen zu erstellen. Funktionieren tut das über Virtual Hosts. Sind die einmal eingerichtet, lassen sich neue Portale in sekundenschnelle aufziehen. Das funktioniert auch schon problemlos mit dem Liferay Tomcat Bundle. Lediglich ein paar serverseitige Einstellungen sind vorher nötig. Dieser Walkthrough zeigt welche das sind.

Für gewöhnlich lautet der virtuelle Host bei einer lokalen Installation ganz einfach localhost. Das ist das Synonym für die IP 127.0.0.1. Der Ordner mit Applikationen im Tomcat Installationsverzeichnis heisst webapps. Was wir benötigen ist - einfach ausgedrückt -  einen weiteren webapps Ordner, einen weiteren virtuellen Host, der auf die IP 127.0.0.1 verweist, und ein paar Anpassungen in den Tomcat Konfigurationsdateien, damit der neue webapps Ordner auch in Verbindung mit dem neuen Host gebracht werden kann.

Los gehts. Wir kopieren zuerst den webapps Ordner per Copy & Paste nochmal in den gleichen Ordner. Windows benennt den Ordner dann einfach um in "Kopie von webapps". Hier können wir jetzt einen passenderen Namen vergeben, z.B. allvintage. Wir haben im Tomcat Installationsverzeichnis jetzt also, neben einigen anderen, die beiden Ordner

webapps
allvintage

und beide haben den gleichen Inhalt. Als nächstes müssen wir in die server.xml von Tomcat. Die liegt im Tomcat Installationsverzeichnis im Unterordner "conf". Dort suchen wir die Stelle, wo es heisst

<Engine name="Catalina" defaultHost="localhost">

Dort finden wir einen Eintrag namens

<Host name="localhost"...
...
</Host>

Kopiert den ganzen Eintrag, fügt ihn darunter wieder ein und ändert den "name" in einen Bezeichner, den ihr nachher im Browser statt localhost eingeben wollt und die "appBase" in den Namen, den ihr eurem zweiten webapps Ordner gegeben habt. Also in unserem Fall z.B. localhost2 und allvintage.

Innerhalb des Engine-Eintrags steht dann also

<Host name="localhost" appBase="webapps"...
...
</Host>
<Host name="localhost2" appBase="allvintage"...
...
</Host>

Prinzipiell könnt ihr den Server jetzt wieder starten. Der erste Host, sollte jetzt wie gewohnt weiterhin unter localhost (i.d.R. mit Port 8080, also localhost:8080) zu finden sein, nur localhost2:8080 startet noch nicht. Das liegt daran, dass wir in der Windows hosts Datei noch angeben müssen, dass localhost2 ab jetzt ebenfalls in 127.0.0.1 aufgelöst werden soll. Die Datei findet ihr unter C:\Windows\System32\drivers\etc

Mit dem Notepad öffnen und ganze unten dazu schreiben

127.0.0.1      localhost2

Das war's. Eure zweite Liferay Instanz ist jetzt lokal auf eurem Rechner unter http://localhost2:8080/ zu finden. Im Liferay Control Panel kann man unter "Portal Instanzen" übrigens alle Instanzen registrieren.