Probleme mit dem Upload von SVG-Dateien unter WordPress

Medien können über die Medienverwaltung unter WordPress hochgeladen werden. Dabei findet eine Überprüfung statt, ob ein bestimmter Dateityp erlaubt ist. Schlägt diese Überprüfung fehl, so wird dies mit einer entsprechenden Fehlermeldung quittiert.

Der Upload ist fehlgeschlagen

Die entsprechende Meldung:

Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.

bzw. das Verhalten, welches zu dieser Meldung führt, kann dabei über einen Parameter in der Datei wp-config.php deaktiviert werden:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

In der Theorie werden hiermit alle Uploads in WordPress zugelassen. Dies sollte natürlich nur getan werden, wenn dies explizit gewünscht ist. Daneben existieren Plugins, um nur bestimmte Dateien zum Upload zuzulassen.

In meinem Fall konnte ich eine spezielle SVG-Datei, trotz aktivierter ALLOW_UNFILTERED_UPLOADS-Option, allerdings immer noch nicht hochladen. Das Problem ist hier, das bei SVG-Dateien Sicherheitsbedenken bestehen, da es sich um XML-Dateien handelt; genaueres kann im entsprechenden Ticket nachgelesen werden.

In meinem Fall half in es der SVG-Datei folgenden Header:

<?xml version="1.0" encoding="utf-8"?>

an den Anfang der Datei zu setzen; anschließend konnte die entsprechende SVG-Datei hochgeladen und verarbeitet werden.

Same-Origin-Policy im Firefox für lokale Dateien deaktivieren

Der Zugriff auf lokale Dateien im Firefox ist aufgrund der Same-Origin-Policy im Normalfall nicht möglich. So kann z.B. eine lokale Datei nicht per AJAX nachgeladen werden:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf file:///path/to/file/test.json. (Grund: CORS-Anfrage war nicht http).

Das Feature an sich ist sinnvoll, doch manchmal soll dieses für Entwicklerzwecke abgeschaltet werden. Dies kann über den Aufruf von about:config erreicht werden.

about:config wird aufgerufen

In den Einstellungen findet sich das Attribut:

privacy.file_unique_origin

Wird dieser Wert auf false gesetzt können die Dateien lokal unter Aufhebung der Same-Origin-Policy geladen werden.

Elasticsearch unter Ubuntu installieren

Elasticsearch ist eine Suchmaschine, welche in vielen Lösungen zum Einsatz kommt. Seit der Lizenzänderung vor ein paar Wochen ist Elasticsearch keine freie Software mehr, wird aber trotzdem in vielen Lösungen genutzt, welche noch nicht auf eventuelle freie Forks ausgewichen sind. Soll Elasticsearch unter Ubuntu installiert werden, so kann dies über den Paketmanager installiert werden. Im ersten Schritt muss das Paket apt-transport-https nachinstalliert werden:

apt install apt-transport-https

Anschließend kann die Fremdpaketquelle hinzugefügt werden:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Diese wird benötigt, da Elasticsearch nicht in den offiziellen Paketquellen von Ubuntu enthalten ist. Damit die Installation über das Paket funktioniert, sollte der entsprechende Schlüssel hinzugefügt werden:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Sollte beim Aufruf des Kommandos die Meldung:

E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation

erscheinen, muss das entsprechende Paket nachinstalliert werden:

apt install gnupg2

Anschließend kann Elasticsearch installiert werden:

apt-get update && sudo apt-get install elasticsearch

Standardmäßig ist Elasticsearch nach der Installation nur über den Localhost am Port 9200 erreichbar. Um dies zu ändern, muss die Konfiguration angepasst werden. Diese befindet sich im Ordner /etc/elasticsearch/ – sollen hier Änderungen vorgenommen werden, sollte die entsprechende Dokumentation zurate gezogen werden.

Probleme bei der Installation von Homebrew unter macOS

Nach der Installation von Homebrew unter macOS Big Sur kann es unter Umständen (meist bei der M1/ARM Variante) passieren, das der Nutzer folgende Meldung erhält:

Warning: /opt/homebrew/bin is not in your PATH.

Gelöst werden kann dies in dem die Konfiguration für die Z shell angepasst wird. Dazu wird im Terminal eine neue Datei erstellt:

nano ~/.zshrc

In dieser Datei wird der Pfad der Homebrew-Installation der PATH-Variable hinzugefügt:

export PATH=/opt/homebrew/bin:$PATH

Beim nächsten Start der Shell, kann Homebrew dann problemlos genutzt werden.