Kategorien
Allgemein Content Management Systeme Datenbanken Infrastruktur Shared Hosting Tools Wunschthema

Dateien und Datenbanken

Auf den Artikel Datenrettung – komfortabel, sicher und kostenlos! in der letzten Woche gab es viele positive Kommentare. Positive Kommentare freuen uns, zeigen sie doch, dass wir auf dem richtigen Weg sind. Interessant als Feedback sind aber auch die eher negativen Kommentare. Schliesslich erfahren wir auf diese Art und Weise, woran wir vielleicht gar nicht gedacht hat. Hier ein Beispiel von Fabian:

Ein vorbildlicher Service! Habe ich das aber richtig gelesen. Ich verliere damit „die schnelle Sicherung“ vor einem Update und kann das auch nicht mehr automatisiert (bequem) im cpanel machen? Und die super mega coole Clone-Möglichkeit einer WP Umgebung im Installatron geht dann auch nicht mehr? Für mich persönlich wäre das ein Rückschritt im Workflow.
Für den „normalen“ Betrieb natürlich eine Verbesserung. Aber man kann es nie allen Recht machen 😉

Ich wollte erst eine Antwort im Kommentar schreiben, dachte dann aber, es wäre besser daraus einen Blogeintrag zu machen.

Dateien und Datenbanken

Backups bestehen normalerweise aus Dateien (Textdateien, Bilddateien, HTML-Dateien, etc). Wenn eine Website, die mit einem Content Management System wie WordPress oder Joomla erstellt ist, gesichert werden soll, muss ausser den Dateien auch die Datenbank gesichert werden. Das hört sich einfach an, ist aber eine Wissenschaft für sich.

Wenn ich beispielsweise eine Bilddatei habe (meinbild.jpg), dann kopiere ich dieses Bild einfach an den gewünschten Ort im Dateisystem und habe ein Backup. Der Restore Prozess besteht ebenfalls aus dem Kopierbefehl.

Wenn ich eine Datenbank benutze, so greife ich auf diese Datenbank mit einem Hostnamen, einem Benutzernamen und einem Passwort über eine wie auch immer gestaltete Programmiersprache zu. Ich kann die Datenbank daher nicht einfach so „kopieren“. Um die Arbeitsweise zu verdeutlichen hier ein kleines Beispiel.

Wenn ich eine Joomla Site betreibe, könnte ich in der Tabelle jos_content mit dem SQL Befehl:

SELECTFROM `jos_content` WHERE `id` = 1

den Inhalt des ersten erstellten Artikels erhalten. Dieser Inhalt wird mir dann in einem Array, einer Liste oder einem Objekt meiner Programmiersprache angeboten. Um den eigentlichen Inhalt zu sehen, muss ich ihn irgendwo ausgeben. Das geht natürlich auf der Website:

Joomla Website
Joomla Website

Das geht aber auch in Programmen wie phpMyAdmin. Da sieht die Ausgabe nicht so schick aus, der Inhalt ist allerdings tatsächlich der Gleiche.

jos_content Tabelle
jos_content Tabelle

So richtig „greifen“, wie eine Bilddatei, lässt sich eine Datenbank daher nicht.  Joomla kann tausende von Artikeln verwalten, wie soll ich die sichern? Du ahnst es vielleicht schon: Ich verwandle die Datenbank in eine Datei. Um das zu machen, benötige ein Werkzeug, ein Programm, eine Programmiersprache … irgendwas, dass es mir erlaubt, auf die Daten in der der Datenbank zuzugreifen.

Der Datenbankserver MySQL bringt das Kommandozeilen Tool mysqldump mit. Mit dem Befehl:

mysqldump -u [uname] -p[pass] db_name > db_backup.sql

kann ich den Inhalt der Datenbank in eine Datei verwandeln.
Mit einem anderen Befehl könnte ich eine einzige Tabelle, wie die jos_content sichern/exportieren.

mysqldump -u [uname] -p[pass] db_name table > table_backup.sql

So prinzipiell geht es um das im- und exportieren von Daten in eine Datenbank hinein oder aus einer Datenbank heraus.

Die .sql Datei, die beim Sichern/Exportieren erzeugt wird, enthält den Befehl diese Tabelle wieder zu erzeugen (CREATE TABLE)

CREATE TABLE `jos_content` (
 `id` int(10) UNSIGNED NOT NULL,
 `asset_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to the jos_assets table.',
 `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',

.............. VIEL MEHR ANWEISUNGEN ...........................
 `language` char(7) COLLATE utf8_unicode_ci NOT NULL COMMENT 'The language code for the article.',
 `xreference` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'A reference to enable linkages to external data sets.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

und die Befehle die einzelnen Artikel wieder zu erzeugen (INSERT INTO)

INSERT INTO `jos_content` (`id`, `asset_id`, `title`, `alias`, `introtext`, `fulltext`, `state`, `catid`, `created`, `created_by`, `created_by_alias`, `modified`, `modified_by` ...) VALUES
(1, 61, 'Getting Started', 'getting-started', '<p>It\'s easy to get started creating your website. Knowing some of the basics will help.</p><h3>What is a Content Management System?</h3><p>A content management system is software that allows you to create and manage webpages easily by separating the creation of your content from the mechanics required to present it on the web.</p><p>In this site, the content is stored in a <em>database</em>. The look and feel are created by a <em>template</em>. Joomla! brings together the template and your content to create web pages.</p><h3>Logging in</h3><p>To login to your site use the user name and password that were created as part of the installation process. Once logged-in you will be able to create and edit articles and modify some settings.</p><h3>Creating an article</h3>
.............. VIEL MEHR ANWEISUNGEN ...........................

Nun haben wir die Datenbank als Datei vorliegen, können diese Datei kopieren und wir können die Daten in der Datei in eine andere Datenbank importieren.

Hinweis: Die normalerweise mit einem Passwort geschützten Daten liegen nun übrigens ungeschützt in einer Datei auf einer Festplatte. 

An dieser Stelle wird es interessant, weil diese Funktionen für mehrere Zwecke genutzt werden.

  1. Backup und Restore im Sinne der Sicherung der Daten
  2. Export und Import im Sinne von Umziehen und Kopieren von Daten

Da der mysqldump Befehl natürlich nicht besonders benutzerfreundlich ist und teilweise den Nutzern auch gar nicht zur Verfügung steht, werden Backup Tools (außer zum Backup) auch gern zum Klonen von Websites genutzt. Das funktioniert bei „überschaubaren“ Sites noch ganz gut, bei Sites mit größeren Datenbanken klappt es oft nicht mehr so gut. Die Gründe sind vielfältig.

Nach dieser langen Vorrede möchte ich zum Kern meiner Antwort an Fabian kommen.

phpMyAdmin

Wer mit Datenbanken hantiert, dem ist der Name phpMyAdmin sicher schon mal über den Weg gelaufen. Mit phpMyAdmin lassen sich Datenbanken exportieren (Backup) und importieren (Restore). Musste man früher noch Parameter festlegen, so sind es heutzutage wirklich nur ein paar Mausklicks zum Erfolg.
Im cPanel muss das Icon phpMyAdmin angeklickt werden.

cPanel Datenbanken
cPanel Datenbanken
phpMyAdmin
phpMyAdmin

Auf der linken Seite sehe ich meine Datenbanken. Die seafoll1_jos1 ist die Joomla Datenbank.

Backup einer Datenbank

Um nun diese Datenbank zu sichern, musst du sie mit einem Klick auf den Namen auswählen und auf den Reiter Exportieren klicken.

phpMyAdmin Datenbank Export
phpMyAdmin Datenbank Export

Du kannst alle Einstellungen so lassen, wie sie sind und auf den OK Button klicken. Das Programm phpMyAdmin erzeugt eine .sql Datei und lädt sie auf deinen PC herunter. Das ist das Backup!
Aus Platzgründen kannst du die Datei noch in ein komprimiertes Archiv verwandeln (zippen).

Restore einer Datenbank

Genau so einfach wie das Backup ist der Restore Vorgang. Es liegt nun an dir, welches Szenario du benötigst

  1. vor einem Update soll eine schnelle Sicherung gemacht werden
  2. nach einem Schaden soll ein Restore in der gleichen Datenbank vorgenommen werden
  3. die Site soll „geklont“ werden

Schnelle Sicherung

Wenn du eine schnelle Sicherung vor einem Update benötigst, würde ich die Datenbank gar nicht exportieren, ich würde sie einfach „kopieren“. Das funktioniert komplett auf dem Server und reicht als Notfall für ein fehlgeschlagenes Update aus.

phpMyAdmin - Datenbank kopieren
phpMyAdmin – Datenbank kopieren

Achtung: Wenn das Update ohne Fehler durchgelaufen ist, solltest du die Kopie der Datenbank wieder löschen um Speicherplatz zu sparen.

Restore in der gleichen Datenbank

In diesem Fall müssen die existierenden „schlechten“ Tabellen zunächst gelöscht werden. Dazu musst du im Reiter Struktur alle Tabellen markieren und löschen. Damit wirklich nichts verloren geht, kannst du vorher die „schlechte“ Datenbank unter einem anderen Namen kopieren.

phpMyAdmin - Tabellen löschen
phpMyAdmin – Tabellen löschen

Anschließend klickst du auf den Reiter Importieren, wählst deine .sql Datei des Backups mit den „guten“ Daten aus und klickst auf den OK Button. Alle Daten aus der Datei werden in die Datenbank importiert.

phpMyAdmin - Datenbank importieren
phpMyAdmin – Datenbank importieren

Site soll geklont werden

In diesem Fall muss das .sql Backup der einen Datenbank einfach in die gewünschte andere Datenbank importiert werden.

Fazit

Zunächst einmal vielen Dank an Fabian für den Kommentar. Bei einer kurzen Diskussion über das Thema wurde uns wieder klar, wie komplex die Zusammenhänge bei Datenbanken sein können. Unter anderem um die diese Komplexität zu reduzieren, haben wir das neue System überhaupt eingeführt. Wer wie Fabian (und ich auch) manchmal komplexere Aktionen machen will, dem sei daher phpMyAdmin wärmstens empfohlen.


tl;dr: Wir machen aus einer Datenbank eine Datei 🙂

 

 

Save

Kategorien
Content Management Systeme

Hello, I’m Pagekit. A new modern CMS

Auf dem Joomlatag in Hamburg am 18. und 19. September ist mir das Content Management System Pagekit aufgefallen. Nach einer kurzen Demo war ich sehr beeindruckt. Pagekit ist Open Source Software. Das Projekt wurde von der Firma YOOtheme ins Leben gerufen und es steht unter der freien MIT Lizenz (Details). Es enthält einen Marketplace, in dem Entwickler Ihre Komponenten kostenlos oder kostenpflichtig anbieten können. Pagekit liegt momentan in der Beta Version vor. Die Version 1.0 ist für das vierte Quartal 2015 geplant (Roadmap). Pagekit arbeitet mit PHP und MySQL und setzt auf Symphony Components und Doctrine auf

Und nun muss ich Ihnen das einfach mal zeigen 🙂

Installation

Laden Sie sich den Quellcode von der Site pagekit.com und entpacken Sie ihn im Dokumentenverzeichnis des Webservers. Wenn Sie im Browser die Site aufrufen, erscheint der Installer und fragt zunächst nach der gewünschten Sprache. Diese Wahl gilt für die gesamte Site, momentan ist Pagekit nicht mehrsprachig installierbar.

Installation - Sprachauswahl
Installation – Sprachauswahl
Im nächsten Schritt müssen Sie die Parameter Ihrer Datenbankverbindung eingeben.
Installation - Datenbank Anbindung
Installation – Datenbank Anbindung
Der erste Benutzer wird Administrator!

Installation - Benutzer anlegen
Installation – Benutzer anlegen
Nun benötigt die Website noch einen Namen und eine Beschreibung.
Installation - Name der Website
Installation – Name der Website
Pagekit wird installiert und leitet Sie weiter auf die Anmeldung zum Dashboard (/admin/login).

Administration - Anmeldung
Administration – Anmeldung
Das Dashboard enthält zunächst drei sogenannte Widgets.
Administration - Dashboard
Administration – Dashboard
Diese Widgets können konfiguriert werden. Dazu fährt man mit der Maus über die rechte Ecke und klickt auf das Edit-Symbol. Formularfelder mit konfigurierbaren Parametern erscheinen dort. Dieses Prinzip, dass Steuerelemente nur dann erscheinen, wenn man Sie benötigt, zieht sich durch das ganze Projekt und sorgt für eine sehr aufgeräumte, saubere Oberfläche.
Widget Konfiguration
Widget Konfiguration
In der oberen linken Ecke des Dashboards befindet sich das Menu. Pagekit bietet, wie WordPress, die Möglichkeit Seiten und Artikel (Blog) einzustellen. Seiten werden in Site verwaltet, Blogeinträge in Blog. Im Bereich Benutzer werden die Benutzer angelegt und die Rollen zugewiesen und gepflegt, im Bereich System werden Einstellungen für das Medienverzeichnis, zur Sprache, zum Caching und zum Mail Versand konfiguriert. Das erinnert an Joomla. Hinter dem letzten Icon Marktplatz verbirgt sich der Pagekit Marketplace, der momentan (Anfang Oktober 2015) bereits einen Formulargenerator, einen Portfolio Manager, ein Google Analytics Widget für das Dasboard und ein Grundgerüst für eine Erweiterung enthält. Kostenlose und kostenpflichtige Erweiterungen lassen sich leicht schreiben und in der Zukunft in diesem Appstore anbieten. Auch ein paar Themes sind schon verfügbar. Momentan befindet sich das alles in der Realisierungsphase (The Marketplace).
Dashboard - Menü
Dashboard – Menü

Website

Die eigentliche Website enthält standardmässig ein Headerbild, einen Link zum Blog, den Textinhalt der Startseite und eine Fusszeile, die über Systemeinstellungen konfiguriert werden kann.

Website
Website

Content Managing

Das Verwalten des Inhalts ist Hauptaufgabe eines CMS. Pagekit bietet dazu eine Benutzer-, eine Datei- und natürlich eine Seitenverwaltung an. Die Bedienung geht leicht von der Hand. Der Editor beispielsweise hat einen Splitmode in dem Sie im Browser während des Editierens eine Live Vorschau haben.

Pagekit - Editor
Pagekit – Editor
Listen sind von der Darstellung her Joomla recht ähnlich, einzelne Seiten lassen sich jedoch sehr elegant per Drag and Drop zu einer Baumstruktur verschieben, ähnlich wie bei den Menüeinträgen in Drupal. Selbst die URL passt sich automatisch an! Die Startseite wird wie bei Joomla einfach markiert (Haussymbol).

Baumstruktur der Seiten
Baumstruktur der Seiten
Wenn Sie an dieser Stelle angekommen sind, macht es Ihnen vermutlich einfach Spass, das System zu benutzen. Es fühlt sich so ungemein „fluffig“ an und ich überlege bereits, welche Website ich damit realisieren könnte 🙂

Hier noch ein kurzes Video, wo Sie das Ganze mal live erleben können

Links


tl;dr: Wenn Sie die Benutzeroberfläche von Apple Produkten mögen, werden Sie das freie CMS Pagekit lieben 🙂

Kategorien
Content Management Systeme

Die Fotografin arbeitet mit Koken

Die Fotografin benötigt eine Website!

Schön soll sie sein, anmutig, leicht zu pflegen, einfach zu administrieren, sie soll den Besuchern Freude machen und Aufträge bringen. Alben muss es geben, die per Passwort geschützt werden können um Auftraggebern die Bilder risikolos zu zeigen. Wasserzeichen sollen möglich sein, damit keiner die Fotos einfach so verwendet.

Achja – und schön wäre noch eine Anbindung an Adobe Lightroom und … nicht zu vergessen … kosten sollte es auch nicht viel, weil … naja, Sie wissen schon.

Das Leben der Fotografin ist hart (aber schön).

Ich hab’s mit WordPress versucht und war schon nah dran – aber es war nicht schön. Drupal hatte ich auf der Zunge, habe es aber doch nicht erwähnt. Ein kurzer Versuch in Joomla brachte auch kein Lächeln auf die Lippen der Fotografin. Sie zeigte mir ein paar Online Services wie beispielsweise squarespace.com. Die Services sind wunderschön und bieten alles, wirklich alles, was sich die Fotografin wünscht. Sie kosten monatlich allerdings durchaus stattliche Beträge. Die Open Source Alternativen überzeugten die Fotografin nicht.

Diese Marktnische hat Koken für sich entdeckt und bietet ein wirklich ansehnliches, auf PHP und MySQL basierendes, Content Management System an. Sie können es auf Ihrem Server kostenlos installieren.

Um zusätzliche Plugins und Theme herunterzuladen müssen Sie sich bei koken.me ein Benutzerkonto anlegen. Die Plugins und Themes sind teilweise kostenpflichtig, teilweise kostenlos. Sie können auch eigene Pugins und Themes schreiben und in Ihre Seite einbauen.

UPDATE 24.08.2016
+++ ACHTUNG +++
Alle Webhostings bei NOVATREND arbeiten mit der MySQL Version 5.6. Momentan ist Koken leider noch nicht kompatibel mit der MySQL Version 5.6!
+++ ACHTUNG +++

Installation

Legen Sie sich einen virtuellen Host , eine MySQL Datenbank und ein Datenbank Benutzerkonto an.

Anlegen von MySQL Benutzer und Datenbank in der Shell:

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

Laden Sie sich von der Site http://koken.me/#dlkoken den Koken Installer und entpacken den Inhalt des ZIP Pakets Koken_Installer.zip in das Dokumentverzeichnis des Webservers.

Wenn Sie nun über einen Browser die entsprechende Domain aufrufen, startet der Installer und überprüft ob in Ihrem System alle Voraussetzungen zur Installation erfüllt sind.
In meinem Fall scheint alles vorhanden zu sein.

Installation - Server Test
Installation – Server Test

Nach einem Klick auf den Button Begin Installation werden Sie aufgefordert ein Administratorkonto anzulegen.
Mit diesem Benutzer werden Sie sich später im Administrationsbereich anmelden.
Koken kann nur diesen einen Nutzer verwalten, eignet sich also nicht für einen Mehrbenutzerbetrieb.

Installation - Benutzer anlegen
Installation – Benutzer anlegen

Als nächstes werden die Verbindungsdaten zur Datenbank abgefragt.

Installation - Datenbank Anbindung
Installation – Datenbank Anbindung

Als nächsten Schritt legen Sie die Zeitzone fest.

Installation - Zeitzone
Installation – Zeitzone

Nun beginnt die eigentliche Installation.
Nach einem Klick auf den Button Install now wird das Programmpaket von den Koken Servern auf Ihren Server geladen und auf Basis der Parameter, die Sie bereits eingegeben haben, konfiguriert.
Die Tabellen werden in der Datenbank angelegt und nach der Installation werden Sie auf die Anmeldung zum Administrationsbereich weitergeleitet.

Installation - Download
Installation – Download

Das Basispaket von Koken ist nun installiert.

Erste Schritte

Melden Sie sich mit Ihrer E-Mail Adresse und dem Passwort an.

Anmeldung im Adminbereich
Anmeldung im Adminbereich

Beim ersten Anmelden erscheint ein Fenster mit einer Tour durch Koken.

Tour
Tour

Der Administrationsbereich besteht aus einer Bibliothek (Library), einem Blog- und Seitenbereich (Text/Essay), einer Websitevorschau und dem Koken Store in dem zusätzliche Plugins und Themes heruntergeladen werden können.

Im Library Tab können Fotos durch einfaches Ziehen in den mittleren Bereich hochgeladen werden.

Hochladen von Photos
Hochladen von Photos

Sie können Fotos zu Alben gruppieren und es gibt Feature und Favoriten Funktionen.

Neue Texte können Sie in Form von Blogeintragen (Essay) oder Seiten mit Link in der Navigation (Page) anlegen.

Essay oder Page anlegen
Essay oder Page anlegen

Der Editor ist natürlich ein WYSIWYG Editor, es gibt aber auch eine HTML Ansicht.

Editor in geteilter Ansicht
Editor in geteilter Ansicht

Gespeichert wird automatisch und Sie können sich die Änderungen in der Vorschau ansehen.
Die endgültige Freigabe und Veröffentlichung auf der Website der Texte erfolgt nach einem Klick auf den Button Update site.

Plugins

Im Koken Store finden Sie kostenlose und kostenpflichtige Plugins und Themes.
Um diese installieren zu können, müssen Sie sich ein Benutzerkonto bei Koken anlegen.
Jede Koken Installation wird in Ihrem Benutzerkonto vermerkt.

Store mit zusätzlichen Plugins
Store mit zusätzlichen Plugins

Es gibt wenige, aber sinnvolle Plugins, beispielsweise die bereits angesprochenen Wasserzeichen und der Passwortschutz für Kundenordner. Beide Plugins schlagen mit jeweils 35 US $ zu Buche, müssen aber natürlich im ersten Schritt noch nicht installiert werden. Auch die freien Plugin müssen über einen Warenkorb Prozess heruntergeladen werden.

Anbindung an Adobe Lightroom

Das Adobe Lightroom Plugin ist frei verfügbar und ermöglicht die Zusammenarbeit mit Adobe Photoshop Lightroom, einer Software zur Bearbeitung und Verwaltung von Digitalfotos.

Anbindung an Lightroom
Anbindung an Lightroom

Themes

Es gibt Themes im Store, die Sie in einer Live-Vorschau auch ausprobieren können.

Auswahl eines Themes
Auswahl eines Themes

Die Navigationsstruktur innerhalb eines Themes liegt fest. Sie können bestehende Links aktivieren und deaktivieren und zusätzliche Links, beispielsweise zu einem Album oder einer About me Seite zusammenfügen.

Navigation konfigurieren
Navigation konfigurieren

Das Ergebnis

Nach kurzer Zeit gibt es als Ergebnis eine Portfolio Website, die der Fotografin gefällt 🙂

Fertige Website
Fertige Website

Links

http://koken.me


tl;dr: Mit Koken lassen sich hervorragende Portfolio Seiten für Fotografen und Fotografinnen erstellen

Kategorien
Soziale Netze

GNU social – ein dezentrales soziales Netzwerk

Ihr werdet niemals Facebook schlagen, warum also?
Vielleicht wird es nicht jeder in der Welt nutzen, aber Facebook nutzt auch nicht jeder. Datenschutz ist wichtig, und viele Leute schätzen ihre Privatsphäre und die Freiheit so sehr, dass Sie Software verwenden, die keine Dinge tut, die sie nicht wollen.
Aus FAQ GNU social.

In der kleinen Reihe über alternative Social Networks stelle ich nach Friendica heute GNU social vor. GNU social hat eine recht bewegte Geschichte und ist aus der StatusNet Software hervorgegangen, die wiederum aus Laconica hervorgegangen ist. Technisch gesehen ist es ein Mikroblogging Dienst, geschrieben in PHP. Es nutzt den OStatus Standard für das Zusammenspiel zwischen den einzelnen GNU social Installationen und anderen Anwendungen. Friendica nutzt ebenfalls OStatus und so lassen sich die beiden auch verbinden. Während Friendica eher in die Richtung von Facebook geht, ähnelt GNU social eher Twitter. Es ist einfach zu installieren und bietet ohne zusätzliche Plugins bereits Followerfunktionen, Statusmeldungen, Events, Umfragen, Lesezeichen und eine Fragefunktion. Es kann so konfiguriert werden, dass Konten nur auf Einladung erstellt werden können und die Postings nur von den Followern oder optional auch öffentlich eingesehen werden können. Für mich sieht es ziemlich brauchbar aus für die interne Unternehmenskommunikation.

Man kann es auch eine Art Homepage-Ersatz oder -Erweiterung nutzen (Beispiel). Ich mag die Idee, weil man dann tatsächlich die volle Kontrolle über seine Daten behält, trotzdem aber Follower aus anderen Plattformen wie z.B. Friendica und anderen GNU social Installationen hat und auch selber anderen Usern auf anderen Plattformen folgen kann. Man kann auch Erweiterungen und Themes installieren, aber in diesem ersten Artikel wollen wir es zunächst mal installieren 🙂

Installation

Ich benutze Ubuntu 14.04, MySQL und PHP bei meinen Beispielen hier im Blog. Wenn Sie GNU social frisch via Git installieren, so benötigen Sie die folgenden Pakete. Es kann sein, das viele Installationpakete schon auf Ihrem Root-Server installiert sind, wenn Sie die vergangenen Beispiele hier im Blog ausprobiert haben. Das ist aber kein Problem, denn falls ein bereits installiertes Paket gefunden wird, wird es eben nicht installiert.

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
sudo apt-get update -q
sudo apt-get dist-upgrade -y
sudo apt-get install -y pound varnish php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4
sudo apt-get install php5-curl git

Sie müssen nun einen Platz festlegen, in dem Sie GNU social installieren wollen. Ich bleibe hier bei meinem Verzeichnissystem (/var/www/[domainname]/public_html). Erstellen Sie ein Verzeichnis und geben Sie dem Webserver Zugriffsrechte.

mkdir /var/www/gnusocial.serverblogger.ch/public_html -p
chown www-data:www-data /var/www/gnusocial.serverblogger.ch/public_html
cd /var/www/gnusocial.serverblogger.ch/public_html

Im nächsten Schritt laden Sie die Dateien.

git clone git://gitorious.org/social/mainline.git

oder

wget https://gitorious.org/social/mainline/archive/master.zip

und anschliessend entpacken

Datenbank

Ich beschreibe hier die Variante für MySQL. Loggen Sie sich ein

mysql -u root -p

und erstellen Sie eine neue Datenbank (gnusocial) und ein neues Benutzerkonto (gnusocial). Anstelle der Sternchen legen Sie ein Passwort fest.

create database gnusocial;
grant all privileges on gnusocial.* TO "gnusocial"@"localhost" identified by "********";
flush privileges;
exit;

Virtueller Host

Je nachdem, wie und wo Sie GNU social installieren, legen Sie vermutlich einen neuen virtuellen Host an. Erstellen Sie eine Konfigurationsdatei

nano /etc/apache2/sites-available/gnusocial.serverblogger.ch.conf

und kopieren die folgenden Befehle hinein.

Hinweis: Hier im Beispiel erstelle ich keinen SSL/TLS gesicherten virtuellen Host, da mein serverblogger.ch Zertifikat nur für diese Domain gilt und nicht für Subdomains. Im Artikel Virtuelle Apache Hosts mit TLS/SSL Zertifikaten von StartSSL absichern können lesen, welche Schritte sie unternehmen müssen um die Kommunikation über das HTTPS Protokoll abzusichern.

<VirtualHost gnusocial.serverblogger.ch:80>
  ServerName gnusocial.serverblogger.ch
  DocumentRoot /var/www/gnusocial.serverblogger.ch/public_html
  DirectoryIndex index.php
  <Directory /var/www/gnusocial.serverblogger.ch/public_html>
    AllowOverride All
    Order Deny,Allow
    Allow from all
  </Directory>
</VirtualHost>

Aktivieren Sie die die vhost Konfiguration und starten Sie den Apache neu

sudo a2ensite gnusocial.serverblogger.ch.conf
sudo service apache2 reload

Damit die Installation reibungslos läuft müssen, Sie für die folgenden drei Verzeichnisse noch Zugriffsberechtigungen setzen:

chmod a+w /var/www/gnusocial.serverblogger.ch/public_html/avatar/
chmod a+w /var/www/gnusocial.serverblogger.ch/public_html/background/
chmod a+w /var/www/gnusocial.serverblogger.ch/public_html/file/

Falls es nicht bereits auf Ihrem Server eingeschaltet ist, müssen Sie noch das Apache rewrite Modul aktivieren und die htaccess.sample Datei umbenennen. Sie erhalten dadurch die Möglichkeit .htaccess Dateien zu nutzen und können lesbare URLs (Clean URLs) anbieten.

mv htaccess.sample .htaccess
sudo a2enmod rewrite
sudo service apache2 restart

Webinstaller

Sie können nun Ihre Domain im Browser aufrufen und die Konfigurationseinstellungen festlegen

http://gnusocial.serverblogger.ch/install.php

Nach dem Aufruf startet der Webinstaller mit den wichtigsten Einstellungen.

GNU social Installation
GNU social Installation
Nach einem Klick installiert sich GNU social und ist zur Nutzung bereit!
GNU social Installation erfolgreich
GNU social Installation erfolgreich
Die Installation erinnert ein wenig an WordPress. Es ist wirklich einfach.

Erste Schritte

Melden Sie sich an und füllen Sie ihr Profil aus. Sie können gern auf dem Beispielserver testen (http://gnusocial.serverblogger.ch). Die Einstellungen sind momentan so, daß Sie sich registrieren müssen, um auf die folgenden Beispiele antworten zu können.

So sieht sah die Timeline dann kurz nach dem Installieren aus.

Timeline GNU social
Timeline GNU social

Kontakt mit Anderen

Wenn ich aus unserer Friendica Installation auf dem Beispielserver, die übrigens bereits mit einem TLS Zertifikat versehen ist, einen GNU social Benutzerkonto hinzufügen will, so muss ich mich dort anmelden und in meinen Kontakten einfach [name]@[server] also hagengraf@gnusocial.serverblogger.ch hinzufügen.

Einen Benutzer aus GNU social hinzufügen
Einen Benutzer aus GNU social hinzufügen

Links


tl;dr: GNU social ist eine dezentrale Alternative zu Netzwerken wie Twitter und Facebook.

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.