Skip to content

Installation: Ubuntu & Ngnix

In dieser Anleitung lernen Sie, wie Sie imperia CMS auf einem Nginx Webserver 1.10.x und auf einem Ubuntu 18.04-Server installieren.

Voraussetzungen#

Die folgenden Schritte müssen erledigt sein, bevor Sie die Anleitung ausführen:

  • Sie benötigen Zugriff auf einen Ubuntu 18.04 Server.

  • Stellen Sie sicher, dass ein sudo-Benutzer auf Ihrem Server zur Verfügung steht: Die Schritte in dieser Anleitung werden mit einem Nicht-Root-Benutzer namens „otto” mit sudo-Rechten durchgeführt. Wie Sie einen Benutzer mit Sudo-Privilegien erstellen, lernen Sie in dieser Anleitung von Ubuntu.

  • Der Nginx Webserver sollte bereits installiert und grundsätzlich eingerichtet sein. Lernen Sie in dieser Anleitung von Ubuntu, wie Sie den Nginx Webserver installieren. Eine gute Schritt-für-Schritt-Anleitung mit ausführlicher Erläuterung finden Sie auch bei dem Hosting-Service DigitalOcean: So installieren Sie Nginx auf Ubuntu 18.04.

imperia CMS herunterladen und Installation vorbereiten#

Schritt 1: Installationspaket herunterladen#

Auf der Support-Seite von imperia kann das Installationspaket heruntergeladen werden. Es handelt sich dabei, um eine Tar.gz-Archivdatei, die z.B. einen Dateinamen wie folgt haben kann: imperia-11.0.0.tar.gz

Schritt 2: Installationspaket auf Server übertragen#

Kopieren Sie diese Datei auf den Server, auf den Sie imperia CMS installieren möchten. Es bietet sich an, die Datei nach /tmp zu kopieren, da das Installationspaket nach der Installation nicht mehr benötigt wird.

Wie genau Sie das Installationspaket auf den Ubuntu Server übertragen, ist Ihnen überlassen. Eine Möglichkeit ist das Kommandozeilenwerkzeug scp:

scp ~/Downloads/imperia-11.0.0.tar.gz otto@ubuntuserver:/tmp

Schritt 3: Installationspaket entpacken#

Verbinden Sie sich per ssh mit dem Server auf dem Sie imperia CMS installieren möchten. Z.B. mit dem Kommandozeilenwerkzeug ssh:

ssh otto@ubuntuserver

Navigieren Sie in das Verzeichnis, in das Sie das Installationspaket zuvor kopiert haben:

cd /tmp

Entpacken Sie die Installationsdatei:

sudo -u www-data tar -xzvf imperia-11.0.0.tar.gz 

Hinweis

Sie entpacken hier das Installationspaket als www-data, damit sie das enthaltene Installationsskript im Anschluss als www-data ausführen können.

Schritt 4: Wurzelverzeichnis für imperia CMS einrichten#

Als nächstes erstellen Sie auf dem Server ein Verzeichnis für imperia CMS. Dieses Verzeichnis ist das Wurzelverzeichnis von imperia CMS.

sudo mkdir -p /var/www/imperia/dev

Hinweis

Sie können hier ein beliebiges Verzeichnis wählen. In dieser Anleitung wird im Weiteren /var/www/imperia/dev als Wurzelverzeichnis benutzt.

Als nächstes übertragen Sie dem Benutzer www-data die Rechte auf dieses Verzeichnis:

sudo chown www-data:www-data /var/www/imperia/dev

Das ist nötig, damit der Webserver-Benutzer hier schreibend tätig sein kann.

Schritt 5: Installationsvoraussetzungen installieren#

Bevor Sie imperia CMS auf Ihrem Server installieren können, müssen noch einige Software-Abhängikeiten installiert werden.

Beginnen Sie mit der Aktualisierung des lokalen Paketindexes, um die neuesten Änderungen zu berücksichtigen:

sudo apt-get update

Mit diesem Befehl installieren Sie anschließend die Software-Pakete einfach aus dem Ubuntu-Repository:

sudo apt-get install -y libdbd-sqlite3-perl perlmagick

Sie installieren so die leichtgewichtige Datenbank SQLite samt der zugehörigen Perl-Schnittstelle und außerdem die Bildbearbeitungssoftware ImageMagick sowie die zugehörige Perl-Schnittstelle.

imperia CMS installieren#

Schritt 1: Installationsskript ausführen#

Installieren Sie imperia CMS, indem Sie das Perl-Installationsskript als Benutzer www-data ausführen:

sudo -u www-data perl /tmp/imperia-11.0.0/install.pl -s /var/www/imperia/dev/site

Hinweis

In dem oben stehenden Befehl wird davon ausgegangen, dass sich Ihre Installationsdateien in dem Verzeichnis /tmp befinden und es sich um die Version imperia 11.0.0 handelt.

Schritt 2: Redaktionssystem auswählen#

Im Dialog werden Sie als erstes gefragt, ob Sie ein Redaktionssystem (develop) oder ein Zielsystem (live) installieren möchten:

Server type (develop/live) to be installed [develop]:

Da hier ein Redaktionssystem installiert werden soll, bestätigen Sie die Vorauswahl develop mit ENTER.

Schritt 3: Site-Verzeichnis angeben#

Anschließend sollen Sie den Pfad für das Site-Verzeichnis angeben. In diesem Verzeichnis wird die Software installiert und hier finden sich außerdem die Template- und Benutzerdaten.

Absolute path to your site directory [/var/www/imperia/dev/site]:

Das Wurzelverzeichnis wird standardmäßig um den Pfad /site erweitert. Sie können diese Vorauswahl so bestehen lassen und mit ENTER bestätigen.

Schritt 4: HTDOCS-Verzeichnis angeben#

Als nächstes soll der Pfad für das htdocs-Verzeichnis angegeben werden. Dieses Verzeichnis enthält die Staging-Website sowie einige Systemdaten.

Absolute path to your web server document root [/var/www/imperia/dev/htdocs]:

Das Wurzelverzeichnis wird standardmäßig um den Pfad /htdocs erweitert. Sie können diese Vorauswahl so bestehen lassen und mit ENTER bestätigen.

Schritt 5: CGI-Verzeichnis angeben#

Als nächstes soll der Pfad für das CGI-Verzeichnis angegeben werden. Dieses Verzeichnis enthält CGI-Skripte und wird für eine minimale Installation eigentlich nicht benötigt. Wenn Sie erwägen, die Volltextsuche von imperia CMS zu nutzen, sollten Sie es dennoch einrichten.

Absolute path to your web server CGI directory [/var/www/imperia/dev/cgi-bin]:

Da in dieser Anleitung imperia CMS unter mod_perl installiert wird, wird kein CGI-Verzeichnis benötigt. Geben Sie daher none ein und bestätigen Sie mit ENTER, um die Einrichtung zu überspringen.

Schritt 6: Überprüfen und bestätigen#

Sobald alle Fragen beantwortet wurden, listet das Installationsskript noch einmal alle Angaben auf und bittet Sie, die Installation zu starten.

Operating system type                     :  'Unix' (linux)
Server type to be installed               :  'develop'
Absolute path to CGI-BIN directory        :  none
Absolute path to SITE-DIR directory       :  '/var/www/imperia/dev/site'
Absolute path to DOCUMENT-ROOT directory  :  '/var/www/imperia/dev/htdocs'

Do you want to start the installation (Yes|no)? 

Überprüfen Sie sie und bestätigen Sie die Vorauswahl (Yes) mit ENTER.

Falls Sie einen Fehler korrigieren möchten, geben Sie “no” ein und wiederholen Sie ab Schritt 2.

Nachdem Sie die Eingaben bestätigt haben, wird imperia in das von Ihnen angegebene Verzeichnis installiert.

Schritt 7: Superuser-Passwort notieren#

Am Ende des Installationsprozesses wird ein Superuser-Passwort generiert. Notieren Sie es sich, Sie werden es gleich benötigen.

Beipielpasswort aus einem Installationsprozess:

**************************************************************************
**************************************************************************
** The superuser password for this installation is:                     **
**                                                                      **
**    NlMTe2Ds1K                                                        **
**                                                                      **
** You can change it to your taste once you have logged in.             **
**************************************************************************
**************************************************************************

Hinweis

Durchsuchen Sie die Datei site/logs/install.log nach "superuser password", falls sie die Ausgabe verpasst haben. Denken Sie daran, das Passwort zu ändern sobald Sie sich eingeloggt haben. Der zugehörige Benutzername ist "superuser".

Den Webserver konfigurieren#

Nun muss der Nginx so konfiguriert werden, dass der interne imperia-Server hinter dem nginx-Server als Reverse-Proxy aufsetzen wird.

Schritt 1: Serverblock anlegen#

Legen Sie eine Serverblock-Datei für das imperia Redaktionssystem an.

sudo vi /etc/nginx/sites-available/imperia-dev.conf

Schritt 2: Serverblock konfigurieren#

Fügen Sie die folgenden Anweisungen in die Serverblock-Datei ein.

server { 

    listen 2304;

    root  /var/www/imperia/dev/htdocs;
    ssi on;

    location /imp/ {
        # Wichtig: Ohne Slash am Ende!
        proxy_pass http://localhost:2404;

        # proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /cgi-bin/ {
        # Wichtig: Ohne Slash am Ende!
        proxy_pass http://localhost:2404;

        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    access_log /var/www/imperia/dev/site/logs/access.log;
    error_log /var/www/imperia/dev/site/logs/error.log;

}

Erläuterung

Der Document-Root wird mit root konfiguriert.

Mit „ssi on” werden Server Side Include (SSI) aktiviert.

Die location-Blöcke enthalten Anweisungen für bestimmte Bereiche der Site. Wir müssen alle Requests unterhalb von /imp/ auf den imperia-Server umleiten.

Innerhalb des location-Blocks stehen dazu die Proxy-Anweisungen. Mit proxy_pass wird angegeben, wohin der Request gehen soll. In unserem Fall auf localhost Port 2404, also den imperia-Server.

Mit proxy_set_header können zusätzliche Header gesetzt werden. Die vier hier angegebenen X-Forwarded-...-Header sind Standard für Reverse Proxies.

Wichtig

Die Semikolons sind wichtig! Das Log-Verzeichnis (im Beispiel /var/www/imperia/dev/site/logs) muss existieren!

Schritt 3: Serverblock aktivieren#

Anschließend aktivieren Sie die Datei, indem Sie einen Link zu dem sites-enabled-Verzeichnis erstellen, aus dem Nginx beim Start liest:

sudo ln -s /etc/nginx/sites-available/imperia-dev.conf /etc/nginx/sites-enabled/

Schritt 4: Nginx und internen Webserver starten#

Jetzt muss nginx neu gestartet werden:

sudo systemctl restart nginx

und außerdem der interne Webserver von imperia CMS:

sudo -u www-data perl /var/www/imperia/dev/site/bin/site_imperia.pl -i -t Net::Server::PreFork

Der imperia-Entwicklungsserver ist jetzt unter http://www.example.com:2304/imp/ erreichbar.

Bei imperia CMS anmelden#

Schritt 1: imperia CMS im Browser aufrufen#

imperia CMS läuft nun unter der IP des Servers und unter dem Port, den Sie in der Konfigurationsdatei des Webservers konfiguriert haben.

Beispiel-URL

http://example.com:2304/imp/

Schritt 2: Bei imperia CMS einloggen#

Melden Sie sich mit dem Namen superuser und dem notierten Passwort an.

Name: superuser
Passwort: NlMTe2Ds1K

Zusätzliche Anmerkung#

Der Vollständigkeit halber wurden in der nginx-Konfiguration weiter oben ein location-Block für CGI eingefügt. Wenn Sie also CGI verwenden möchten, muss man die system.conf noch anpassen, damit der imperia-Server CGI unterstützt:

IMPERIA_SERVER_CGI_DIR = /var/www/imperia/dev/cgi-bin
IMPERIA_SERVER_CGI_BIN = /cgi-bin

Wie geht es von hier aus weiter?#

Wenn imperia CMS jetzt bei Ihnen läuft und über den Browser aufgerufen werden kann, dann können Sie sich jetzt als Superuser anmelden und mit der Administration des Systems loslegen. Hier geht es für Sie weiter:

Administrationsdokumentation

Sie haben in dieser Anleitung nur das Redaktionssystem installiert. Da imperia CMS jedoch ein Staging-System ist, müssen Sie zusätzlich auch ein Zielsystem installieren. Im Betriebskonzept ist dieser Zusammenhang beschrieben:

Betriebskonzept von imperia

Sie wollen den internen imperia Webserver nicht bei jedem Server-Neustart manuell starten? Dann können Sie auch einen Systemdienst einrichten, um den Start zu automatisieren.

imperia Webserver Autostart