Keine Schreibrechte für Verzeichnis templates_c (trotz 777)

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
markus
Regular
Posts: 35
Joined: Mon Jun 26, 2006 10:43 pm

Keine Schreibrechte für Verzeichnis templates_c (trotz 777)

Post by markus »

Moin,

ich bekomme die Fehlermeldung "Keine Schreibrechte für Verzeichnis [...]/templates_c/. Bitte korrigieren", obwohl die Zugriffsrechte für den Ordner auf 777 stehen.

Code: Select all

drwxrwxr-x  2 ftp ftp   4096 Oct  5 10:11 templates_c
Es geht um http://www.aikido-sh.de/ - ich mache da ehrenamtlich die Web-Seiten mit S9y.

Diese Instanz wird bei Strato gehostet. Meine letzte Aktion darin war ein Update auf S9y 2.0.4 über das Automatik-Update am letzten Donnerstag. Bis mindestens Montag lief alles noch einwandfrei. Seit irgendwann Dienstag kommt nun diese Fehlermeldung.

Ich habe daraufhin hier im Forum gesucht, und den Hinweis gefunden, die Rechte auf 777 zu setzen, was ich (siehe Datumsangabe in der ls-Ausgabe) auch mehrfach versucht habe, sowohl über den ftp-Zugang als auch über die FixPermissions-PHP-Datei, die ich hier irgendwo gefunden hatte. In einem alten Thread habe ich ferner den Hinweis von Garvin gefunden, dass der Provider etwas geändert habe. Ich habe daraufhin den Support von Strato kontaktiert und folgende Antwort kam zurück:

"In Ihrer Programmierung scheint irgendwo ein Fehler vorzuliegen, der die Einschränkung hervorruft. Eine Änderung seitens STRATO ist nicht erfolgt."

Ich habe danach über das Strato-Backup-Interface einen Zustand von vor meinem Update (da hat ja alles funktioniert) wieder hergestellt, aber dann die gleiche Fehlermeldung erhalten.

Da das Einspielen des Backups recht langsam vonstatten geht, hat man zwischendurch einen Zustand, in dem man den S9y-Installationsdialog angezeigt bekommt. Dort ist die grün hinterlegte Angabe, dass templates_c beschreibbar sei, deutlich zu erkennen (auch sonst ist bei den Tests nichts "rot").

Ich bin nun ein wenig am Ende mit meinen Ideen und bitte um Eure Hilfe.

Markus

Noch ein Hinweis: Dies ist ein anderer Rechner und eine andere Web-Seite als die mit dem Datenbank-Zugriffs-Problem in meinem anderen Posting von vorhin. Grade kommt irgendwie alles zusammen ... :(
Da dies nicht mein Server ist, komme ich auch nicht an irgendwelche Error-Logs oder kann am Apache drehen oder so.
markus
Regular
Posts: 35
Joined: Mon Jun 26, 2006 10:43 pm

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by markus »

So, die Server-Konfiguration zeigt nun auf ein Verzeichnis, in dem ein ganz frisches s9y ausgepackt ist. (Der Wert von serendipityPath in der Datenbank-Tabelle serendipity_config zeigt auf das richtige neue Verzeichnis.)

Ich werde begrüßt mit einem freundlichen Installationsdialog und "Systemdiagnose von Serendipity v.2.0.4", alles ist grün, alle Rechte sind mit "Beschreibbar" gelistet.

Lade ich dahinein nun die alte serendipity_config_local.inc.php, kommt die Fehlermeldung "Keine Schreibrechte für Verzeichnis /[...]/templates_c/. Bitte korrigieren".

Lösche ich serendipity_config_local.inc.php, kommt wieder der Installationsdialog und das Verzeichnis ist "Beschreibbar" ... - das kann ich beliebig hin und her spielen. Mit serendipity_config_local.inc.php gibt es angeblich keine Schreibrechte, ohne serendipity_config_local.inc.php ist es beschreibbar. Selbstredend ändert sich an den Berechtigungen des fraglichen Verzeichnisses dazwischen genau nichts.
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by yellowled »

markus wrote:ich bekomme die Fehlermeldung "Keine Schreibrechte für Verzeichnis [...]/templates_c/. Bitte korrigieren", obwohl die Zugriffsrechte für den Ordner auf 777 stehen.

Code: Select all

drwxrwxr-x  2 ftp ftp   4096 Oct  5 10:11 templates_c
Das ist nicht 777, das ist 775. Lesen(r) = 1, schreiben(w) = 2, ausführen(x) (oder Verzeichnis öffen) = 4, diese Werte können addiert werden. Am Anfang steht das d für Verzeichnis (directory), danach drei Werte(gruppen).

Der 1. Wert (rwx bzw. 7) gilt für den Eigentümer der Datei (oder des Verzeichnisses), der hier ftp ist; der 2. Wert gilt für die Gruppe, der diese Datei zugewiesen ist (hier ebenfalls ftp); der 3. Wert (r-x bzw. 5) gilt für „Jedermann“ (weshalb 777 sehr gefährlich sein kann). 7 bedeutet also, man darf lesen, schreiben und ausführen (bzw. öffnen im Fall eines Verzeichnisses wie hier). 5 bedeutet man (in diesem Fall hier „Jedermann“ darf lesen und öffnen, aber nicht schreiben.

Das Problem könnte ein ganz anderes sein, nämlich der Eigentümer und/oder die Gruppe. Beides ist hier auf ftp gesetzt – damit komme ich ein wenig in die Grauzone (generell ist das alles eigentlich eine Frage für den Support Deines Hosters, aber schauen wir mal, wie weit wir Dir helfen können), weil ich nicht weiß, wie Strato das handhabt. Es gibt Hoster, die zwischen einem „PHP-Nutzer“ und einem „FTP-Nutzer“ unterscheiden. In dem Fall dürfte hier (wenn das so wäre) der FTP-Nutzer das Verzeichnis beschreiben, der PHP-Nutzer aber nicht. Und „der PHP-Nutzer“ ist quasi der Server, auf dem das alles passiert.

Praktisch kann das bedeuten, dass Du mittels FTP-Zugang Dateien oder Verzeichnisse schreiben kannst, aber der Benutzer, mit dem PHP auf dem Server, auf dem das Blog liegt, ausgeführt wird, kann das nicht. Und das kann ein Problem sein. Das man z.B. umgehen kann, in dem man Dateien/Verzeichnisse dem FTP-Nutzer, aber der Gruppe des PHP-Nutzers zuweist; was genau da die empfohlene Vorgehensweise ist und wie man das macht, sollte Dir der Support Deines Hosters oder dessen Dokumentation besser sagen können. (Es gibt Hoster, bei denen man all das leider nur über mehr oder weniger unbequeme Interfaces oder Web-FTP machen kann.)
markus wrote:Da dies nicht mein Server ist, komme ich auch nicht an irgendwelche Error-Logs oder kann am Apache drehen oder so.
Das stimmt im Shared Hosting normalerweise, aber umso wichtiger ist es, in Dialog mit dem Support des Hosters zu kommen (die haben nämlich Zugriff auf die Error-Logs und könnten an der Konfiguration drehen.

Hoffe, das hilft.

YL
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by yellowled »

Sorry, falls ich zu umständlich und vorlaut jemandem lang und breit Unix-Permissions erklärt habe, der einen Server verwaltet, ich hab Dein anderes Posting erst später gelesen. :)

YL
markus
Regular
Posts: 35
Joined: Mon Jun 26, 2006 10:43 pm

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by markus »

Hallo Yellowled,

vielen Dank für Deine Antwort! (Und nix sorry - grad die freundlichen und ausführlichen Erklärungen schätze ich an diesem Forum. Sie helfen spätestens dann, wenn jemand nach einem ähnlichen Fehler sucht und das noch nicht weiß.)

Dass da drwxrwxr-x und nicht drwxrwxrwx in der Ansicht steht, war mein Fehler. Ich habe das Verzeichnis (auch schon lange) auf einem meiner Server als ftpfs in das Dateisystem eingebunden, um ein paar Dinge schneller erledigen zu können. Wenn ich darüber in dem Verzeichnis ls mache, sind dort alle Verzeichnisse drwxrwxr-x und alle Dateien -rwxrwxr-x.

Code: Select all

drwxrwxr-x  3 markus markus   4096 Oct  6  2016 templates_c
Gehe ich per ftp in der bash auf den Rechner, sehe ich, was ich gesetzt habe:

Code: Select all

drwxrwxrwx   3 ftp      ftp          4096 Oct  6 17:25 templates_c
Ich hatte das vorhin falsch reingepastet (aus dem ftpfs und nicht aus dem ftp) und wollte eigentlich nicht nur den Usernamen korrigieren, habe das aber leider verpeilt ...

Baue ich die FTP-Verbindung mit WinSCP auf, kann ich in den Eigenschaften des Ordners die 0777 sehen. Außerdem habe ich nun noch eine Möglichkeit gefunden, per SSH auf den Strato-Server zu gehen. Darüber sieht das dann so aus:

Code: Select all

drwxrwxrwx  3 789075 power   4096 Oct  6 17:25 templates_c
D.h. je nach Sicht auf das System werden mir unterschiedliche Angaben zu User und Group gegeben. Alle Dateien/Verzeichnisse haben aber jeweils identische User und Group innerhalb der jeweiligen Sicht.

Ich habe mir eine PHP-Datei erstellt, um die Schreibrechte zu prüfen:

Code: Select all

<?php
 $inhalt = "works";
 $handle = fopen ("templates_c/test.txt", w);
 fwrite ($handle, $inhalt);
 fclose ($handle);
?>
Sie erstellt mir im Verzeichnis templates_c eine Datei test.txt, deren Inhalt "works" lautet ... Das PHP hat also Schreibrechte in diesem Verzeichnis und kann diese auch nutzen.

Ich hatte zwischenzeitlich auch ein leeres Verzeichnis "templates_c" mit Rechten 777 angelegt, das hatte aber auch nicht geholfen.

Allerdings: Nun ist in templates_c außer meiner Datei test.txt auch ein Ordner mit dem Namen meines verwendeten Templates sowie eine staticpage_pagelist.dat - das S9y konnte also wohl zwischendurch dorthin schreiben ...

Mayday :D

Markus
markus
Regular
Posts: 35
Joined: Mon Jun 26, 2006 10:43 pm

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by markus »

Gelöst!

Mehr oder weniger zufällig habe ich die Lösung gefunden. Ich habe über den SSH-Zugang mal "pwd" ausgeführt und siehe da: Das Verzeichnis, in dem unsere Daten liegen, hatte sich geändert. Soviel zu Strato hat nix geändert ...

Ich habe in der MySQL-Tabelle serendipity_config nun den absoluten Pfad auf den neuen gesetzt (muss man bei den Backups auch) und siehe da - alles geht wieder. :)

Puuuuuuh ...

Markus
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by yellowled »

markus wrote:Gelöst!

[…] Puuuuuuh ...
Ich gebe offen zu, diesmal erst bis zum Ende gescrollt und den Rest dann nicht mehr nachgelesen zu haben. :lol:

Gut, dass es sich lösen ließ. Schade (aber – leider – bei den großen Massenhostern nicht die Ausnahme), dass man Dich diesbezüglich angelogen hat.

YL
markus
Regular
Posts: 35
Joined: Mon Jun 26, 2006 10:43 pm

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by markus »

Da ist noch eine Sache, die ich nicht verstehe - warum wird der absolute Pfad überhaupt in die Datenbank eingetragen? Der steht doch als Servervariable $_SERVER["DOCUMENT_ROOT"] zur Verfügung?
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by yellowled »

markus wrote:Da ist noch eine Sache, die ich nicht verstehe - warum wird der absolute Pfad überhaupt in die Datenbank eingetragen? Der steht doch als Servervariable $_SERVER["DOCUMENT_ROOT"] zur Verfügung?
Die Frage übersteigt leider mein PHP/MySQL, dazu müsste Garvin oder onli etwas sagen. (Kann bei Garvin noch etwas dauern, der ist meines Wissen einschließlich heute unterwegs.)

YL
onli
Regular
Posts: 2827
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Keine Schreibrechte für Verzeichnis templates_c (trotz 7

Post by onli »

Der steht doch als Servervariable $_SERVER["DOCUMENT_ROOT"] zur Verfügung?
Ich denke die Antwort ist "Leider nicht immer". Wobei wir durchaus prüfen sollten, ob es nicht oft genug da ist. Es würde s9y-Umzüge durchaus einfacher machen.
Post Reply