Smarty-Fehler „Unable to write to cache directory“ nach Servermigration.

Frage veröffentlicht 2298 Aufrufe

Das ist ein Dateiberechtigungsproblem, kein beschädigter Shop. Nach einer Servermigration läuft PHP auf dem neuen Server oft unter einem anderen Benutzer, während die kopierten Dateien noch dem alten Account oder root gehören. PrestaShop kann dann keine kompilierten Smarty-Templates oder Symfony-Cache-Dateien schreiben.

Advanced Parameters > Information mit Serverinfos und Pruefungen beschreibbarer Verzeichnisse
Advanced Parameters > Information - Serverpfade und Status beschreibbarer Verzeichnisse hinter Cache-Schreibfehlern.

Entfernen Sie zuerst veraltete Cache-Dateien und korrigieren Sie dann Eigentümer und Berechtigungen für die beschreibbaren Cache-/Log-Pfade. Ersetzen Sie www-data:www-data durch den Benutzer und die Gruppe, die Ihr PHP-FPM oder Webserver tatsächlich verwendet, zum Beispiel nginx:nginx oder Ihren Hosting-Account-Benutzer.

Bevor Sie chown ausführen, ermitteln Sie, unter welchem Benutzer PHP tatsächlich läuft. Auf einer Shell mit den Shop-Dateien sind nützliche Prüfungen ps -eo user,group,comm | grep -E 'php-fpm|apache|nginx', grep -R '^user\|^group' /etc/php*/fpm/pool.d 2>/dev/null oder eine temporäre phpinfo()-Seite, die über den Browser geprüft wird. Verwenden Sie diesen Benutzer/diese Gruppe, statt www-data zu erraten.

cd /path/to/prestashop

# Remove generated cache contents, not the parent directories
find var/cache/prod -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +
find var/cache/dev -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +

# Fix common PS 1.7/8/9 writable paths
sudo chown -R www-data:www-data var 2>/dev/null || true
find var -type d -exec chmod 775 {} +
find var -type f -exec chmod 664 {} +

# Older PS 1.6-style Smarty paths, if they exist
sudo chown -R www-data:www-data cache/smarty 2>/dev/null || true
find cache/smarty -type d -exec chmod 775 {} + 2>/dev/null
find cache/smarty -type f -exec chmod 664 {} + 2>/dev/null

Vermeiden Sie chmod -R 777. Das kann den Fehler vorübergehend verstecken, macht den Shop aber für jeden auf dem Server beschreibbar. Wenn die Berechtigungen korrekt aussehen und der Fehler bleibt, prüfen Sie Speicherplatz, ausgeschöpfte Inodes, SELinux-/AppArmor-Policies und ob PHP-FPM in einen anderen Pfad gechrootet ist.

Unser PrestaShop-Migrationsguide behandelt den gesamten Umzug, und der Troubleshooting-Guide deckt verwandte White-Screen- und 500-Fehler ab.

War diese Antwort hilfreich?

Noch Fragen?

Sie finden nicht, wonach Sie suchen? Senden Sie uns Ihre Frage und wir melden uns bei Ihnen.

Lade ...
Nach oben