Page 1 of 1

[gelöst] contentcache.php

Posted: Mon Dec 17, 2007 4:19 pm
by markus
hallo, folgendes problem.
die datei contentcache.php gebe ich die rechte 777. nach ein paar tagen bekomme ich dann immer diese fehlermeldung:

Warning: fopen(/cms/tmp/cache/contentcache.php): failed to open stream: Keine Berechtigung in /cms/lib/classes/class.contentoperations.inc.php on line 549

Warning: fwrite(): supplied argument is not a valid stream resource in /cms/lib/classes/class.contentoperations.inc.php on line 550

Warning: fclose(): supplied argument is not a valid stream resource in /cms/lib/classes/class.contentoperations.inc.php on line 551

wenn ich die rechte wieder auf 777 stelle, dann verschwindet die fehlermeldung für ein paar tage.
wer wüsste rat? leider habe ich nichts über die suche gefunden.

Re: contentcache.php

Posted: Mon Dec 17, 2007 5:23 pm
by wilfried
Der Ordner cache muss auf 777 gesetzt werden.

Re: contentcache.php

Posted: Mon Dec 17, 2007 6:54 pm
by markus
habe ich gemacht, bringt nichts

Re: contentcache.php

Posted: Mon Dec 17, 2007 7:29 pm
by wilfried
Dann schalte den Cache einfach ab, das macht die CMS auch schneller.

Anleitung gibt es hier: http://forum.cmsmadesimple.org/index.ph ... 474.0.html

Re: contentcache.php

Posted: Mon Dec 17, 2007 7:49 pm
by markus
da musste ich nichts ändern, dort stand schon alles auf false. aber laut aussage dieser änderung soll eine erstellung verhindert werden. also habe ich einfach mal die contentcache.php gelöscht. bis jetzt läuft es.
wenn jemand noch ein tip hat, dem wär ich dankbar.

nachtrag: es wurde eine neue contentcache.php erstellt.
C wie contentcache.php

Vor einiger Zeit wurde die Datei contentcache.php eingeführt, die im Verzeichnis /tmp/cache angelegt wird. Darin ist serialized die Hierarchie aller Inhalte einer Webseite enthalten. Das sollte eigentlich zu einer Beschleunigung führen, tut es aber nicht.

Um die Erstellung der Datei zu deaktivieren, muss in der Datei class.contentoperations.inc.php aus dem Verzeichnis /lib/classes/ die Zeile 497 von

Code:

$usecache = true;


auf

Code:

$usecache = false;


geändert werden

bei mir steht aber das : if ($usecache)
{

was ist bei mir falsch? sorry, aber php ist nicht gerade das was ich kann :)

Re: contentcache.php

Posted: Mon Dec 17, 2007 8:04 pm
by wilfried
Die Zeilennummer kann von Version zu Version unterschiedlich sein.

$cachefilename = TMP_CACHE_LOCATION . '/contentcache.php';
$usecache = true;

suchen und dann ändern.

Re: contentcache.php

Posted: Mon Dec 17, 2007 9:45 pm
by markus
super, danke, es funzt!

bei mir sind es die zeilen 488/489 gewesen.
jetzt wird keine neue contentcache-datei geschrieben.

Re: [gelöst] contentcache.php

Posted: Tue Dec 18, 2007 5:15 pm
by cyberman
markus wrote: die datei contentcache.php gebe ich die rechte 777.
Wie schon gesagt - diese Datei wird vom System geschrieben. Da müssen keine Rechte vergeben werden. Umgekehrt wird sie auch gelöscht, wenn du unter Administrator > Globale Einstellungen auf "Zwischenspeicher löschen" klickst.

Re: [gelöst] contentcache.php

Posted: Tue Dec 18, 2007 7:21 pm
by wilfried
Wie schon gesagt - diese Datei wird vom System geschrieben.
Das ist richtig, der Gute hatte aber Probleme wenn das Script diese Datei öffnen wollte zum lesen.

Der Grund - es ist ein richtiger Bug

Code: Select all

		if (!$loadedcache && $usecache)
		{
			debug_buffer("Serializing...");
			$handle = fopen($cachefilename, "w");
			fwrite($handle, '<?php return; ?>'.serialize($tree));
			fclose($handle);
		}
Auch wenn der Ordner auf 777 gestellt ist, erhält eine vom System geschriebene Datei in manchen Serverkonfigurationen nur Rechte des Systemes - Endeffekt - kein Zugriff.

Hier fehlt ein chmod nach dem Schreiben, das ist der Bug.