Migrating ownCloud from sqlite to MySQL and dropping ownCloud alltogether

No backup, not pity. You need to know what you are doing and don’t blame me for your broken ownCloud.

Recently, I was upgrading my ownCloud installation from 9.1.x to 10.0.x, Cause I like to keep my stuff up to date. This was fairly easy through the admin interface. After the update, there where some recommendations about using a „memcache.filelock“. The Redis-setup was quite easy too. The 2nd recommendation was about using MySQL instead of sqlite. For my very small installation, sqlite should have been quite enough, but the ownCloud console „occ“ offers an automated conversion script. So I thought to myself: Why not?

Trying it automatically

This didn’t work for me!

You simply have to create a database for ownCloud and run this command. You will be asked for the password of the database connection.

sudo -u www-data php occ db:convert-type --clear-schema --all-apps -- mysql owncloud localhost owncloud

The script also updates the database-type in the Configuration file „config/config.php“. But there are bugs in the conversion script documented at github, namely #28223 and #27075, that hit me too. So I decided to convert the database manually. There are several tools to help us with this.

Doing it manually

I started with converting the database to match the xml database scheme in  „db_structure.xml“ using the „occ“-command. Putting ownCloud into maintenance mode should be a good idea too.

sudo -u www-data php occ maintenance:singleuser --on
sudo -u www-data php occ db:generate-change-script |sqlite3 data/owncloud.db

Now you need to dump the sqlite database and load it into MySQL. Unfortunately the sqlite dump is not compatible with MySQL, but it can be converted. You can find a script called „sqlite3-to-mysql.py“ on several locations on the internet. Good old „sed“-command might have worked too. The script only removes and replaces some lines. It also needed some extra replacement rules to it.

...
 "COLLATE BINARY": "COLLATE utf8_bin",
 "CLOB": "LONGTEXT",
 ", lock ": ",`lock` ",
...
sqlite3 data/owncloud.db .dump >dump.sql
cat dump.sql|./sqlite3-to-mysql.py|mysql owncloud

Afterwards there where still some differences between „db_structure.xml“. So I ran the change-script-generator again.

sudo -u www-data php occ db:generate-change-script|mysql owncloud
sudo -u www-data php occ db:convert-mysql-charset

This removes „execution_duration“ column from „oc_jobs“ table. This is because of an error in „db_structure.xml“. So I added „execution_duration“ back again afterwards. This could be the cause for #28223.

Dropping ownCloud in Favor of NextCloud

After thinking about the Bugs I encountered, I decided to change from ownCloud to NextCloud. On the NextCloud manual, the procedure is just like a manual update. Everything worked fine, without any problems. ownClound 10.0.7 -> NextCloud 12.

Syntax-Highlighting in Beiträgen

Nach dem Schreiben des Beitrages über chroot dachte ich mir, dass ein Syntax-Highlighting doch ganz nett wäre.

Also kurzerhand das Plugin „WP Code Highlight.js“ installiert und den Artikel noch einmal etwas überarbeitet. Das Plugin verwendet https://highlightjs.org/ und bindet es einfach konfigurierbar in WordPress ein.

chroot Jail für SFTP und SSH mit minimaler Shell

chroot Jail für SFTP und SSH mit minimaler Shell

Einleitung

Möchte man Anwendern Webspace bereitstellen, muss man diesen Anwendern irgendwie ermöglichen dort Dateien hoch zu laden. Gleichzeitig sollten die Anwendungen die dann von dem Webserver ausgeführt werden auch nur Zugriff auf diese Dateien haben. Jeder Benutzerkontext sollte gegen die anderen abgeschirmt werden. Manchmal wünscht sich dann jemand doch noch einen Shell-Zugang. chroot Jail für SFTP und SSH mit minimaler Shell weiterlesen

Miniserie ASCENSION auf Netflix

600 Menschen auf einem Generationen Raumschiff in richtig einer Fremden Welt.

Die miniserie Ascension die man auf Netflix schauen kann ist richtig gut gelungen. Es bleibt bis zum Ende spannend. Intrigen, ein Mord, etwas Horror und Mystery sind auch mit dabei. Leider gibt es nur sechs Folgen. Diese sind dann jedoch mit einem recht abgerundeten Ende versehen. Man bekommt zumindest den Hintergrund des ganzen Projektes mitgeteilt. Für Sci-fi Fans auf jeden Fall sehenswert.

Achtung Spoiler: Ab hier nur weiterlesen, wenn ihr die Serie gesehen habt.

Miniserie ASCENSION auf Netflix weiterlesen

Schneeglöckchen erfrohren?

Man liest zwar hier und da, dass Frühblüher wie Schneeglöckchen nicht erfrieren können, weil sie ihren eigenen Frostschutz produzieren. Die anhaltenden Minusgrade deutlich unter -10°C der letzten Tage waren wohl für diese hier doch zu viel. Sie lassen ihre köpfe hängen.

Bei den Narzissen sieht es da schon besser aus. Vielleicht hatten sie auch einfach ein besseres Timing mit dem Frost.

Update

Ein paar Tage Später haben sie sich dann doch wieder aufgerichtet. Ist schon interessant. Habe ich so vorher noch nicht gesehen.

Auch die Narzissen sind jetzt schon ein Bisschen weiter.

Lightbox

Ein weiteres Plugin ist heute Teil meiner WordPress Umgebung geworden. Nachdem ich Bilder in einen Beitrag eingefügt habe, dachte ich mir, dass es schön wäre, wenn man die auch in groß öffnen könnte, ohne dass man die Seite mit Klick auf das Bild verlässt. Es sollte nichts besonderes sein, eine einfache Lightbox genügt. Unter einer Lightbox versteht man das Abdunkeln der Seite und die Darstellung ges Bildes im Grußformat.

Das Plugin „Easy FancyBox“ erfüllt genau diesen Zweck.

Registrierungs Spam

Update: Nachdem das verwendete Plugin mich im Backend nervte habe ich jetzt auf das „Math Captcha“-Plugin umgestellt. Also kein Problem mehr mit Google und Datenschutz.

Eigentlich hat WordPress ja einen ganz netten Mechanismus zum Registrieren von Benutzern. – Man trägt seine E-Mail ein und Bekommt einen Link zugeschickt, den man zum Bestätigen anklicken muss. Danach vergibt man sein Passwort, beziehungsweise setzt es zurück. Der Admin wird darüber jeweils per E-Mail informiert.

Leider gibt es, warum auch immer Bots, die dies automatisch tun. Also ab ins Backend und den schwachsinnigen Benutzer gelöscht. Da ich das jetzt nicht ständig machen möchte, muss Abhilfe her. Dafür ist meine Toleranzschwelle ziemlich gering. Vielleicht bin ich auch etwas verwöhnt, weil ich mit policyd-weight so gut wie keine Spam-E-Mails bekommen (2-3 pro Jahr).
Warum werden eigentlich die unvollständigen Registrierungen nicht nach einiger Zeit gelöscht? Kann man damit nicht auch Leute nerven, wenn man automatisiert auf dutzenden WortPress Registrierungen die E-Mail Adresse der zu nervenden Person einträgt? Durch eine einfache Einstellung bekommt man das wohl leider nicht gelöst.

Also die Registrierung deaktivieren?

Da gab es doch etwas, was sich CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) nennt. In den Plugins findet man auch gleich was dazu. Dabei kommt reCAPTCHA von Google zum Einsatz.

Und der Datenschutz?

Wird dabei nicht was an Google übermittelt? – Naja, diesen Tot muss man dann eben sterben, wenn man hier einen Kommentar hinterlassen möchte.
Es gibt zwar auch andere Plugins, nur hatten die mir zu wenige Nutzer. Es sollte ja auch getestet sein und immer mir der neuesten Version von WordPress funktionieren, damit man immer schön unproblematisch die Updates fahren kann. Und die Seite wartungsarm bleibt.
Ich könnte natürlich auch ein eigenes Plugin schreiben. Dafür muss ich mich erst noch etwas mehr mit WordPress befassen.

Nicht das sich jemals ein echter Mensch hier registrieren würde.
LOL ?