Lesedauer 4 Minuten

Manchmal kommt man nicht umhin, die Zugriffsrechte für Dateien und Ordner einer PrestaShop-Installation zu reparieren: Der Umzug eines PrestaShops auf einen neuen Server, Aufräumen nachdem eine Website gehacked wurde etc.

Symptome für defekte Zugriffsrechte in PrestaShop sind z.B. Abbrüche beim Installieren von PrestaShop Updates über das 1 Click Update Plugin, Probleme beim Installieren von Plugins (“No Permission to overwrite”) oder komplett weisse Seiten beim Aufruf diverser Einstellungen im Backend.

Der folgende Beitrag zeigt, wie man die Zugriffsrechte von PrestaShop reparieren kann, per SSH- oder per FTP-Zugang.

Per SSH-Zugang: PrestaShop automatisch reparieren

Manuelle Änderungen an den File Permissions sind oft mühsam und fehlerbehaftet. Das folgende Script repariert die Zugriffsrechte von PrestaShop voll automatisch. Voraussetzung ist Zugang per SSH.

Aufgerufen wird das Script wie folgt:

Hierbei gilt folgende Annahme:

  • Es wurde vorher alle Daten gesichert.
  • Wir sind per SSH eingelogged und befinden uns im Root-Ordner unserer Webspace-Verwaltung. Unter Plesk ist das z.B. /var/www/vhosts
  • Unsere PrestaShop-Installation befindet sich im Ordner httpdocs/shop unserer Domain “domain.com”.
  • Der Benutzername unseres regulären FTP-Accounts mit dem wir die Dateien unsrer PrestaShop-Installation verwalten heisst “ftpuser1”.

Folgende Parameter sind vorher direkt im Script anzupassen:

  • AUTODETECT: Standardmässig versucht das Script den Admin-Ordner aus der Prestashop-Konfiguration zu ermitteln. Sollte das nicht gelingen, muss hier “N” eingetragen werden. Die Variable PS_ADMIN muss dann manuell gesetzt werden. Ansonsten sollte AUTODETECT auf “Y” bleiben.
  • PS_GROUP: Unser Server in unserem o.g. Beispiel ist ein RootServer oder Virtual Server mit Plesk Control Panel (HostEurope). Daher sollte die Gruppe für die PrestaShop-Installation “psacln” (=Plesk Client Side User) sein.
  • PS_WRITE_PERMS: Die Zugriffsrechte für Schreibzugriff. In unserem Beispiel ist das der Standardwert für RootServer oder virtuelle Server von HostEurope. Der Wert kann je nach Provider unterschiedlich sein.
  • PS_ADMIN: Diese Variable ist auf den Namen des Admin-Ordners von PrestaShop zu setzen, falls AUTODETECT=N.

Beim o.g. Aufruf des Scripts werden dann folgende Parameter übergeben:

  • PS_ROOT: Den Pfad zur PrestaShop-Installation, hier httpdocs/shop
  • PS_OWNER: Der Eigentümer der PrestaShop-Installation, hier ftpuser1

Je nach Grösse der PrestaShop-Installation kann der Reparatur-Vorgang mehrere Minuten dauern.

Per FTP-Zugang: PrestaShop Permissions manuell reparieren

Hat man keinen SSH-Zugang zur Verfügung, bleibt nur der Weg über einen FTP-Client.

Um Zeit zu sparen und die Installation in einen “sauberen Zustand” zu versetzen, sollten zuerst diverse Caches geleert werden. Hier zu löscht man die Inhalte der folgenden Ordner, ausser der Datei “index.php”:

  • /cache/smarty/cache
  • /cache/smarty/compile
  • /themes/NAME_DES_THEMES/cache

Danach sollten die Zugriffsrechte für die PrestaShop Installation wie folgt gesetzt werden:

  • Alle Dateien und Ordner zuerst rekursiv auf 644.
  • Danach alle Ordner und Unterordner (ohne die Dateien darin) auf 755.

prestashop-permissionsDanach setzt man folgende Ordner samt deren Inhalt rekursiv auf 775:

  • /config
  • /cache
  • /log
  • /img
  • /mails
  • /modules
  • /translations
  • /upload
  • /download
  • /classes/cache

Das Selbe gilt für folgende Unterordner im aktiven Theme-Ordner von PrestaShop. D.h. ebenfalls rekursiv auf 775 setzen:

  • /themes/NAME_DES_THEMES/lang
  • /themes/NAME_DES_THEMES/pdf/lang
  • /themes/NAME_DES_THEMES/cache

Nun noch folgende Unterordner im PrestaShop-Admin-Ordner rekursiv auf 775 setzen:

  • NAME_DES_ADMIN_ORDNERS/autoupgrade
  • NAME_DES_ADMIN_ORDNERS/themes/default/template/controllers/modules

Geschafft!

“Rekursiv” bedeutet “für den Ordner selbst und allen darin enthaltenen Objekte wie Dateien und Unterordner”. D.h. der gesamte Verzeichnisbaum, bis zum letzten Unterordner.

Bei diversen Webspace Providern kann es Unterschiede geben – hier hilft oftmals nur Probieren. Die Abweichungen von den o.g. Settings sollten sich jedoch in Grenzen halten.

divider-edit

[Edited 2016-06-06]: fix-ps-perms.sh wurde um AUTODETECT erweitert.[Edited 2018-07-13]: Update fix-ps-perms.sh.

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!