Simply Static auf der Synology: „Unable to access destination directory“ – die Lösung

Drei Exporte, jeder rund 30 Minuten, und jedes Mal kurz vor dem Ziel dieselbe Meldung: Simply Static kann das Zielverzeichnis nicht erreichen. Ordner angelegt, Rechte vergeben, anderen Ordner probiert – nichts half. Die Ursache war am Ende keine Rechte-Frage, sondern eine Frage der Schreibweise des Pfads. Hier erkläre ich, was dahintersteckt und wie du es in fünf Minuten löst, ohne einen einzigen Export zu verschwenden.
Kurz gesagt: Trage in Simply Static den Pfad nicht mit
/volume1/…ein, sondern mit/var/services/…. Bei mir funktionierte zum Beispiel:/var/services/web_packages/wordpress/wp-content/uploads/hildvision-static/
Die Fehlermeldung
Ich nutze WordPress auf meiner Synology nur als Redaktionssystem und lasse mit dem Plugin Simply Static eine statische Kopie erzeugen. Als Ziel hatte ich unter Simply Static → Deployment die Methode „Lokales Verzeichnis“ gewählt. Der Export lief durch, alle Seiten wurden abgerufen – und dann kam im Aktivitätsprotokoll das hier:
Unable to access destination directory: /volume1/web_packages/wordpress/public_static/
Ein Fehler ist aufgetreten: Das konfigurierte lokale Zielverzeichnis konnte nicht erstellt werden.
Gemein daran: Die Meldung kommt erst ganz am Ende. Jeder Versuch kostet also die komplette Exportzeit.
Was ich probiert habe – und warum es nicht half
- Eigenen Ordner als Ziel. Ein freigegebener Ordner
/volume1/html-export/– Fehler. - Schreibrechte für den Benutzer „http“. In der File Station unter Eigenschaften → Berechtigung ergänzt – Fehler.
- Ordner im WordPress-Verzeichnis.
/volume1/web_packages/wordpress/public_static/, vorher von Hand angelegt – Fehler. - Der Uploads-Ordner. Dort schreibt WordPress nachweislich jeden Tag hinein – trotzdem Fehler.
Spätestens beim Uploads-Ordner war klar: An den Rechten kann es nicht liegen.
Die eigentliche Ursache: open_basedir
PHP auf der Synology darf aus Sicherheitsgründen nur in bestimmten Ordnern arbeiten. Diese Liste heißt open_basedir. Bei mir stand dort:
/var/services/web_packages/wordpress:/tmp:/var/services/tmp
Auf der Synology ist /var/services/web_packages nur ein anderer Name für /volume1/web_packages – physisch derselbe Ordner. PHP selbst kommt mit beiden Schreibweisen klar.
Simply Static aber nicht. Bevor es Dateien kopiert, prüft es, ob dein Pfad als Text mit einem der erlaubten Pfade beginnt. /volume1/… beginnt nicht mit /var/services/… – also bricht Simply Static ab, ohne überhaupt nachzusehen, ob der Ordner existiert oder beschreibbar ist. Deshalb half keine einzige Rechte-Änderung.
So findest du heraus, welche Pfade bei dir erlaubt sind
Wo genau die Synology open_basedir setzt, ist gar nicht so leicht zu finden: Bei mir stand im PHP-Profil der Web Station „None“, die Einschränkung kam vom WordPress-Paket selbst. Am schnellsten fragst du PHP direkt. Dafür reicht eine kleine Prüfdatei.
Schritt 1: Prüfdatei anlegen
Lege auf deinem Mac eine Textdatei pfadtest.php mit diesem Inhalt an:
<?php
header('Content-Type: text/plain; charset=utf-8');
echo "open_basedir: " . var_export(ini_get('open_basedir'), true) . "\n";
echo "Dieser Ordner: " . __DIR__ . "\n";
echo "Benutzer: " . (function_exists('posix_getpwuid') ? posix_getpwuid(posix_geteuid())['name'] : get_current_user()) . "\n";
Schritt 2: Hochladen und aufrufen
Lade die Datei mit der File Station in den Ordner web_packages/wordpress hoch und öffne sie im Browser, zum Beispiel unter http://IP-deiner-Synology/wordpress/pfadtest.php. Du siehst dann drei Zeilen – die erste ist die wichtige.
Schritt 3: Datei wieder löschen
Die Datei verrät Details über deinen Server. Lösche sie sofort wieder, wenn du die Angaben notiert hast.
Die Lösung
Nimm einen Ordner, in den WordPress sicher schreiben darf, und schreibe ihn mit dem Anfang aus der open_basedir-Zeile. Am zuverlässigsten ist ein Unterordner im Uploads-Verzeichnis:
/var/services/web_packages/wordpress/wp-content/uploads/hildvision-static/
- In WordPress Simply Static → Deployment öffnen.
- Methode „Lokales Verzeichnis“ wählen und den Pfad oben eintragen (den Ordnernamen am Ende darfst du frei wählen).
- Den Unterordner nicht selbst anlegen – Simply Static legt ihn an, dann gehört er auch dem richtigen Benutzer.
- Einstellungen speichern und im Aktivitätsprotokoll auf Push klicken.
Bei mir endete das Protokoll danach endlich mit „1997 von 1997 Dateien übertragen“ und „Fertig!“.
Worauf du außerdem achten solltest
- WordPress läuft nicht als „http“. Auf meiner Synology lief PHP für das WordPress-Paket als eigener Benutzer „WordPress“. Rechte für „http“ zu vergeben, bringt dann nichts.
- „Homeverzeichnis kopieren“ tut scheinbar nichts. Der Knopf kopiert in die Zwischenablage, und das erlaubt der Browser nur über https. Den Pfad findest du stattdessen unter Werkzeuge → Website-Zustand → Info → Verzeichnisse und Größen.
- Die Diagnose zeigt dieses Problem nicht. Alles war grün bis auf WP-Cron. Verlass dich also nicht darauf.
- „ZIP-Archiv“ und „Relativer Pfad“ prüfen. Steht die Deployment-Methode auf ZIP, kommt eine andere Fehlermeldung zum temporären Verzeichnis. Für eine echte Website gehören die URLs unter Allgemein auf „Absolute URLs“ mit deiner Domain.
- Vor dem langen Export testen. Erst den Pfad mit der Prüfdatei klären, dann exportieren. Das spart dir jeweils eine halbe Stunde.
Fazit
Wenn Simply Static auf der Synology „Unable to access destination directory“ meldet, liegt es meist nicht an fehlenden Rechten. Der Pfad muss so geschrieben sein, wie PHP ihn erlaubt – auf der Synology also mit /var/services/… statt /volume1/…. Mich hat das einen Abend gekostet. Dich hoffentlich nur fünf Minuten.
Du hängst bei deinem eigenen Setup mit Synology und WordPress fest? Schreib mir – genau bei solchen Fragen helfe ich gern weiter.