Wir leben in einer Aufmerksamkeitsökonomie. Nicht mehr der Zugang zu den Dingen und Services ist begrenzt, sondern die Aufmerksamkeit des Einzelnen. Um diese begrenzte Aufmerksamkeit auf dieses oder jenes zu lenken, muss man etwas tun. Bei den meisten Free and Open Source Projekten gibt es keine Marketing Abteilung. Der Code entsteht dezentral und steht meistens für sich selbst. Die Projekte sind in der Anfangsphase oft so innovativ, dass es keiner besonderen Werbung bedarf, sondern das Produkt spricht für sich selbst.
Ich habe heute die Ehre dir zu erläutern wie du mein Lieblings-CMS Contao auf einem Webhosting von Novatrend zum Laufen bringst. Novatrend selber nutzt übrigens auch Contao für ihre Website.
Die erste Version von Contao ist im Jahre 2006 unter dem damaligen Namen TYPOlight erschienen und wird mittlerweile von einem 7-köpfigen Entwicklerteam stetig weiterentwickelt. Ich erspare dir jetzt noch mehr Marketing-Blabla und lasse das System für sich sprechen.
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.
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.
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:
Setzen Sie die Besitzer- und Gruppenzugehörigkeit auf den User und die Gruppe des Webservers (jeweils www-data). Als Domain benutze ich serverblogger.ch.
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
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
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.
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.
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.
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 Eingabe der Zugangsdaten Start der eigentlichen Installation Eingabe der Website Informationen Erfolgreiche Installation Administrationsbereich 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
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 2. Datenbank FTP-Konfiguration Zusammenfassung Erfolgreiche Installation Administrationsbereich 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
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.
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 Datenbank Konfiguration Administrator Account erstellen Eine Seite importieren oder neu erstellen Erfolgreich installiert TYPO3 DEMO Website Administrationsbereich
Der Administrationbereich befindet sich unter http://[domainname]/neos.
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 Installer Passwort Datenbankkonfiguration Datenbank Update Erfolgreiche Installation Admin User erstellen Frontent (noch keine Website angelegt) Administrationsbereich
Eine Beispielwebsite wird bei der Installation von Contao standardmässig nicht erstellt, den Administrationsbereich finden Sie unter http://[domainname]/contao.
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.
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 Sprachauswahl Datenbankkonfiguration Website konfigurieren Drupal Installation fertiggestellt Frontend 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!
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. joomla.org, joomla.ch, joomla.de@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. contao.org@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. drupal.org, drupalcenter.de@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. typo3.org, neos.typo3.org@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.