Kategorien
Konferenzsysteme

Webkonferenzen mit Apache OpenMeetings

Webkonferenzsysteme mit Whiteboard, Screensharing, Sprach- und Videoübertragung waren und sind komplexe Anwendungen mit denen, wenn alles gut funktioniert, einfach und effektiv Onlinevorlesungen, Webinare, sowie Firmen- und Projektmeetings abgehalten werden können.

Der Einschub „wenn alles funktioniert“ ist nicht zu unterschätzen.

Es geht um folgende Arbeitsschritte:

  • Meeting planen, Unterrichtsmaterialien vorbereiten und hochladen
  • Teilnehmer einladen
  • Sicherstellen, dass alle Teilnehmer problemlos den Konferenzraum finden und die Sprach, Video- und Screensharing Funktionen funktionieren.
  • Genug Bandbreite pro Teilnehmer, je nach Art des Meetings
  • Genug Kapazität des Servers bei >100 Teilnehmern
  • Aufnehmen und Speichern des Meetings zum späteren Nachhören

Da in der Vergangenheit (und auch heute) in diesem Bereich die Lizenzen von proprietäten Webkonferenzsystemem sehr teuer waren, sind viele Anwender auf Skype und Google Hangouts ausgewichen. Innerhalb von Schulen, Firmen oder anderen Organisation ist es allerdings sehr schwer bis unmöglich, Teilnehmern mit unterschiedlichen technischen Voraussetzungen über solche „Alternativtools“ Zugang und effektives Arbeiten in virtuellen Räumen zu ermöglichen.

Ziel

Nehmen wir an, das Ziel Ihrer Organisation ist, ein eigenes Open Source Webkonferenzsystem auf dem eigenen Server aufzusetzen und die Meetings beispielsweise über die eigene Website mit Joomla, Drupal oder Moodle anzubieten.

Apache OpenMeetings

OpenMeetings ist eine freie Webkonferenzsystem. Ziel des Systems ist, in wenigen Schritten eine Besprechung aufzusetzen, in der man per Audio/Video, Whiteboard, Screensharing und Chat mit mehreren Teilnehmern eine Konferenz durchführen kann.

Apache OpenMeetings baut auf dem freien Rich Internet Application Framework OpenLaszlo und dem freien Streaming Server Red5 auf. Die Serveranwenung ist in Java geschrieben und benötigt ausserdem LibreOffice, ImageMagic, Sox, Swftools, FFmpeg und MariaDB. Ein ausführliche Installationsanleitung für Ubuntu 14.04 finden Sie hier (PDF iconInstallation OpenMeetings 3.0.x on Ubuntu 14.04.pdf ).

Nach der Installation können sich, je nach Konfiguration, Benutzer registrieren und in einem Dashboard Konferenzen planen und Teilnehmer einladen.

Registrierung OpenMeetings
Registrierung OpenMeetings
OpenMeetings - Dashboard
OpenMeetings – Dashboard

Konferenz

Es gibt einen Kalender im System und die Teilnehmer erhalten E-Mails mit dem Link zum Konferenzraum.
Der Raum steht komplett im Browser zur Verfügung, die Teilnehmer benötigen keine Zusatzsoftware auf Ihrem Computer.

Allerdings wird der Flash Player benötigt, um die Sprach- und Video Übertragung zu ermöglichen. Dieses Problem kann man allerdings durch Nutzung des Browsers Google Chrome entschärfen. Dort ist ein Flashplayer bereits integriert und muss nicht separat auf dem System installiert sein.

Im unteren Bereich des Konferenzraums steht ein Chat zur Verfügung.Der Konferenzraum sieht für den Moderator so aus:

OpenMeetings - Raum mit Whiteboard
OpenMeetings – Raum mit Whiteboard

Video und Audio funktionieren erstaunlich gut. In der Konferenz auf dem Screenshot oben gab es nur zwei Teilnehmer mit einer schlechten Internet-Verbindung. Das Kamerabild kann in verschiedenen Qualitäten übertragen und auch abgeschaltet werden um Bandbreite zu sparen.
Die Netzwerkverbindung kann bei Bedarf von jedem Teilnehmer überprüft und angepasst werden.

OpenMeetings - Netzwerktest
OpenMeetings – Netzwerktest

Der Moderator kann Rechte an andere Teilnehmer geben, beispielsweise ob der Teilnehmer auf dem Whiteboard zeichnen darf.

OpenMeetings - Teilnehmer
OpenMeetings – Teilnehmer

Innerhalb des Raums gibt es sogenannte Actions. Es stehen 30 Sprachen zu Lokalisierung zu Verfügung. Das Whiteboard und die PDF Anzeige funktionieren auch bei schlechten Internetverbindungen hervorragend.

OpenMeetings - Actions
OpenMeetings – Actions

Meetings können aufgezeichnet und gespeichert werden.

Einbindung in andere Systeme

Wenn Sie den Zugang zu den Meetings beispielsweise über Ihre Website ermöglichen wollen, so gibt es Plugins für Moodle, Joomla, Drupal, Redmine, SugarCRM und andere Systeme.

Hier ein Beispiel für die Nutzung in Joomla:

Die Joomla Komponente ist leider veraltet (Joomla 2.5), funktioniert aber grundsätzlich und zeigt, was möglich ist.

Fazit

Bei meinem Test funktionierte alles prima und ich war positiv überrascht. Die Einbindung in gängige CMS ist grundsätzlich möglich und für ältere Versionen auch lauffähig vorhanden. Die Apache OpenMeetings Serversoftware wird weiterentwickelt und das letzte Release (3.0.6) ist 3 Monate alt, also recht frisch :).

Links


tl;dr: Mit Apache OpenMeetings können Sie ein Webkonferenzsystem auf Ihrem Root-Server betreiben.

Kategorien
Content Management Systeme E-Commerce

Ein Online Shop mit Joomla & J2Store

Es ist keine Frage, der Onlinehandel boomt und wird jährlich grösser. Auch immer mehr kleinere Unternehmen würden gern Ihre Waren in einem Shop anbieten, sind sich aber oft unsicher über die Auswahl der Shop-Software.

Da viele kleine Unternehmen eine Joomla Websites betreiben, möchte ich heute eine einfache, aber effektive Erweiterung vorstellen, J2store.

J2store kann:

  • aus jedem Joomla Inhaltsartikel ein verkaufbares Produkt machen. Das kann ein versendbares, physisches Produkt sein oder ein downloadbares wie ein eBook, ein Musikstück, ein Softwarepaket oder ein Foto.
  • Die Produkte können Optionen wie Farben, Grössen, Dateitypen oder auch individuelle Texte (wichtig beim Gravieren oder Bedrucken) enthalten.
  • Die Bezahlung kann online erfolgen oder bei Abholung im Geschäft.
  • J2store kann auch als reiner Katalog ohne Preise betrieben werden.
  • Es gibt zahlreiche Erweiterungen für Gutscheine, Rabattaktionen und kundenspezifische Preise
  • Mehrwertsteuer kann im Preis enthalten sein oder auf Basis des Preises berechnet werden.
  • Ein einfache Lagerhaltung ist integriert, so dass Sie einen Überblick über Be- und Rückstände haben
  • Versandpreise können auf Basis von Gewicht und Menge errechnet oder ab einem Mindestbestellwert verandkostenfrei sein
  • J2store läuft im Standard Template von Joomla responsiv, kann also auch gut auf mobilen Endgeräten benutzt werden.
  • Wenn Joomla mehrsprachig eingerichtet ist, ist die J2store Komponente ebenfalls mehrsprachig verfügbar.

Das hört sich ja wunderbar an, wo ist der Haken?

Es gibt keinen Haken bei den Funktionen, alles was ich oben beschrieben habe, funktioniert tatsächlich und ist kostenlos.

Aber!

Wie bei Joomla Erweiterungen üblich, sind manche Plugins kostenpflichtig, so beispielsweise das Plugin für die Zahlungsmethode PayPal. Es kostet allerdings nur 10 US$ und stellt somit keine grössere Investion dar.
Das Versand-Plugin für UPS ist übrigens kostenlos, für DHL kostet es 20 US$.

J2store nutzt die eigene Erweiterung im Extension directory und so können Sie sich einen guten Eindruck über die Bedienbarkeit, das Look & Feel der Erweiterung und auch deren Erweiterungsmöglichkeiten machen.

Beispiel

Online Shops sind immer individuell, sie wollen sich ja von der Konkurrenz abheben.
Um das Beispiel hier im einfach zu halten, nehme ich etwas aus meinem Leben. Ich baue hin und wieder Gartenstühle. Das Holz dafür bekomme ich aus einem Wald in Norddeutschland. Alle paar Jahre hole ich Holz, säge es zurecht und bei Bedarf baue ich dann Stühle, Tische oder Bänke. Nehmen wir an, Sie haben ein ähnliches Projekt oder Geschäft.
Sie könnten online die Produkte, oder vielleicht auch einen Bauplan-Download verkaufen.

Installation

Zunächst müssen Sich sich die aktuelle Version von Joomla installieren (siehe Artikel Installation der 5 verbreiteten Content Management Systeme).

Deutsche Sprachdateien

Wenn Sie die original Joomla Version von der joomla.org Website nehmen, müssen Sie noch die deutschen Sprachdateien installieren. Gehen Sie dazu in den Administrationsbereich (Extensions -> Extension Manager -> Install Languages), wählen German aus und installieren das Paket.

Sprachdateien in Joomla installieren
Sprachdateien in Joomla installieren
Danach müssen Sie Joomla noch mittteilen, welches die Standardsprache sein soll. Gehen Sie dazu auf Extensions -> Language Manager und wählen German als im Tab Installed-Site (die eigentliche Website) UND im Tab Installed-Administrator als Standardsprache aus. Wenn Sie sich dann aus- und wieder einloggen, ist Ihre Joomla Version komplett mit deutschen Texten versehen.
Joomla - Standardsprache festlegen
Joomla – Standardsprache festlegen

J2store installieren

Zusätzliche Erweiterungen installieren Sie in Joomla unter (jetzt auf Deutsch) Erweiterungen -> Erweiterungen. Suchen Sie einfach nach j2store und klicken den Install Button.

J2Store installieren
J2Store installieren

Im Menu des Joomla Administrationsbereich finden Sie jetzt einen neuen Menüpunkt. Die Texte sind allerdings noch auf Englisch.

J2store Menu - Englisch
J2store Menu – Englisch

Um auch hier eine deutschsprachige Umgebung zu erhalten, müssen Sie die entsprechende Sprachdatei installieren. Eine Übersicht über die verfügbaren Sprachen finden Sie unter http://j2store.org/translations/j2store3.html. Laden Sie sich das deutsche Sprachpaket herunter (de-DE.com_j2store.zip) und installieren Sie es unter Erweiterungen -> Erweiterungen -> Paketdatei hochladen. Nun erscheinen alle Texte von J2store ebenfalls auf Deutsch.

Konfiguration und erste Schritte

Um das Beispiel mit dem Gartenmöbeln wieder aufzunehmen, benötigen wir jetzt mindesten ein Produkt und die Grundkonfiguration im Shop (Adresse, MwSt-Behandlung, Zahlungsbedingungen, Versandbedingungen).

Alle Einstellungen für die J2store Erweiterung finden Sie unter J2Store -> Einstellungen. Die Felder sind weitgehend selbsterklärend. Eine ausführliche Erklärung finden Sie im englischen Benutzerhandbuch (http://j2store.org/support/user-guide.html)

J2Store - Einstellungen
J2Store – Einstellungen

Produkt erstellen

Die kluge Idee von J2Store ist, jeden redaktionellen Joomla Artikel zu einem Produkt machen zu können.
Um ein Produkt zu erstellen, müssen Sie also entweder einen Artikel neu in Joomla erstellen (Inhalt -> Beiträge -> Neuer Beitrag) oder sie gehen über den Shop (J2Store -> Katalog -> Produkte -> Neu). In beiden Fällen landen Sie in der Standard Artikelbearbeitungsmaske, die um ein Tab J2Store erweitert wurde.
In diesem Tab müssen Sie festlegen, ob, und wenn ja, um welche Art Produkt es sich handelt. Sie haben die Wahl zwischen

  • Einfach: Der Gartenstuhl
  • Variable: Der Gartenstuhl in unterschiedlichen Grössen oder Farben
  • Einstellungen: Der Gartenstuhl mit individueller Beschriftung
  • Downloadbar: Der Bauplan für einen Gartenstuhl

Ich erstelle ein einfaches Produkt

J2Store - Artikel als Produkt markieren
J2Store – Artikel als Produkt markieren
Nach dem Speichern erscheint im J2Store unterhalb der Produktinformation ein Bereich in dem Sie Preis, Grösse, Versandbedingungen, Fotos und alle relevaten Dinge eingeben können.

An der Stelle an der der „Kaufen“ Button im Artikeltext erscheinen soll, müssen Sie das folgende Makro einfügen

{j2store}2|cart{/j2store}

Hört sich kompliziert an, ist aber praktisch, denn ausser einem Warenkorb können Sie auch noch andere Parameter einbinden.

J2Store - Makros
J2Store – Makros
Unter J2Store -> Katalog -> Produkte finden sie das Produkt wieder.

Auf der Website erscheint es je nach Art der Einbindung in das Menü als Produkt mit dem „Kaufen“ Button. Das Joomla, das ich hier benutze ist ohne Beispieldaten und mit dem Standard Template.

J2Store - Produkt auf der Website
J2Store – Produkt auf der Website
Das war es!
Sie können den Stuhl jetzt kaufen 🙂
J2Store - Warenkorb
J2Store – Warenkorb

Je nach Konfiguration müssen Sie sich registrieren oder können als Gast einkaufen

J2Store - Bestellprozess
J2Store – Bestellprozess
Sie werden nach Rechnungs- und Lieferadresse, Zahlungs- und Versandbedingungen gefragt und können dann den Kauf abschliessen.

Käufer und Shopbetreiber erhalten eine E-Mail und im Administrationsbereich des J2Store erscheint der Einkauf.

J2Store - Administrationsbereich - Bestellungen
J2Store – Administrationsbereich – Bestellungen
Von hier aus können Sie den Kunden den Auftrag bestätigen.


tl:dr; J2Store ist ein einfach einzurichtender Online-Shop, der sich elegant in Joomla einfügt

Kategorien
Backup Content Management Systeme

Backups und Updates in Joomla

Neulich war es wieder soweit. Ein Update für Joomla erschien. Es war ein Sicherheitsupdate für die Version 3.4.x. Laut Ankünding des Projekts hatten 460 Freiwillige mehr als 260 Fehler im Programm beseitigt, einige davon sicherheitsrelevant. Das ist lobenswert und gut und jeder der eine Joomla Site betreibt, sollte dieses Update so schnell wie möglich einspielen.

Ein paar Tage später erschien wieder eine Version (3.4.3). Der Grund dafür war sehr einfach. Das Joomla Team hatte in bester Absicht eine Programmierklasse umbenannt. Diese Änderung führte in seltenen Fällen und in bestimmten Konfigurationen zu Problemen, die im schlimmsten Fall zum völligen Ausfall der Site führten.

Auch wenn das für die Betroffenen im Einzelfall unter Umständen hart ist, sollte jedem Website Betreiber klar sein, dass so etwas mal passieren kann. Joomla ist da kein Einzelfall. Vermutlich hatte jedes grössere Projekt schon mal so einen Fall.

Sie könnten sich gegen diese Art von Fehlern vielleicht schützen, wenn Sie ein beispielsweise ein gespiegeltes Testsystem betreiben, auf dem Sie das Update ausprobieren können oder einfach ein paar Tage abwarten.
Das führt allerdings dazu, dass Ihre produktive Joomla Site weiterhin unsicher UND online bleibt und somit anfällig für Hacks ist.

Beim CMS Drupal gab es in diesem Zusammenhang den Fall #drupalgeddon, bei dem die Zeit zwischen der Ankündigung und dem Einspielen des Updates eine entscheidende Rolle spielte, bei TYPO3 gab es Infektionen hunderter von Seiten ohne dass die Ursache wirklich bekannt war. Es gäbe viele weitere Beispiele.
Am Ende steht die Erkenntis: Spielen Sie ein Update ein, nachdem Sie davon erfahren haben!

Jedes CMS weist Sie vor dem Updatevorgang daraufhin, doch bitte ein Update von Datenbank und Dateien vorzunehmen. Im Artikel Ein Backup mit Duply hatte ich das Thema schon mal als allgemeingültige Lösung angesprochen, stelle aber fest, dass viele CMS Betreiber das Thema Backup & Restore recht stiefmütterlich behandeln.

Backups und Updates in Joomla

Daher heute ein Artikel zum Thema Joomla mit den Antworten auf die Fragen

  1. Woher weiss ich, dass es ein Sicherheits-Update gibt?
  2. Wie mache ich ein Backup?
  3. Wie spiele ich das Update ein?
  4. Und für den Krisenfall: Wie stelle ich die alte Version wieder her

1. Woher weiss ich, dass es ein Joomla Sicherheits-Update gibt?

Wenn Sie regelmässig im Administrationsbereich Ihrer Joomla Site arbeiten, kennen Sie sicherlich diese Meldung. Sie erscheint, wenn es ein Update gibt in roter Schrift.

Joomla - Hinweis auf Updates im Administrationsbereich
Joomla – Hinweis auf Updates im Administrationsbereich

Im linken Bereich sehen Sie Hinweise zu Joomla Core Updates, im rechten Bereich Erweiterungsaktualisierungen.

Wenn Sie nicht regelmässig im Administrationsbereich sind, können Sie die Website joomla.org/announcements.html als Feed abonnieren (Beispielsweise im Selfoss Reader) oder dem Twitter Nutzer @joomla folgen.

Sie können in der Web-Oberfläche von Twitter einen Schalter setzen, dass Sie eine Nachricht auf Ihr Smartphone bekommen, wenn der Joomla Twitter etwas tweetet (In der Twitter App gibt es auch so einen Schalter).

Joomla Twitter
Joomla Twitter

2. Wie mache ich ein Backup?

Sie wissen, dass es ein Update gibt und müssen ein Backup machen.
Auch hier gibt es grundsätzlich drei Möglichkeiten:

  • Sie vertrauen auf das Backup Ihres Hosting Providers (NOVATREND)
  • Sie kümmern sich auf Ihrem Server selbst darum (beispielsweise Duply)
  • Sie haben eine individuelle Lösung pro Website

Ich betrachte hier heute den letzten Punkt und empfehle Ihnen die Erweiterung Akeeba Backup.
Installieren Sie die freie Erweiterung Akeeba Backup Core in Ihrem Joomla. Ich lasse die Umgebungssprache auf English, da ich nur die Basisfunktionen zeigen möchte.

Akeeba Backup - Installation
Akeeba Backup – Installation

Nach der Installation müssen Sie den Configuration Wizard ausführen.
Akeeba Backup - Konfiguration
Akeeba Backup – Konfiguration

Danach können Sie Updates erstellen indem Sie einfach den Button Backup Now klicken.
Akeeba Backup - Backup Now
Akeeba Backup – Backup Now

Sie werden nach einem Namen für das Backup gefragt und können einen optionalen Kommentar hinzufügen. Klicken Sie erneut den Button Backup Now.
Akeeba Backup - Update Beschreibung
Akeeba Backup – Update Beschreibung

Unter Manage Backups können Sie Ihre Backups verwalten.
Akeeba Backup - Manage Backups
Akeeba Backup – Manage Backups

Das ist die absolute Konfigurationsbasis, die notwendig für ein Backup ist.
Die Erweiterung kann natürlich noch viel mehr, lesen Sie dazu den Akeeba Backup Quickstart Guide.

3. Wie spiele ich die Joomla Updates ein?

Das Joomla Update führen Sie aus, indem Sie im Administrationsbereich den Button Jetzt aktualisieren in der System Nachricht klicken.

Joomla - Hinweis auf Updates im Administrationsbereich
Joomla – Hinweis auf Updates im Administrationsbereich

Sie landen auf einer Aktualisierungsseite, die darauf hinweist:

Vor der Joomla!-Aktualisierung ist zu prüfen, ob auch die zusätzlich installierten Erweiterungen mit der neuen Joomla!-Version kompatibel sind.

Nehmen Sie diesen Hinweis ernst und schauen auf den Projektseiten der installierten Komponenten nach, ob Sie Informationen zur Kompatibilität und zum Update Prozess finden.
In meinem Fall ist es leicht. Ich habe keine Zusatzkomponenten installiert und klicke auf den Button Aktualisierung installieren.

Joomla Aktualisierung
Joomla Aktualisierung

Joomla aktualisiert sich automatisch und das Update ist eingespielt.
Besuchen Sie Ihre Website und testen ob alles wie gewohnt funktioniert.
Wenn ja, herzlichen Glückwunsch.

4. Wie stelle ich die alte Version im Krisenfall wieder her?

Wenn Sie nur noch einen weissen Bildschirm statt Ihrer Website sehen oder Probleme bei bestimmten Erweiterungen haben, können Sie Ihr Backup wieder einspielen. Es gibt unterschiedliche Methoden dazu.

Ich möchte hier keine weitere Restore Anleitung beschreiben, da solche Anleitungen schnell veralten.
akeebabackup betreibt einen YouTube Channel und dort finden Sie die wirklich gute Restore Anleitung, die Sie auf einem Root-Server hervorragend nutzen können, vorgeführt von Brian Teeman.

Es gibt auch einen kompletten Videokurs zu diesem Thema.

Hier klicken, um den Inhalt von www.youtube-nocookie.com anzuzeigen

Der Restore Prozess ist zugegebenermassen nicht besonders benutzerfreundlich, aber das gesamte Thema ist natürlich auch sehr komplex.
Sie sind allerdings in der Lage, auch ohne Joomla Spezial- oder sonstige Programmierkenntnisse, eine komplette Joomla Site aus einem Backup wiederherzustellen.

Fazit

Ja, es macht Arbeit; Ja, es geht nicht automatisch.
Aber: Wenn Sie ein echtes Problem mit einer Joomla Website haben, so werden Sie das Programm akeebabackup schätzen!

Und es gibt noch ein kleines Goodie:
Wenn Sie den Wiederherstellungsprozess einmal verstanden haben, können Sie ihn auch sehr gut zum Transfer von Joomla Sites auf andere Server nutzen und damit viel Zeit sparen ;).


tl;dr: Spielen Sie Updates ein und denken Sie VORHER an Backups.

Kategorien
Cloud Server

Testumgebungen mit Docker

Wenn Sie einen eigenen Root-Server nutzen, haben Sie oft das Problem, dass die Installation verschiedener Programmpakete wirklich komplex werden kann. Stellen Sie sich vor, sie benötigen „mal eben“ 15 WordPress Instanzen für eine Schulung oder wollen ein Programm ausprobieren, das nicht so wirklich zu Ihrem LAMP Stack passt wie beispielsweise die Blogsoftware Ghost oder das Diskussionsforum Discourse.

Docker bietet dafür eine Lösung.

Sie installieren die Docker Software auf Ihrem Betriebssystem und können dann sogenannte Images vom Docker Hub herunterladen.

Diese Images sind in etwa mit Legosteinen vergleichbar. Für die 15 WordPress Installationen benötigen Sie beispielsweise das WordPress und das MySQL Image. Danach können Sie beliebig viele MySQL und WordPress Container auf verschiedenen Ports starten. Variablenwerte wie MySQL Passworte werden beim Containeraufruf mitgegeben, so dass die beiden Images gut zusammenspielen können.

Die Container und die darin enthaltenen Daten können verwaltet werden. In unserem einfachen Fall können Sie beispielsweise nach Kursende gelöscht werden.

Docker ist natürlich viel mehr und erheblich komplexer, als ich das eben dargestellt habe, nichtsdestotrotz ist die Kernidee hinter Docker Installations- und Verteilungsprozesse zu vereinfachen. Es gibt Docker für Ubuntu, Mac OS X, Microsoft Windows, Amazon EC2, Arch Linux, CentOS, CRUX Linux, Debian, Fedora, FrugalWare, Google Cloud Platform, Gentoo, IBM Softlayer, Joyent Compute Service, Microsoft Azure, Rackspace Cloud, Red Hat Enterprise Linux, Oracle Linux und SUSE, und das ganze Projekt ist natürlich ein Startup und es geht um viel Geld und überhaupt …

Schauen Sie sich die beiden Videos und diese Link-Übersicht an, wenn Sie sich für die ganze Story interessieren.

Hier klicken, um den Inhalt von www.youtube-nocookie.com anzuzeigen

Hier klicken, um den Inhalt von www.youtube-nocookie.com anzuzeigen

Installation

Zunächst muss die Docker Software auf unserem Testserver installiert werden. Wir benutzen Ubuntu 14.04 LTS und aktualisieren zunächst mal.

sudo apt-get update
sudo apt-get upgrade

Docker orientiert sich am Kernel. Die Version Ihres Kernel erfahren Sie über den Befehl

$ uname -r
3.13.0-49-generic

Um Docker zu installieren, benötigen Sie nur einen Befehl (und natürlich das Paket wget -> apt-get install wget)

wget -qO- https://get.docker.com/ | sh

Sie werden nach dem Root Passwort gefragt und Docker wird installiert. Damit alles funktioniert, müssen Sie sich einmal ab- und wieder anmelden. Testen Sie dann, ob Docker korrekt installiert ist mit dem Befehl docker run hello-world. Der run Befehl versucht einen Container aus einem lokalen Image zu starten. Findet er kein Image, versucht er das entsprechende Image herunterzuladen, so wie hier in meinem Fall.

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from hello-world
a8219747be10: Pull complete
91c95931e552: Already exists
hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:aa03e5d0d5553b4c3473e89c8619cf79df368babd18681cf5daeb82aab55838d
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (Assuming it was not already locally available.)
3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

Das funktioniert also schon mal gut. Mit dem Befehl docker ps -a können Sie sich alle laufenden Container anzeigen lassen

$ sudo docker ps -a
CONTAINER ID IMAGE              COMMAND  CREATED       STATUS                   PORTS NAMES
2f6ab4eba9b0 hello-world:latest "/hello" 4 minutes ago Exited (0) 4 minutes ago       insane_elion

Sie können den Container stoppen mit dem Befehl

sudo docker stop insane_elion

insane_elion ist der Name, der für diesen Container vergeben wurden. Falls kein Name zur Verfügung steht, können Sie auch die ersten Ziffern der Container-ID nehmen.

Löschen können Sie einen Container mit dem Befehl

sudo docker rm insane_elion

Viele WordPress Installationen

Lassen Sie uns das Beispiel mit den 15 WordPress Installationen kurz durchspielen.

Sie müssen die Images WordPress und MySQL laden

sudo docker pull wordpress
sudo docker pull mysql

Sie müssen einen MySQL Container pro WordPress Instanz anlegen und ihm ein Passwort mitgeben, damit der WordPress Installer eine Datenbank anlegen kann.

sudo docker run --name mysql-wp1 -e MYSQL_ROOT_PASSWORD=8k6lgg35aq1 -d mysql
sudo docker run --name mysql-wp2 -e MYSQL_ROOT_PASSWORD=8k6lgg35aq2 -d mysql
sudo docker run --name mysql-wp3 -e MYSQL_ROOT_PASSWORD=8k6lgg35aq3 -d mysql
usw.
sudo docker run --name mysql-wpx -e MYSQL_ROOT_PASSWORD=xxxxxxxxxxx -d mysql

Nun brauchen Sie jeweils eine WordPress Instanz, die mit dem MySQL Container verlinkt wird und auf einem bestimmten Port läuft

sudo docker run --name wp1 --link mysql-wp1:mysql -p 8081:80 -d wordpress
sudo docker run --name wp2 --link mysql-wp2:mysql -p 8082:80 -d wordpress
sudo docker run --name wp3 --link mysql-wp3:mysql -p 8083:80 -d wordpress

usw.

sudo docker run --name wpx --link mysql-wpx:mysql -p 80xx:80 -d wordpress

Mit dem Befehl

sudo docker ps -a

können Sie nachsehen, ob alles passt und wenn Sie nun im Browser den entsprechenden Port aufrufen, in meinem Fall http://serverblogger.ch:8081 und weitere, so erscheint jeweils der Web-Installer von WordPress.

WordPress Installation
WordPress Installation

An diesem Punkt werden Sie beginnen, fasziniert zu sein 🙂

Im Blogpost WordPress Testumgebungen in Docker ist dieses Beispiel noch ausführlicher erläutert.

Ein Beispiel für Joomla mit einem anderen Image

Ausser den offiziellen Images von Docker gibt es auch von Benutzern zur Verfügung gestellte Images. Ich möchte Ihnen ein Beispiel für Joomla zeigen. Sie müssen sich beim Docker Hub registrieren, um die zur Verfügung stehen Images durchsuchen zu können. Der Benutzer gjong hat beispielsweise ein Joomla Image gebaut, das alles enthält, was man so braucht. Sie installieren es mit dem Befehl

sudo docker pull gjong/apache-joomla

Das MySQL Passwort ist in diesem Fall leer und gjong empfiehlt diesen Startbefehl

sudo docker run -d -p 80:80 gjong/apache-joomla

Ich würde noch einen Namen mitgeben und ihn auf einem freien Port starten (nach der WordPress Apokalypse 🙂 ), sagen wir mal 8099

sudo docker run --name joomla1 -d -p 8099:80 gjong/apache-joomla

Rufen Sie mal den Port im Browser auf

Joomla Installer
Joomla Installer

Links


tl;dr: Mit Docker können Sie Software in Containern ausliefern und einfach verteilen.

Kategorien
Content Management Systeme Webdesign

Installation der 5 verbreiteten Content Management Systeme

Open Source Content Management Systeme werden im grossen Stil zum Aufbau und zur Pflege von Websites seit gut 10 Jahren eingesetzt. In diesem Artikel geht es um die Installation jedes Systems auf einem Root-Server.

Wir wollen nicht auf die Vor- oder Nachteile der einzelnen Systeme eingehen. So unterschiedlich sind die fünf Systeme, von der technischen Seite her betrachtet, gar nicht :). Mit jedem dieser Systeme können kleine und auch grosse Websites erstellt werden. Die Realisierung ist eine Frage von Budget, Ressourcen, Wünschen, Erwartungen und Zielvereinbarungen.

Alle oben genannten CMS benötigen eine Datenbank (meist MySQL) und sie bestehen aus einer Sammlung von PHP Skripten und externen Bibliotheken. Zur Installation müssen ausser dem eigentlichen Webspace (vhost), ein Datenbank User Account und eine Datenbank zur Verfügung stehen.

Im deutschsprachigen Raum haben sich die Systeme WordPress, Joomla!, TYPO3, Contao und Drupal durchgesetzt.

Inhalt

Datenbank

Zum Thema Datenbank gibt es ein paar Dinge zu sagen. Zunächst gibt es natürlich auch andere Datenbanken neben MySQL, beispielsweise PostgreSQL, Microsoft SQL Server oder Oracle. Ein relativ neuer Name in diesem Kreis ist MariaDB.

MySQL ist vermutlich immer noch das am weitestens verbreitete Open Source Datenbanksystem. Die Firma MySQL AB, die hinter der Entwicklung von MySQL stand, wurde 2008 von Sun Micosystems übernommen, die wiederum 2010 von Oracle gekauft wurden. Seit der Übernahme durch Oracle wird der Unterschied von der freien zur kommerziellen Version von MySQL immer grösser zu lasten der freien Version. Michael Widenius, der Gründer von MySQL AB gründete daher im Jahr 2012 die unabhängige MariaDB-Foundation, die das gleichnamige Datenbanksystem MariaDB entwickelt. MariaDB wird bereits von einigen Linux-Distributionen als Standard-Installation benutzt und auch unter Ubuntu gibt es MariaDB Installationspakete.

Vermutlich werden nach und nach die freien MySQL Versionen durch MariaDB ersetzt werden. Da wir in diesem Blog mit der Installation von MySQL (und PHP) begonnen haben, werden wir bis auf weiteres auch dabei bleiben. Alle beschrieben Beispiele laufen auch mit dem MariaDB Server.

PHP

PHP kann als Servermodul (so wie in unserer Installation) oder als CGI-Programm eingesetzt werden. Je nach Anforderung ist das Eine oder das Andere „besser, schneller, sicherer, etc“. Ich werde in einem späteren Blogeintrag beschreiben, wie Sie PHP als CGI einsetzen und vor allem warum (Bei der TYPO3 NEOS Installation wird beispielsweise PHP in der CGI Version benutzt)

Für die Installation und den Betrieb der oben angegebenen CMS ist die Betriebsart von PHP in diesem Stadium nicht wichtig.

Datenbank und User anlegen

Wie bereits im OwnCloud Artikel beschrieben, geht das recht einfach über die Konsole.

Rufen Sie den MySQL Monitor auf und erzeugen Sie ein Benutzerkonto und eine Datenbank. Im folgenden Beispiel heisst der Benutzer cmsuser und die Datenbank cmsdb. Nehmen Sie sich bitte die Zeit und lesen ein paar Zeilen über Passworte.

Wählen Sie Namen oder tauschen Sie einfach den String cms durch den Namen des CMS aus.

mysql -u root -p
Enter password:
mysql> CREATE USER 'cmsuser'@'localhost' IDENTIFIED BY 'IHRPASSWORT';
mysql> CREATE DATABASE cmsdb;
mysql> GRANT ALL ON cmsdb.* TO 'cmsuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit

Ich lege mir also fünf Datenbanken nebst Usern und Passworten an:

  • DBUser: wpuser DB: wpdb Passwort: …
  • DBUser: joouser DB: joodb Passwort: …
  • DBUser: t3user DB: t3db Passwort: …
  • DBUser: ctuser DB: ctdb Passwort: …
  • DBUser: duser DB: ddb Passwort: …

zurück nach oben

Virtueller Server

Legen Sie sich wie im Blogeintrag Viele virtuelle Server auf einem Root-Server beschrieben, einen oder mehrere virtuelle Server an.

Setzen Sie die Besitzer- und Gruppenzugehörigkeit auf den User und die Gruppe des Webservers (jeweils www-data). Als Domain benutze ich serverblogger.ch.

sudo chown -R www-data:www-data /var/www/serverblogger.ch/public_html

An dieser Stelle kommt es darauf an, wer der Administrator des virtuellen Servers sein wird, wie die Dateien kopiert werden, etc. Wenn es jemand anders als Sie ist, so muss/sollte der virtuelle Server die Besitzer- und Gruppenzugehörigkeit dieses Users haben und der User sollte Mitglied der Gruppe des Webservers sein. Dazu mehr in einem späteren Blogeintrag.

Es ist hilfreich (bei TYPO3 Neos zwingend) das Modul Mod_rewrite zu aktivieren

a2enmod rewrite

zurück nach oben

Installation der Content Management Systeme

Jedes der CMS besitzt ein browserbasiertes Installationsprogramm.

Sie müssen auf der jeweiligen Projekthomepage den Quellcode downloaden, in Ihr DocumentRoot Verzeichnis (meist /public_html) entpacken und dann im Browser die entsprechende Domain aufrufen

  1. Beim Auspacken müssen Sie darauf achten, ob die Dateien in ein eigenes Verzeichnis ausgepackt werden oder nicht. Das WordPress Archiv wird beispielsweise in ein Unterverzeichnis wordpress entpackt. Es gibt keine richtige oder falsche Art zu Entpacken. Entwickeln Sie einfach ein pragmatisches System, durch das Sie und! Ihre Kollegen durchsteigen. Ich sammele die Quellarchive beispielsweise in meinem Home Verzeichnis, entpacke sie dort und kopiere die Daten dann an ihr eigentliches Ziel. Das ist nicht atemberaubend effizient aber übersichtlich.
  2. Vergessen Sie nicht die ausgepackten Dateien mit der „richtigen“ Besitzer- und Gruppenzugehörigkeit zu versehenchown -R www-data:www-data /var/www/meinewebsite.ch/public_html

    Das -R sorgt dafür, dass alle Unterordner und die darin enthaltenen Dateien ebenfalls bearbeitet werden.

  3. Hilfreich beim hin- und herkopieren ist seit nunmehr 20 Jahren auch immer noch der Midnight Commander. Sie installieren ihn mit dem Befehl apt-get install mc.

zurück nach oben

1. WordPress – Installation auf einem Root-Server

Den Quellcode gibt es auf https://de.wordpress.org/.

Download:

wget https://de.wordpress.org/wordpress-4.0.1-de_DE.tar.gz

Auspacken:

tar -xvzf wordpress-4.0.1-de_DE.tar.gz -C /var/www/[domainname]/public_html/

Aufruf im Browser:

Das Installationsprogramm erscheint. Füllen Sie die Formulare mit den entsprechenden Daten aus.

Installation Screen 1
Installation Screen 1
Eingabe der Zugangsdaten
Eingabe der Zugangsdaten
Start der eigentlichen Installation
Start der eigentlichen Installation
Eingabe der Website Informationen
Eingabe der Website Informationen
Erfolgreiche Installation
Erfolgreiche Installation
Administrationsbereich
Administrationsbereich
Website nach der Installation
Website nach der Installation
Die Website ist nun im „Roh- oder Auslieferungszustand“ und bereits mit jeweils einem Beispielpost versehen.

„So, und nun genug geschwafelt – jetzt nichts wie ran ans Bloggen!“

Dem will ich nichts hinzufügen 😉

Das Admin Interface finden Sie unter http://[domainname]/wp-admin

zurück nach oben

Joomla!- Installation auf einem Root-Server

Den Joomla! Download gibt es auf joomla.org. Ein komplett deutsche Version finden Sie auf jgerman.de (funktioniert nur mit MySQL).

Download:

wget http://downloads.sourceforge.net/jgerman/Joomla_3.3.6-Stable-Full_Package_German.tar.gz

Auspacken:

tar -xvzf Joomla_3.3.6-Stable-Full_Package_German.tar.gz -C /var/www/[domainname]/public_html/

Aufruf im Browser:

Das Installationsprogramm erscheint.

1. Konfiguration
1. Konfiguration
2. Datenbank
2. Datenbank
FTP-Konfiguration
FTP-Konfiguration
Zusammenfassung
Zusammenfassung
Erfolgreiche Installation
Erfolgreiche Installation
Administrationsbereich
Administrationsbereich
Website mit Beispieldaten
Website mit Beispieldaten
Die Website ist nun im „Roh- oder Auslieferungszustand“ und optional mit Beispieldaten gefüllt.

Das Admin Interface finden Sie unter http://[domainname]/administrator

zurück nach oben

TYPO3- Installation auf einem Root-Server

TYPO3 gibt es in zwei Geschmacksrichtungen

  • Das TYPO3 CMS in der aktuellen Version 6.2.x. Es ist das „klassische“ TYPO3, wie es im deutschsprachigen Raum verbreitet ist.
  • Die Version TYPO3 NEOS in der Version 1.1.x- TYPO3 NEOS ist mehr oder weniger als Unfall entstanden. Während der Entwicklung der Version 5 des TYPO3 CMS wurden aus unterschiedlichen Gründen komplett neue Wege beschritten. Die Version 5 entfernte sich daher immer mehr von den Verfahrensweisen des TYPO3 CMS. In der Konsequenz beschloss man, die Version 5 als eigene TYPO3 Version auszulagern und beim TYPO3 CMS von der Version 4 direkt nach 6 zu springen. TYPO3 NEOS basiert auf dem TYPO3 Framework FLOW und stellt nach eigenen Aussagen die Zukunft von TYPO3 dar.

Ich gebe in diesem Blogeintrag mal der Zukunft den Vorrang und installiere TYPO3 NEOS.

Wir müssen auf unserem Root-Server ein paar Vorbereitungen treffen und Git, sowie den „PHP Abhängigkeitsmanager“ Composer installieren.

apt-get install git

Den Composer installiere ich in meinem Home Verzeichnis /home/novatrend

curl -s https://getcomposer.org/installer | php

Dann wechsele ich in das gewünschte Verzeichnis (cd /var/www/serverblogger.ch/public_html) und lasse mir vom Composer TYPO3 NEOS installieren.

sudo php /home/novatrend/composer.phar create-project --no-dev typo3/neos-base-distribution TYPO3-Neos-1.1

Wenn die folgenden Meldungen erscheinen, lassen Sie sich von ein paar Fehlermeldungen nicht irritieren. Es waren in menem Fall nur Hinweise, die keinen Einfluss auf die Installation hatten.

Installing typo3/neos-base-distribution (1.1.2)
  - Installing typo3/neos-base-distribution (1.1.2)
    Cloning 1bfbeb21f3a924c732a6ee33ed9b59bbbe5e1a4f
...
... viel mehr Meldungen
...
  - Installing typo3/neos-kickstarter (1.1.x-dev 827c4cc)
    Cloning 827c4cc17bb116b1560410eb4c2f72e233d86b97

Writing lock file
Generating autoload files
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y

Die Dateien sind jetzt heruntergeladen und ich setzte noch die Eigentumsrechte

chown -R www-data:www-data /public_html

Es dauerte eine Weile, bis ich den Quellcode an der richtigen Stelle hatte. Hilfreich waren dabei:

Hinweis auf die Datei mit dem Passwort
Hinweis auf die Datei mit dem Passwort
Datenbank Konfiguration
Datenbank Konfiguration
Administrator Account erstellen
Administrator Account erstellen
Eine Seite importieren oder neu erstellen
Eine Seite importieren oder neu erstellen
Erfolgreich installiert
Erfolgreich installiert
TYPO3 DEMO Website
TYPO3 DEMO Website
Administrationsbereich
Administrationsbereich
Der Administrationbereich befindet sich unter http://[domainname]/neos.

zurück nach oben

Contao- Installation auf einem Root-Server

Den Contao Quellcode gibt es auf contao.org

Download:

Ich habe kein Datei-Archiv gefunden, die Installationshilfe schlägt jedoch den Befehl

curl -L http://download.contao.org | tar -xzp

vor, der ein Verzeichnis contao-3.4 erstellt und die Dateien einzeln läd.

Auspacken:

entfällt, da die Dateien einzeln geladen werden.

Aufruf im Browser:

Das Installationsprogramm erscheint nach dem Aufruf von http://[domainname]/contao/install.php.

Füllen Sie die Formulare mit den entsprechenden Daten aus.

Lizenz akzeptieren
Lizenz akzeptieren
Installer Passwort
Installer Passwort
Datenbankkonfiguration
Datenbankkonfiguration
Datenbank Update
Datenbank Update
Erfolgreiche Installation
Erfolgreiche Installation
Admin User erstellen
Admin User erstellen
Frontent (noch keine Website angelegt)
Frontent (noch keine Website angelegt)
Administrationsbereich
Administrationsbereich
Eine Beispielwebsite wird bei der Installation von Contao standardmässig nicht erstellt, den Administrationsbereich finden Sie unter http://[domainname]/contao.

zurück nach oben

Drupal- Installation auf einem Root-Server

Den Drupal Quellcode gibt es auf drupal.org – Eine deutschsprachige Installation wird vom drupalcenter.de zur Verfügung gestellt. Ich benutze im Beispiel die Version von drupalcenter.de.

Hinweis Stand 28.11.2014:

In der /etc/php5/apache2/php.ini von Ubuntu 14.04 muss noch etwas geändert werden (https://www.drupal.org/node/2115155#comment-9071843), damit die Webinstallation problemlos durchläuft:

[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0 // <- Diese Zeile muss aktiv sein

Danach ein Webserver Neustart – service apache2 restart

Download:

wget http://www.drupalcenter.de/files/drupal-7.34-DE.tar.gz

Auspacken:

tar -xvzf drupal-7.34-DE.tar.gz -C /var/www/[domainname]/public_html/

Aufruf im Browser:

Das Installationsprogramm erscheint. Füllen Sie die Formulare mit den entsprechenden Daten aus.

Auswahl des Drupalcenter.de Installationsprofils
Auswahl des Drupalcenter.de Installationsprofils
Sprachauswahl
Sprachauswahl
Datenbankkonfiguration
Datenbankkonfiguration
Website konfigurieren
Website konfigurieren
Drupal Installation fertiggestellt
Drupal Installation fertiggestellt
Frontend
Frontend
Administrationsbereich
Administrationsbereich
zurück nach oben

Fazit – Installation der fünf CMS auf einem Root-Server

Ich installiere nicht oft fünf Open Source CMS hintereinander weg auf einem Root Server und so war es für mich auch ganz interessant, die verschiedenen Ansätze in den Programmen zu sehen. Die absolut einfachste Installation war die von WordPress.

Joomla! und Drupal warfen während des Installationsvorgang ein paar Fragen auf, die aber einfach zu lösen sind. Nach der Installation bieten die drei Systeme eine fertige Website, die dann im Administrationbereich konfiguriert und mit Inhalt befüllt werden kann.

Contao ist ebenfalls gut zu installieren, erstellt allerdings keine Website während der Installation.

TYPO3 Neos schliesslich besitzt ebenfalls einen wunderbar einfach zu bedienenden Webinstaller, allein der richtige Download der Dateien und die Vorbereitung des virtuellen Webservers waren schlecht beschrieben. Das ist schade, denn das System an sich sieht sehr vielversprechend aus und verdient eine bessere Dokumentation!

  • WordPress 4.x: Sehr einfache Installation mit charmanter Benutzerführung. Es wird eine Website erstellt, die bereits sinnvolle Beispieldaten enthält. Websitewordpress.org, de.wordpress.org Twitter@wordpress @wp_deutschland
  • Joomla! 3.3.x: Sehr einfache Installation, teilweise für Neulinge verwirrend (beispielsweise: Brauche ich den FTP Layer? Welche Beispieldaten sind für meinen Zweck sinnvoll? Soll ich das Installationsverzeichnis löschen?). Es wird eine Website erstellt, die optional unterschiedliche Beispieldaten enthält. Websitejoomla.org, joomla.ch, joomla.de Twitter@joomla @joomlade
  • Contao 3.4: Sehr einfache Installation, teilweise für Neulinge verwirrend (beispielsweise: Warum lege ich ein Installer Passwort an? Soll ich ein Datenbank-Update während der Installation einspielen? Wo ist die eigentliche Website?). Es wird keine Website während der Installation erstellt. Websitecontao.org Twitter@contaocms @leofeyer
  • Drupal 7: Sehr einfache Installation. Es wird eine Website erstellt. Einziger Haken sind die Standardeinstellungen der php.ini in Ubuntu 14.04., in der ein Parameter geändert werden musste. Drupal hat eine optische Trennung zwischen Front- und Backend. Es wird eine Website abhängig vom Installationsprofil, in meinem Fall von drupalcenter.de ohne Beispieldaten erstellt. Websitedrupal.org, drupalcenter.de Twitter@drupal, @drupalcenter
  • TYPO3 Neos 1.1.2: Schlecht dokumentierte Vorbereitung des eigentlichen Installationsvorgangs. Ein Root-Server ist empfehlenswert, da Parameter in php.ini und vhost Konfigurationsdateien gesetzt werden müssen. Während der einfachen, webbasierten Installation im Anschluss besteht die Möglichkeit zur automatischen Erzeugung einer Demoseite. Websitetypo3.org, neos.typo3.org Twitter@typo3 @typo3neos

Falls Sie hilfreiche Links, HowTo’s, Bücher, Events für die ersten Schritte mit den einzelnen Systemen kennen, so freue ich mich auf Feedback.