WordPress – mehrsprachige Seiten erstellen

Vor längerem habe ich mich damit befasst, eine meiner WordPress-Installationen mehrsprachig zu machen. Zunächst sollten es nur Deutsch, Englisch und Ungarisch werden, aber später kamen dann doch noch weitere Sprachen dazu. Hier gleich die schlechte Nachricht: von sich aus kann WordPress das leider nicht. Also probierte ich einiges aus:

  1. Versuch: mehrere WordPress-Installationen auf Subdomains (de.seitenname – en.seitenname usw.). Oder eine Multisite-Installation und darin die einzelnen Sprachversionen unterbringen. Das ist zwar eine preiswerte Lösung, aber leider absolut nicht praktikabel, da man jede Änderung in der einen Sprachversion in die jeweils anderen manuell nachziehen muss. Das geht bei kleinen Seiten mit 2 Sprachen vielleicht noch gerade so. Aber Spaß macht es keinen. Es gibt auch Plugins, die das mit der Multisite-Nutzung vereinfachen sollen. Aber die habe ich mir dann aus Frust gar nicht mehr angeschaut. Eine bessere Lösung musste her.
  2. Versuch: Das kostenlose Plugin qTranslate speichert innerhalb des Artikels die unterschiedlichen Sprachversionen. Sehr übersichtlich und einfach, aber leider wird das mit zunehmender Seitengröße recht umständlich und falls ich das Plugin jemals wieder entfernen möchte, muss ich jeden Artikel und jede Seite manuell bearbeiten. Nein danke.
  3. Versuch: WPML – leider ist das Plugin kostenpflichtig. Für meine Zwecke reichte mir aber das kleinste Paket „Multilingual Blog“ für 29 US-Dollar. Schön ist, das man bei jeder Seite und jedem Artikel die einzelnen Sprachversionen bearbeiten kann. Man kann auch den Deutschen Text rüberkopieren und dann direkt übersetzen. So sieht das dann im Backend aus:

wpml

Die Auswahl zwischen den einzelnen Sprachen erfolgt dann entweder über die Sprache die der Browser mitschickt, oder über ein (anpassbares) Sprachauswahl-Widget.

wpml2

 

Plesk 12.5 – Update von mySQL 5.5 auf 5.6 unter Ubuntu 14.04

WordPress empfielt seit neuesten auf ihrer Homepage die Nutzung von PHP 5.6 oder neuer und von mySQL 5.6 oder neuer. Mein verwendetes Ubuntu 14.04 hat nun mit PHP 5.6 kein Problem, da ich hier schon seit längerem auf PHP 7.0 gesetzt habe. Aber mySQL ist nach wie vor nur in der Version 5.5 vorhanden. Da ich als Admin-Tool Plesk 12.5 einsetze, suchte ich nach einer Lösung, wie man das so hinbekommt, das hier auch Plesk mitspielt.

Zum Glück ist das ganze bei Plesk recht gut beschrieben.

Das wichtigste kurz zusammengefasst:

Sicherung des Servers machen (zur Sicherheit)

Datei /etc/mysql/my.cnf wegkopieren (auch nur zur Sicherheit)

Auf die Seite von mySQL gehen und da das aktuelle APT-Repository runterladen (z.B. mit wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb  (Versionsnummer kann abweichen!)

Das dann mit dpkg -i mysql-apt-config-0.7.3-1_all.deb  installieren. Dann kommt ein Auwahlfenster in der man die gewünschte Serverversion wählen kann. Ich habe hier die 5.6 gewählt. Die neuere 5.7 wollte ich nicht testen, da Plesk die noch nicht offiziell unterstützt.

Dann die Paketquellen mit apt-get update  aktualisieren

Mit apt-get install mysql-server  kann man dann den Server aktualisieren. Die Meldung ob die Konfiguration aktualisiert werden soll, muss bestätigt werden.

Zum Abschluß geht man in Plesk noch auf den Punkt „Tools & Einstellungen / Serverkomponenten“ und klickt hier auf „Aktualisieren“. Dann sollte es das gewesen sein. Dachte ich zumindest. Aber ein Blick in das mySQL-Log brachte unzählige Fehlermeldungen zu Tage. Ursache war, das die Datenstruktur noch nicht umgestellt war. Der Befehl mysql_upgrade war dann die Lösung – der sollte nach einem Update des mySQL-Servers immer ausgeführt werden.

 

 

WordPress – Datum der letzten Änderung anzeigen

Immer wieder habe ich den Wunsch, in meinen WordPress-Seiten – vor allem denen die mehr Homepage als Blog sind – das Datum der letzten Änderung einzublenden. Leider ist eine solche Funktion in WordPress nicht vorgesehen. Ich habe nun ein kleines Plugin geschrieben, das genau das erledigt.

Hierzu schreibt man dann einfach twlastchange in eckigen Klammern an der gewünschten Stelle in den Text, und schon wird das Änderungsdatum angezeigt. Als Änderungsdatum verstehe ich das Datum der letzten Änderung einer Seite oder eines Beitrags – je nachdem was neuer ist.

In den meisten Themes gehen Shortcodes in der Sidebar nicht. Hier empfehle ich dann das Plugin „Shortcode Widget“ zu verwenden. Damit kann man Text-Widgets erstellen, in denen die Shortcodes funktionieren.

Hier das Plugin zum Download.

Wenn alles richtig gemacht wurde, sollte es so aussehen.

twlastchange

Linux – verwendete Shell herausfinden

Gestern habe ich hier im Blog über das Sicherungsskript für mySQL geschrieben. Beim ersten ausprobieren hat es super funktioniert, wenn ich es manuell gestartet habe. Wurde es dagegen über cron aufgerufen, stand das hier unzählige male im Log:

mysqlbackup.sh: 4: /root/Skripte/mysqlbackup.sh: [[: not found

Was war passiert? Google spukte recht schnell aus, das es sich hierbei um ein Problem mit Bash handelt. Nicht ganz richtig, aber es brachte mich auf die richtige Spur. Welche Shell verwende ich eigentlich unter Linux?

Herausfinden kann man das mit

echo $0

Will man nun einmalig eine andere Shell nutzen, so kann man z.B. mit /bin/sh  die sh starten und mit exit wieder beenden. In der Datei /etc/shells findet man alle auf dem System aktuell installierten Shells.

Schnell fand ich raus, das Bash meine Login-Shell war, in der mein Skript einwandfrei funktionierte, aber cron auf sh zurückgriff, was scheinbar nicht funktionierte. Die Lösung hierfür ist aber auch ganz einfach. Einfach die erste Zeile des Skriptes hiermit beginnen lassen:

#!/bin/bash

Und schon ist es egal, was die Standard-Shell für cron ist – es wird in diesem Skript einfach Bash verwendet.

Plesk – Regelmäßiger Dump der mySQL-Datenbanken in ein Verzeichnis

Klar mache ich Backups meines Servers. In Plesk geht das ja mit dem Backup-Manager schön, bequem und zuverlässig. Blöd ist es nur, wenn man z.B. auf eine einzelne mySQL-Datenbank zugreifen muss. Dann hat man erstmal eine riesige Backup-Datei vor sich, in der man die raussuchen darf. Ich brauchte also einen bequemeneren Weg. Lieber wäre mir, wenn einfach regelmäßig in ein Verzeichnis ein Dump aller Datenbanken gezogen werden würde. Von da kann ich das dann regelmäßig archivieren und habe somit genau das erreicht, was ich will.

Schnell und einfach erreicht man das mit diesem Skript, das man auf Wunsch auch per cron regelmäßig ausführen lassen kann – ok – nur dann macht es Sinn. Die Backup-Dateien werden in /root/backup/mysql angelegt und sind mit bzip2 komprimiert.

#!/bin/bash
for db in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e 'show databases' -s --skip-column-names); do
if [[ "$db" != *schema* && "$db" != *phpmyadmin* && "$db" != "event" && "$db" != "psa" && "$db" != "mysql" ]]; then
mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` $db | bzip2 -c > /root/backup/mysql/$db.sql.bz2
fi
done

Plesk – nächtliche Infomail vom Kaspersky Antivirus unterbinden

Wer auf seinem Plesk 12.5-Server Kaspersky Antivirus für E-Mails einsetzt, der bekommt jede Nacht eine Mail an die Admin-Adresse zugeschickt, in der das erfolgreiche Update der Virensignaturen „berichtet“ wird. Diese Mails nerven und sind überflüssig. In der Knowledgebase von Odin ist es nur für Dr. Web beschrieben, wie man das abstellen kann.

So sieht eine solche Mail aus.

kav-update1

Um diese Mails nicht mehr zu erhalten, editiert man einfach die Datei /etc/cron.daily/kav8update in dem man an der rot markierten Stelle den Text >> /var/log/kav-update.log 2>&1  einfügt. Damit wird dann die Ausgabe des Cronjobs nicht mehr per Mail verschickt, sondern in die Datei /var/log/kav-update.log geschrieben.

Die komplette Datei muss dann so aussehen:

kav-update2

Virenverdächtige Dateien mit Onlinediensten analysieren

Immer wieder bekomme ich per Mail Dateien zugeschickt, von denen ich nicht sicher bin, ob es Viren sind. Diese scanne ich dann immer mit Online-Virenscannern, bei denen man eine einzelne Datei hochladen kann und dann bekommt man das Ergebnis angezeigt. Teilweise werden diese dann auch gleich mit mehreren verschiedenen Scannern überprüft. Folgende Dienste gibt es hierfür:

Virustotalwww.virustotal.com/de – scannt eine Datei mit 48 verschiedenen Scannern. Das ganze gehört zu Google.

Metadefenderwww.metadefender.com – 42 verschiedene Scanner, Anbieter aus den USA.

Virscan.orgwww.virscan.org – 39 verschiedene Scanner. Vermutlich aus China?

Jottis Scanvirusscan.jotti.org – 20 Scanner, den Anbieter gibts schon sehr lange.

Garyshoodwww.garyshood.com – nur 4 Scanner, aber auch brauchbar.

COSS v0.1www.gietl.com/test-clamav/ – basiert auf ClamAV – nicht unbedingt zuverlässig

Dr. Web Virusscanwww.drweb-online.com – Scanner von Dr. Web. Super gemacht und schnell.

Fortiguardwww.fortiguard.com – Scanner von Fortinet

IOBit Cloudcloud.iobit.com – Kann Dateien analysieren. Bei mir brachte es bisher aber nur Fehlermeldungen.

Wer weitere Scanner kennt: bitte in die Kommentare schreiben! Was den Sinn dieser Scanner angeht: ich habe am 14.06.2016 eine verdächtige Datei bekommen und am gleichen Tag bei Jottis Scan hochgeladen. Es wurde hier von einem Scanner erkannt:

virenverdacht1

Jetzt macht es aber gerade bei neuen Schädlingen Sinn, etwas zu warten, und die Datei ein oder zwei Tage später nochmal hochzuladen. Da kann das Ergebnis dann schon anders aussehen – hier die gleiche Datei einen Tag danach:

virusscan2

Fehler- und Hinweismeldungen generieren

Für einen Ausdruck benötigte ich eine Windows-Fehlermeldung bzw. ein Fenster, das so ähnlich aussieht wie eine Windows-Fehlermeldung. In Google fand ich einige Infos, wie man sowas mit VBS-Script zusammenbauen kann. Problem 1 war aber, das ich gerade nur einen Linux-Rechner zur Hand hatte und Problem 2, das man damit die Schaltflächen nicht individuell betiteln konnte.

Nach einiger Suche fand ich dann den Atom Smasher’s Error Message Generator. Mit diesem Online-Dienst kann man schnell und einfach eine Meldung zusammenklicken und dann als PNG-Grafikdatei herunterladen.

Einfach mal ausprobieren 😉

win-error-message

Reale Mobilfunkabdeckung mit FLOQ-Karten

Wie man die Mobilfunk-Netzabdeckung in den offiziellen Landkarten der Mobilfunkprovider anzeigen kann, habe ich hier beschrieben. In der Realität liegen aber echte und theoretische Werte aus der Karte oft weit auseinander.

Seit kurzem gibt es nun die FLOQ-Karte. Hier werden die tatsächlich von Anwendern gemessenen Daten der FLOQ Test App und der Chip Netztest-App zusammengeworfen und auf einer Karte angezeigt.

Schade ist nur, da für ländliche Gebiete hier kaum Daten vorliegen. Der Screenshot unten (Quelle: www.floq.net) zeigt die Umgebung meines Wohnortes. Trotzdem macht es Sinn, sich FLOQ mal anzusehen.

floq-karte

Plesk Webmail immer über HTTPS

Plesk bietet mit Roundcube bzw. Horde zwei schöne Webmail-Clients an, mit denen man schnell und einfach von überall in der Welt auf seine E-Mails zugreifen kann, die man auf seinem Server hat. Theoretisch ganz nett, aber was mich daran immer stört ist, das wenn man webmail.domainname.de aufruft, nicht das HTTPS, sondern nur das HTTP-Protokoll gesprochen wird. Alle Anmeldedaten und Mailinhalte gehen also verschlüsselt über das Netz.

Das ist nicht sinnvoll, aber zum Glück sehr einfach zu beheben.

Je nachdem ob man Horde oder Roundcube verwendet, geht man einfach in den Ordner /usr/share/psa-horde oder /usr/share/psa-roundcube und legt darin eine Datei .htaccess an mit folgendem Inhalt:

RewriteEngine On
RewriteCond %{SERVER_PORT}   !^443$
RewriteRule  (.*)  https://%{HTTP_HOST}/$1   [L]

 

Schade ist nun nur noch, das hier immer das Standard-Zertifikat von Plesk verwendet wird, d.h. man kann z.B. kein passendes Let’s encrypt-Zertifikat an der Stelle einbauen. Mal sehen – wenn ich mal viel Zeit habe werde ich das vielleicht auch noch irgendwie automatisieren…