NC läuft nicht mit PHP 8 auf Shared Hosting

Mehrere NC Installationen laufen einwandfrei unter PHP 7.4 auf meinem Shared Hosting. Bei der Umstellung auf PHP 8 tritt in der Dateiansicht und bei den Einstellungen ein Internal Server Error auf. Eine Neuinstallation ohne zusätzliche Apps brachte keine Lösung. Laut Provider greift NC auf PHP-Funktionen zurück, die aus Sicherheitsgründen nicht freigegeben werden können. Unter PHP 7.4 ist das für NC kein Problem, aber unter PHP 8 kommt es zu einem Internal Server Error. Das ist vielleicht ein Punkt, den die Entwickler von NC berücksichtigen sollten, denn das könnte viele User betreffen, die NC auf einem Shared Hosting installieren wollen. Wenn jemand dafür eine Abhilfe weiß, wäre ich dafür natürlich sehr dankbar! Läuft bei jemandem NC auf einem Shared Hosting unter PHP 8?

ich vermute. dass erst NC23 PHP8 voraussetzt bzw es dazu empfohlen wird.
Für NC22 wird noch 7.4 empfohlen.

Das kann natürlich sein. Ich habe jetzt mal auf meiner Testinstallation auf NC 23.0.0 RC2 upgegraded. Das hat den Fehler einstweilen noch nicht behoben.

Kennst du diese Funktionen? Kannst du sie in Erfahrung bringen? Und wenn man die Software anpassen müssete, müsste man einen Issue einstellen.

Also bei mir läuft NC22 (fast) problemlos mit PHP8.
Nur der Aufruf von “occ” auf der Kommandozeile und der cron-Aufruf braucht für PHP8 etwas “Tuning” (zusätzliche Argumente), damit es ohne Warnung/Fehlermeldung funktioniert.

Mein Shared-Hoster ist Webgo…

Der Hoster hat das Problem analysiert und ein Issue gepostet:

Das Grundproblem besteht darin das PHP >= 8 bei der Verwendung von @disk_free_space kein Warnung sondern einen error inkl. exit bringt. Das verursacht dann den Nextcloud internen 500er, da diese Funktion gesperrt ist. Generell sollte somit die Verwendung von @function vermieden und gegen “if (function_exists(‘function’)” ersetzt werden.

1 Like

Finde ich super, dass der Provider ein Issue eingestellt hat.

Du kannst natürlich mal manuell am Sourcecode was ändern und schauen, ob es dann läuft. Vielleicht findest du weitere Stellen im Code, die auch angepasst werden müssen. Dann könnte man das vielleicht direkt im Issue noch hinzufügen und somit den Aufwand für die Behebung des Fehlers minimieren.

Ich habe diese Änderung im Sourcecode vorgenommen:

und es läuft! :grinning:

Danke an die Leute von WebHostOne, die sich die Mühe gemacht haben, dem Problem auf den Grund zu gehen. :+1:

1 Like