Kategorien
Allgemein Content Management Systeme Datenbanken

Wozu benötigt man eigentlich eine Datenbank?

Jeder spricht heute über Daten. Wenn du schon einmal eine Website mit WordPress, Joomla, Drupal, Typo3 oder einem anderen Content Management Systemen aufgesetzt oder betrieben hast, dann hast du auch eine Datenbank benutzt, vermutlich das System MySQL/ MariaDB oder manchmal auch PostgreSQL.

In diesem Beitrag stelle ich die Zusammenhänge zwischen der Datenbank und einer CMS-Installation dar.

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 🙂

 

 

#ffffff; background: #bd081c no-repeat scroll 3px 50% / 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 7726px; left: 50px;">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.