1.5.4 -> 1.8 auf neuem Server

Re: 1.5.4 -> 1.8 auf neuem Server

von Visvanath Ratnaweera -
Anzahl Antworten: 0
Nutzerbild von Besonders aktive Moodler Nutzerbild von Translators
Hallo Moritz

>>> die binary patch ist (war) überhaupt nicht installiert, was aber nichts an der openbasedir Meldung ändern würde. ich kann hergehen und /usr/bin/ kurzzeitig in die openbasedir mit aufnehmen, das muss aber wieder enfernt werden. Oder ist das was ausführen wollen plugins/patchsaving.php unbedingt nötig ?

Sorry, die Leute sprechen eine fremde Sprache. Ich kann die Aussage bzw. Rückfrage überhaupt nicht mit der Erklärung in http://php.net/manual/de/ini.core.php in Verbindung bringen:

=8<=
open_basedir string

Begrenzt die Dateien, die von PHP geöffnet werden auf einen bestimmten Ordner inklusive seiner Unterordner. Diese Direktive ist wirksam, EGAL, ob Safe Mode an oder aus ist.

Wenn ein Skript versucht, eine Datei zu öffnen, zum Beispiel mit fopen() oder gzopen(), wird der Ort der Datei geprüft. Wenn die Datei nicht im Verzeichnisbaum, der in open_basedir angegeben ist, liegt, wird PHP die Datei nicht öffnen. Alle symbolischen Verknüpfungen werden aufgelöst, sodass es nicht möglich ist, diese Beschränkung mit einem Symlink zu umgehen. Wenn die Datei nicht existiert kann die Verknüpfung nicht aufgelöst werden und der Dateiname wird mit (einem aufgelösten) open_basedir verglichen.

Der spezielle Wert . gibt an, dass das Arbeitsverzeichnes des Skriptes das Basis-Verzeichnis ist. Dies ist gefährtlich, da das Arbeitsverzeichnis mit chdir() einfach geändert werden kann.

In der Konfigurationsdatei httpd.conf kann open_basedir geändert oder deaktiviert werden (z.B. für einige virtuelle Hosts), genau wie jede andere Direktive mit "php_admin_value open_basedir none".

Unter Windows müssen die Verzeichnisse mit einem Semikolon (;) getrennt werden, auf allen anderen Systemen mit einem Doppelpunkt. Wenn PHP als Apache-Modul läuft, erbt open_basedir seinen Pfad nun automatisch von übergeordneten Verzeichnissen.

Die Einschränkung durch open_basedir geschieht durch einen Prefix, nicht durch einen Verzeichnisnamen. Das heißt, dass "open_basedir = /dir/incl" das Verzeichnis "/dir/include" ebenso einschließt wie "/dir/incls", wenn beide existieren. Wenn die Einschränkung auf ein bestimmtes Verzeichnis begrenzt werden soll, muss der Pfad mit einem Schrägstrich enden. Beispiel: open_basedir = /dir/incl/

Standardmäßig dürfen alle Dateien geöffnet werden.

Hinweis:

Seit PHP 5.3.0 kann open_basedir zur Laufzeit weiter verengt werden. Das heißt, wenn open_basedir laut php.ini auf /www/ gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() auf beispielsweise /www/tmp/ weiter begrenzt werden.
=>8=

Weitere Hinweise sind der bereits erwähnten Diskussion im "General Developer Forum" http://moodle.org/mod/forum/discuss.php?d=82513 zu entnehmen.

>>> Man sollte auch beachten das wir "kein" Moddleprovider sind sondern auf CMS Systeme spezialisiert sind. Moodle kann enorme Serverleistung beanspruchen und das ist bei unseren Preisen so nicht aktzeptabel.

Schlecht, doppelt. Erstens, sie sagen selber, dass sie von Moodle nicht viel verstehen, zweitens, sie wollen nicht die Ressourcen hergeben, was Moodle verlangt.

Ich sehe nur die naheliegende Lösung.
traurig