Serverumzug mit Serendipity - Datenbank Update notwendig

Vor einiger Zeit ist ITrig auf einen neuen Server umgezogen.

Nach dem Umzug wollte das Blog nicht mehr so richtig funktionieren. Auch der Adminbereich war nicht mehr erreichbar und zeigte komische Fehler an. Nach etwas Recherche war schnell klar, dass bei Serendipity Pfade leider hart in der Datenbank stehen, welche nicht mehr auf die neue Serverstruktur passten.

Da diese Schritte nicht in der Umzugsanleitung der S9y Seite vorhanden sind, bzw. ich sie einfach nicht gefunden habe, möchte ich hier das Vorgehen dokumentieren.

s9y-logo

Serendipity Blog Pfad in der Datenbank anpassen

Zunächst wird die Ausgabe des aktuellen Pfads geprüft.

mysql -uroot -p
USE s9y_db;
SELECT * FROM `serendipity_config` WHERE name='serendipityPath'

               serendipityPath               /alterPfad/html/www/

Nun kann der Pfad auf die neue Struktur aktualisiert werden.

UPDATE `serendipity_config` set value = '/neuerPfad/' WHERE name = 'serendipityPath';

Ein weiterer Wert, der vielleicht angepasst werden muss ist serendipityHTTPPath.

SELECT * FROM `serendipity_config` WHERE name='serendipityHTTPPath'

UPDATE `serendipity_config` set value = '/NeuerPfad/' WHERE name = 'serendipityHTTPPath';

Sollte sich zusätzlich die URL geändert haben, dann kann auch diese direkt angepasst werden.

SELECT * FROM `serendipity_config` WHERE name = 'defaultBaseURL';

UPDATE `serendipity_config` set value = 'https://neuedomain.de' WHERE name = 'defaultBaseURL';

Nun sollte das System wieder wie gewohnt auf dem neuen Server erreichbar sein.

Admin Panels Part2: Cockpit - Leitstand für Fedora, CentOS oder Ubuntu

Tools für eine zentrale Verwaltung von Linux Servern gibt es einige. Mit Ajenti und LinuxDash hatte ich bereits zwei vorgestellt.
Einen weitern interessanten Ansatz verfolgt Red Hat seit einiger Zeit.

Cockpit - Serververwaltung

Mit Cockpit haben sie eine frei über Github entwickelte Linux Steuerzentrale in petto, welche auf neueren Distributionen von Fedora, CentOS oder ArchLinux bereits vorinstalliert oder zumindest als fertiges Installationspaket bereit liegt.
Cockpit setzt auf systemd und ist somit auf dem aktuellen Ubuntu 14.04 LTS nicht unbedingt praktikabel, da aber Ubuntu 16.04 bereits in den Startlöchern steht, sieht es für Cockpit auf Ubuntu Systemen in Zukunft ebenfalls gut aus.

Das Verwaltungstool unterstützt nicht nur verschiedene Systeme, es kann über das zentrale Dashboard auch auf eine ganze heterogene Umgebung zugreifen, um diese zu verwalten. Die Kommunikation zwischen den Maschinen erfolgt über SSH.

cockpit

Schlicht aber effektiv

Die einfache Bedienung des Tools fängt beim Login an, hier werden automatisch hinterlegte Nutzer mit root Rechten für den Login freigeschaltet.
Nicht nur die moderne und aufgeräumte Oberfläche wirkt erfrischend, auch die Auswertungen von Systemperformance ist schlicht und ausreichend.
Die Usability endet bei einem eingebundenen Terminal, welches das Arbeiten auf der Konsole über die Oberfläche ermöglicht.

cockpit-login

Sichere Sache

Anders als Webmin, Ajenti und Co, benötigt Cockpit keinen Apache Server oder ähnliches, welcher ständig in Betrieb sein muss. Der eigene Dienst cockpit-ws startet den Webserver nur, sobald eine Anfrage auf dem Standard Port 9090 ankommt. Sollten keine weiteren Anfragen auf dem Port ankommen, legt er sich nach 90 Sekunden Inaktivität wieder schlafen.

Ist der Webserver aktiv kann er über HTTP und HTTPS erreicht werden, HTTP wird aber automatisch auf HTTPS umgeleitet.  Ein Zertifikat kann unter "/etc/cockpit/ws-certs.d" abgelegt werden. SSL3 und RC4 sind von Haus aus deaktiviert.

Die wichtigsten Cockpit Konsolen Befehle

Prüfen welches Zertifikat verwendet wird

sudo remotectl certificate

Cockpit manuell starten

sudo systemctl enable cockpit.socket
sudo systemctl start cockpit.service
sudo systemctl status cockpit.service

Cockpit Autostart Eintrag erstellen

sudo systemctl enable cockpit.socket

Anderen Port hinterlegen

Temporär

sudo nano /usr/lib/systemd/system/cockpit.socket

oder permanent

sudo cp /lib/systemd/system/cockpit.socket /etc/systemd/system
sudo nano /etc/systemd/system/cockpit.socket

 ListenStream=666

sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket

Cockpit Oberfläche (Standardport)

https://cockpit-server:9090

cockpit_install

Installation unter CentOS

Unter bereits voll unterstützen Systemen, ist die Installation ein Kinderspiel

yum install cockpit
sudo systemctl start cockpit

Den Dienst erlauben

systemctl enable cockpit.socket

Wenn nötig die Firewall öffnen

firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

Das System ist nun über den oben erwähnten Port ereichbar.

cockpit-uebersicht


Installation from Source (Ubuntu)

Eine Installation ist eigentlich erst ab Ubuntu 15.10 sinnvoll, aber dennoch auf 14.04 möglich.

Pakete installieren

sudo apt-get install xsltproc libglib2.0-dev libjson-glib-dev libpolkit-agent-1-dev libkrb5-dev liblvm2-dev libgudev-1.0-dev libssh-dev libpam0g-dev libkeyutils-dev libpcp3-dev libpcp-import1-dev libpcp-pmda3-dev intltool xmlto libxslt1-dev selinux-policy-dev checkpolicy selinux-policy-doc libdbus-1-dev libsystemd-dev glib-networking
wget https://github.com/cockpit-project/cockpit/releases/download/0.102/cockpit-0.102.tar.xz
tar xvf cockpit-0.102.tar.xz
cd /cockpit-0.102
sudo ./configure
make
make install

Mögliche Fehler

Starting Cockpit Web Service...
remotectl[26324]: Generating temporary certificate using: openssl req -x509 -days 36500 -newkey rsa:2048 -keyout /usr/local/etc/cockpit/ws-certs.d/0-self-signed.P7XPFY.tmp -keyform PEM -nodes -o
remotectl[26324]: remotectl: /usr/local/etc/cockpit/ws-certs.d/0-self-signed.cert: TLS support is not available
systemd[1]: cockpit.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Cockpit Web Service.
systemd[1]: cockpit.service: Unit entered failed state.
systemd[1]: cockpit.service: Failed with result 'exit-code'.

Lösung

sudo apt-get install glib-networking

Installation von PPA (Ubuntu)

Via PPA fällt die Installation um einiges leichter, allerdings kommt hier ein relativ altes Installationspaket zum Einsatz (0.38).   

sudo add-apt-repository ppa:jpsutton/cockpit

sudo apt-get update

sudo apt-get install cockpit

cockpit-dashboard

 

Ubuntu 14.04

Um Cockpit unter älteren Systemen zu starten, kann nicht auf systemd zurückgegriffen werden, es startet hier wie folgt.

sudo /usr/sbin/remotectl certificate --ensure --user=root
sudo /usr/libexec/cockpit-ws

Natürlich kann die mit einem eigenen Init Script automatisiert werden, dies bleibt jedem selbst überlassen.

Fazit

Sowohl für einzelne Server, als auch für kleinere Netzwerke, bestehend aus Linux Rechnern, bietet Cockpit eine Möglichkeit Server einfach zu warten und zu überwachen. Durch die leichte Installation und die klare Oberfläche ist sie besonders für Einsteiger geeignet.

Leider gibt es für Ubuntu Systeme bisher keine offiziellen Pakete. Das PPA ist leider nicht auf dem neuesten Stand. Eventuell ändert sich dies mit Ubuntu 16.04 LTS.

Mit dem Landscape Server bietet Canonical bereits eine eigene Ubuntu Server Verwaltung und Performance Analyse an, welche auf bis zu 10 Systemen umsonst angewendet werden kann. (siehe Artikel).

Welches Admin Tool für die eigenen Bedienungen geeignet ist, muss wohl immer individuell entschieden werden.


Quellen

http://www.golem.de/news/cockpit-angesehen-die-einfache-steuerzentrale-fuer-linux-server-1507-115035-3.html
http://cockpit-project.org/guide/latest

 

Neuerungen auf ITrig - HTTPS und Serendipity mit PHP7

HTTPS

Wie angekündigt ist ITrig nun auch via HTTPS erreichbar. Das Zertifikat stammt von Lets Encrypt und sollte somit von jedem Browser erkannt werden.
Diese Zertifikate sind momentan nur 90 Tage gültig und müssen danach erneuert werden.

lets-encrypt

Mit Hilfe eines Script lässt sich die Aktualisierung leicht automatisieren. Es gibt von offizieller Seite eine Hilfestellung für Nginx Server, siehe Nginx Blog.

#!/bin/sh

cd /opt/letsencrypt/
./letsencrypt-auto --config /etc/letsencrypt/configs/my-domain.conf certonly

if [ $? -ne 0 ]
 then
        ERRORLOG=`tail /var/log/letsencrypt/letsencrypt.log`
        echo -e "The Let's Encrypt cert has not been renewed! \n \n" \
                 $ERRORLOG
 else
        nginx -s reload

fi

exit 0

Weitere Varianten für Apache und Co sind bei letsencrypt im Forum zu finden (Link).

php


PHP 7 und Serendipity

Seit Ende letzten Jahres steht PHP7 zur Verfügung. Aus diesem Grund habe ich vor einigen Tagen testweise auf die neuen PHP Version umgestellt. Nach der Umstellung gab es Probleme mit dem Cache_Lite Plugin. Die letzte stabile Version (1.7.16) stammt aus dem Jahr 2014 und hat mit PHP7 so seine Probleme.

Durch das Anpassen der Datei lite.php zu finden unter "/serendpity/bundled-libs/" konnte ich die entstehenden Fehler mit der s9y JavaScript Library beheben.

Fehlermeldung s9y PHP7

<script>
if(typeof errorHandlerCreateDOM == "function") {
var fragment = window.top.errorHandlerCreateDOM("Error redirect: == SERENDIPITY ERROR == <p>Methods with the same name as their class will not be constructors in a future version of PHP; Cache_Lite has a deprecated constructor in /home/www/blog/bundled-libs/Cache/Lite.php on line 29</p>");
document.body.insertBefore(fragment, document.body.childNodes[0]);
}
</script>
<noscript> == SERENDIPITY ERROR == <p>Methods with the same name as their class will not be constructors in a future version of PHP; Cache_Lite has a deprecated constructor in /home/www/blog/bundled-libs/Cache/Lite.php on line 29</p></noscript>
/ Dynamically fetched templates/2k11/admin/serendipity_editor.js.tpl on , called from: include/plugin_api.inc.php:external_plugin /

Lösung

Anpassen der Funktion in der lite.php

function Cache_Lite($options = array(NULL))

zu

function __construct($options = array(NULL))

Danach konnte das s9y Backend mit PHP 7.0.3 ohne Probleme geladen werden. Details sind im s9y Forum zu finden.

[2016] Änderungen, Redesign und Tracker Abgang

Gefangen in der Bude (durch Kälte vor der Tür) habe ich in einer Nacht und Nebel Aktion ein wenig am Blog umgestellt, wurde auch mal Zeit.

Theme

Es gibt ein neues Theme. Die Serendipity Nutzer werden es unter 2k11 kennen. Es ist das Standard Theme für das aktuelle s9y, somit Nichts besonderes. 

Ich erhoffe mir durch das neue Design etwas mehr Performance, sowie eine bessere Responsivität für die mobile Generation. 

Durch die Umstellung haben sich zwar bereits kleine Änderungen ergeben, es werden in Zukunft aber sicherlich noch ein paar Anpassungen folgen.

Logo_ITrig

Neues Logo

Das Logo der Seite wurde etwas angepasst und wirkt hoffentlich etwas moderner als zuvor. Dem grünen Farbton bin ich treu geblieben, auch wenn Besucher im erstem Moment vielleicht denken auf einer Jäger & Sammler Seite gelandet zu sein, ich konnte nicht anders.

Das kleine Menü ist wieder nach oben gewandert, dafür hat sich auf der Seitenleiste ein Werbebanner eingeschlichen. Ich habe mir lange überlegt, ob dies einen "Mehr" Wert hat. Aber ich denke mit Unixstickers einen passenden Partner gefunden zu haben.

Tracker Abgang

Im Zuge der Umstellung habe ich auch den Piwik Tracker deaktiviert. 
Zu sehen wo Benutzer herkommen und wo sie hingehen (natürlich datenschutzkonform), ist zwar interessant, aber im Prinzip unrelevant, besonders da ich kein SEO betreibe. Also Nix wie weg damit.

Ausblick

Auch in diesem Jahr geht es wie gewohnt weiter. Die Artikeldichte wird wie immer variieren.  Hier kann und will ich keine Ankündigungen machen :)

Technisch steht für ITrig als nächstes wohl die Umstellung auf HTTPS in Haus. Wobei Lets Encrypt natürlich verlockend ist, mal schaun was am Ende dabei heraus kommt.

In diesem Sinne, vielen Dank für die vergangenen und kommenden Besuche auf ITrig.

Guenny

Serendipity 2.0 - finale Version verfügbar

Gestern war es  soweit. Die fertige Version 2.0 des Blogsystems Serendipity wurde vorgestellt.

Die offensichtlichsten Änderungen der neuen Version hatte ich bereits im Artikel zur Beta erwähnt. Wer die zahlreichen Neuerungen im Detail nachlesen möchte, der sei auf den offiziellen Blogeintrag der s9y Entwickler verwiesen.

serendipity-2.0

Die Modernisierung der schon etwas betagten Blogengine war durchaus nötig und ich bin gespannt, wie sich die neue Version machen wird. Besser als Wordpress oder Ghost ist s9y aber so oder so ;)

s9y