"open_basedir restriction in effect" obwohl Pfad in php.ini defiviert worden ist

Lord_Icon

Member
Ich teste ein neuen Server + Shop.
ISPConfig + JTL Shop mit PHP-FPM 7.0 (also PHP 7)

Der ganze Shop selbst funktioniert auch. Testbestellungen etc. wurden alles umgesetzt.
Jetzt wollte ich mal den Cache löschen weil ich einige Tempkate Änderungen vorgenommen habe und nicht angezeigt werden.

Da bekomme ich dann aber eine weiße Seite.

Das Log sagt hier:

Code:
[Tue Feb 21 14:50:23.148087 2023] [proxy_fcgi:error] [pid 367550] [client 227.9.59.1:22433] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught RuntimeException: SplFileInfo::isLink(): open_basedir restriction in effect. File(/var/www/<meine-domain>.de/web/templates_c/filecache/gtfo_1fb56e4a4b11663d0fdb15c9971ebc82_1_1.fc) is not within the allowed path(s):

(/var/www/clients/client3/web21/web:
/var/www/clients/client3/web21/private:
/var/www/clients/client3/web21/tmp:
/var/www/<meine-domain>.de/web:
/srv/www/<meine-domain>.de/web:
/usr/share/php5:
/usr/share/php:
/tmp:
/usr/share/phpmyadmin:
/etc/phpmyadmin:
/var/lib/phpmyadmin:
/dev/random:
/dev/urandom) in /var/www/clients/client3/web21/web/classes/CachingMethods/class.cachingMethod.advancedfile.php:166\nStack trace:\n#0 /var/www/clients/client3/web21/web/classes/CachingMethods/class.cachingMethod.advancedfile.php(166): SplFileInfo->isLink()\n#1 /var/www/clients/client3/web21/web/classes/class.JTL-Shop.JTLCache.php(785): cache_advancedfile->flushAll()\n#2 /var/www/clients/client3/web21/web/classes/class.JTL-Shop.JTLCache.php(160): JTLCache->_flushAll()\n#3 /var/www/clients/c...\n', referer: https://<meine-domain>.de/admin/cache.php

ich hab die "not within the allowed path" mal umgebrochen. (der besseren Lesbarkeit).
Wie man aber sieht ist der Pfad drin:

Gesagt wird:
open_basedir restriction in effect. File(/var/www/<meine-domain>.de/web/templates_c/filecache/gtfo_1fb56e4a4b11663d0fdb15c9971ebc82_1_1.fc

Angeblich sei dieser Pfad nicht in "/var/www/<meine-domain>.de/web"

Das die Berechtigungen Rekursiv vererbt werden denke ich mal ist klar.
Kann es sein, dass hier ein falscher Fehler ausgegeben wird?

P.s. ich hab auch schon ein "chown -R web21:client3 *" abgesetzt. Somit sollten alle Datein den User zugeordnet sein.
chmod 777 templates_c +
chmod 777 filecache

ebendfalls. Aber auch hier ohne Lösung.

Danke für Tipps
 
Ergänzend dazu: diese chmod 777 ist in den seltensten Fällen wirklich notwendig und kann ein Sicherheitsproblem sein. Das stammt noch aus einer Zeit, als PHP noch als Apache-Modul unter dem Apache-User lief. Also Änderung wieder rückgängig machen.
Bezüglich open_basedir kann es sein, dass diese zur Laufzeit vom Script weiter eingeschränkt werden können. Außerdem sorgt open_basedir für eine trügerische Sicherheit - es läßt sich z.B. durch andere Scriptsprachen wie perl oder python umgehen (sofern im Webserver konfiguriert) oder auch über die PHP-Befehle wie exec, shell_exec oder passthru.
 
Back
Top