Archive

Archive for the ‘Linux’ Category

Uberspace, Dokuwiki und PHP 5.x

June 5th, 2018 No comments

Heute war es mal wieder an der Zeit, meine Dokuwiki bei Uberspace zu aktualisieren.

Nach dem Update lieferte die Installation jedoch einen Fehlercode 500, Internal Server Error.

Um der Sache auf den Grund zu gehen habe ich PHP im Terminal ausgeführt:

[foobar@perseus wiki]$ php doku.php
PHP Parse error:  syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/virtual/foobar/html/wiki/inc/ActionRouter.php on line 95

Eine Google-Suche ergab, dass die neue Dokuwiki Version mindestens PHP 5.6 braucht.
Und hier war der Knackpunkt:

[foobar@perseus wiki]$ php -v
PHP 5.4.4 (cli) (built: Jul 14 2012 12:58:04)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Uberspace hat einen sehr schönen Mechanismus, die PHP-Version einzustellen. Dazu gibt es die Konfigurationsdatei ~/etc/phpversion. In dieser trägt man die gewünschte Version ein und startet anschließend die PHP-Prozesse neu mit

[foobar@perseus ~]$ killall php-cgi

Und schon funktioniert auch das neue Dokuwiki.

Categories: Linux Tags:

Synology DSM 5 und Lets Encrypt

March 18th, 2018 No comments

Seit einigen Tagen bietet Let’s Encrypt nun Wildcard-Zertifikate an. Diese Gelegenheit habe ich genutzt, mein nicht mehr ganz neues Synology NAS mit einem solchen auszustatten.

Natürlich braucht es dafür kein Wildcard-Zertifikat, aber dieses verhindert, dass der konkrete Hostname in den Certificate Transparency Logs (wie bspw. bei crt.sh) auftaucht.

Da Synology seine eigenen Pfade und Utilities benutzt um Zertifikate zu speichern und zu verwalten ist die Konfiguration nicht ganz offensichtlich.

Zertifikate und Schlüssel befinden sich unter /usr/syno/etc/ssl/.
Der Private Key gehört in /usr/syno/etc/ssl/ssl.key/server.key.
Das Zertifikat selbst gehört in /usr/syno/etc/ssl/ssl.crt/server.crt.
Das Intermediate-Zertifikat von Let’s Encrypt gehört in /usr/syno/etc/ssl/ssl.intercrt/server-ca.crt.
Das DST Root Zertifikat (hier) gehört in /usr/syno/etc/ssl/ssl.crt/ca.crt.

Sobald diese Dateien an Ort und Stelle sind wird der Webserver über folgendes Kommando neu gestartet:

synoservicectl --reload httpd-sys
synoservicectl --reload httpd-user

Fertig!

Categories: Linux Tags:

Ubuntu auf dem alten MacBook Pro

July 30th, 2017 No comments

Auf meinem Schreibtisch stand seit langem ein altes MacBook Pro (Model 2,2). Obwohl es bereits eine Intel-CPU hat wird es von keinem halbwegs aktuellen MacOS mehr unterstützt. Leider gilt das gleiche für Browser wie Chrome und Firefox, die auf dem alten MacOS ebenfalls keine Updates mehr bekommen.

Was also tun? Zum Elektroschrott? Dafür ist das Gerät eigentlich zu schade. Windows? Das kommt mir nicht ins Haus!

Bleibt also nur eins: Linux. Bevor auch mein Arbeitslaptop ein Mac wurde habe ich auf Dell Laptops Ubuntu benutzt, das lief eigentlich immer sehr schön. Also einfach Ubuntu installieren, dachte ich mir. Das war aber deutlich schwieriger als ich erwartet hätte.

Im ersten Schritt habe ich das Ubuntu 16.04 LTS ISO von Ubuntu.com heruntergeladen und auf eine DVD gebrannt. So weit, so einfach. Von dieser DVD wollte das MacBook Pro aber nicht booten. Eine kurze Google-Suche ergab, das DVD-Leseprobleme bei MacBooks leider nicht ungewöhnlich sind.

Als nächstes erstellte ich also mit Unetbootin einen USB-Stick. Unetbootin wies mich erst nach dem Erstellen darauf hin, dass dieser Stick von Macs nicht unterstützt werden würde. Den Versuch hätte ich mir also schenken können.

Ich wollte schon fast aufgeben, als mich eine letzte Google-Suche zu Matt Gadient’s Artikel brachte:

Linux DVD images and HowTo for 32-bit EFI Macs

Mit seinem modifzierten ISO konnte ich sowohl Ubuntu von der DVD starten als auch installieren.

Categories: Linux, Mac Tags:

Python lernen: 2 oder 3?

June 9th, 2017 No comments

Wer, wie ich, neu in die Python-Welt einsteigt steht vor der Frage “Wo anfangen?”.
Mit Python 2.7 und Python 3.6 gibt es zwei Versionen die Inkompatibilitäten aufweisen.

Während vor einigen Jahren die Entscheidung noch nicht ganz so einfach war ist die Antwort heute klar: Python 3 ist angesagt.

Die Gründe sind einfach:
– Support für Python 2 endet 2020
– 95% der beliebtesten Module unterstützen Python 3
– Einige Module (wie bspw. Django) werden den Support für Python 2 einstellen
– Python 3 ist die Zukunft

Categories: Linux, Mac Tags:

JSON und Perl, aber schnell

May 22nd, 2017 No comments

Mit dem JSON-Modul kann man JSON in Perl sehr bequem verarbeiten. Die Sache hat nur einen Haken, es ist langsam.

Dazu muss man wissen, dass es für JSON zwei Backend-Module gibt: perl-JSON-PP und perl-JSON-XS. perl-JSON-PP ist “pure Perl”, während perl-JSON-XS in C geschrieben ist.

Welches Backend man benutzt lässt sich recht leicht mit folgendem Code überprüfen:


#!/usr/bin/perl

use strict;
use warnings;
use JSON;

my $json = new JSON;
print "Backend: ".scalar($json->backend)."\n";
exit;

Durch den Wechsel des Backends ist die Laufzeit meines Scripts, das etwas über 2000 JSON-Dateien durcharbeitet von 33 Minuten auf 4 Minuten(!) gefallen.
JSON::XS ist in meinem konkreten Anwendungsfall als um den Faktor 8 schneller.

Categories: Linux Tags: