1. Home
  2. Wie definiere ich ein tmp-Verzeichnis im User-Kontext?

Wie definiere ich ein tmp-Verzeichnis im User-Kontext?

In diesem Artikel wird erläutert, wie Sie via php.ini ein tmp-Verzeichnis im User-Kontext definieren können.

Hinweis

Das tmp-Verzeichnis in den User-Kontext zu verlegen, löst ein Problem
das für Shared-Hosting-Tarife bei einem Update auf Shopware 6.5 auftreten kann:

  • Im Zuge des Update-Prozesses wird ein Ordner im tmp-Verzeichnis angelegt, der nach Fertigstellung nicht sofort entfernt wird.
  • Da das Default tmp-Verzeichnis ("/home/tmp/") zwischen Usern geshared wird, gibt es bei gleichnahmigen Dateien eine Blockade.
  • Charakteristisch dafür ist die Fehlermeldug:
    Fatal error: Uncaught RuntimeException: Unable to write in the "cache" directory (/tmp/shopware-recoverya9f7aec21c/).

Nach der Durchführung des Updates kann die Anpassung wieder rückgängig gemacht werden.

Vorbereitung

Wie Sie sich per SSH mit Ihrem Webspace verbinden, erfahren Sie in dem folgenden Artikel: Wie verbinde ich mich per SSH mit meinem Webspace?

Legen Sie in Ihrem Homverzeichnis ein tmp-Verzeichnis an:

mkdir ~/tmp

Anpassung in der php.ini

Folgender Eintrag muss in der entsprechenden php.ini ergänzt werden:

sys_temp_dir="/home/$USER/tmp"

Wichtig: Ersetzen Sie dabei $USER durch Ihren Usernamen.

Was gibt es zu beachten?

Achten Sie genau darauf, die php.ini der richtigen Version anzupassen.

Durch die Anpassung des tmp-Verzeichnisses gehen etwaige vorher vorhandene Session-Dateien verloren.

Das Verzeichnis im User-Kontext ("/home/$USER/tmp") wird im Gegensatz zum default tmp-Verzeichnis ("/home/tmp/") nicht regelmäßig geleert.
Falls Sie es dauerhaft im User-Kontext belassen wollen, kann es daher sinnvoll sein, dieses  tmp-Verzeichnis mithilfe eines Cronjobs regelmäßig zu leeren.

Dokumentation

Details zur PHP-Filesystem-Konfiguration finden Sie in der offiziellen Dokumentation:
https://www.php.net/manual/en/filesystem.configuration.php

Aktualisiert am 9. Juni 2023
War dieser Artikel hilfreich?