PHP-Version und WinSCP

update-alternatives --config php
gibt das aus, aber Permission denied und
php8.1 occ db:add-missing-indices
funktioniert auch nicht, auch nur php … ohne Version nicht.

Sieht aus, dass meine Webspace das aktuelle PHP verwendet, jedoch Befehle PHP7.4 benötigen.

Danke, habe obiges alles probiert, bringt nichts, ich muss den Anbieter fragen.

THX!

Hast du mal den Ordner mit den PHP-Programmen gesucht wie ich oben geschrieben habe? Werden sie dort aufgeführt? Vielleicht irgendwelche symbolischen Links auf php?

Welche Nextcloud-Version hast du überhaupt? Oder habe ich das überlesen? Das wäre noch wichtig für die richtige PHP-Version. Aber ich hoffe deine Nextcloud-Version ist nicht zu alt, dass das relevant sein könnte.

klar, alles probiert und geschaut!
which php7.4 ergibt
/usr/bin/php7.4 (ist im root, keine Rechte).
Dort gibts nur einen Linkt php, der nach /home/bin/php zeigt mit Inhalt /usr/bin/php8.0 (das kann ich ändern).
Du vermutetest, das da 7.4 steht, nein, 8.0.

Habe Nextcloud-Version 24.0.4.

Ich glaube ich habe dein Problem vollkommen falsch verstanden bzw. falsch interpretiert. Es ist ja schon so, dass PHP8.0 existiert und auch aufgerufen wird. Es ist nur der Fehler, den PHP8.0 produziert. Der Fehler (s.o.) basiert wohl darauf, dass du entweder APCu nicht konfiguriert hat oder für PHP8.0 das Modul nicht bereitsteht.
Entweder Konfiguration nicht ausgeführt
Konfiguration APCu bei Nextcloud
(da PHP7.4 und PHP8.0 die gleiche config.php verwenden, kann man diesen Punkt eher ausschließen)
oder Modul nicht vorhanden:
php8.0 -m
Falls das Modul fehlt (kannst zum Vergleich noch php7.4 -m versuchen), dann
a.) in config.php APCu deaktivieren (schlechtg für die Performance, aber ein Versuch wert)
b.) evtl. schauen wie du das Modul bekommst (wohl Provider fragen)

Das steht im obigen Link:

APCu is a data cache, and it is available in most Linux distributions. On Red Hat/CentOS/Fedora systems install php-pecl-apcu. On Debian/Ubuntu/Mint systems install php-apcu.

1 Like

devnull, super, jetzt kommen wir der Sache näher.
In config.php die Zeile mit APCu deaktiviert, dann funktioniert php8.0 occ db:add-missing-indices :+1:
Ich habe noch im Dateisystem hinweise zu php8.1 gefunden, das funkt. nicht, aber erst mal egal, die php-Version wird wohl mein Anbieter aktualisieren und aktivieren, kann ich auch auswählen im Kundencenter, momentan eben 8.0.
‘memcache.local’ => ‘\OC\Memcache\APCu’, aktiviere ich natürlich wieder.
Jetzt kommt es drauf an, was das alte php7.4 sicherheitstechnisch bedeutet, deswegen ja der Thread?


php8.0 -m

[PHP Modules]
apcu
… (viele weitere Module)

php7.4 -m

[PHP Modules]
apc
apcu
… (viele weitere Module)
xmlrpc

Es fehlen also 2 Module in php8.0, apc und xmlrpc.

8.1 ist auf automode
mach mal
php8.1 -m

Und gib mal

systemctl status redis

ein.

@Nanu
Ich weiß ja nicht, ob dort Redis läuft. Davon abgesehen, dass mir noch niemand den Vorteil von Redis gegenüber ACPu bei Einzelsystemen erklärt hat. Existiert der überhaupt? Redis ist doch vor allen eine verteilte Online-Datenbank hatte ich gedacht. Bei einem Einzelsystem ist doch wenig verteilt, oder?

@rheadi
Bei ACPu musst du zwischen Kommandozeile (CLI) und Nextcloud unterscheiden. Wenn es auf der Kommandozeile nicht funktioniert, kannst du es temporär deaktivieren und anschließend wieder aktivieren, damit du es in deiner Nextcloud nutzt. Aber vielleicht lohnt sich selbst ACPu in deiner Nextcloud nicht. Wenn du mit der Performance zufrieden bist (da du vielleicht nur ein Anwender bist), dann kannst du es auch deaktiviert lassen. Auf kurz oder lang solltest du dir vielleicht eine echte Nextcloud besorgen.

@bb77 hat in einem anderen Thread dazu geschrieben:

Bei 50+ Benutzern mag er Recht haben. Aber bei deinem Webspace-System. Ich weiß ja nicht. Für meine privaten Systeme konfiguriere ich ACPu und kein Redis.

Ich will dazu noch sagen, dass Ich auch APCu für den lokalen Memory Cache nutze, weil es schneller ist (zumindest in der Theorie) mit nur zwei Usern und den typischen Workloads von Privatusern. Bei vielen Usern kommt es aber irgendwann an seine Grenzen, braucht zuviel RAM und dann ist Redis effizienter.

Redis habe ich aber trotzdem installiert, wegen dem File Locking Cache. Braucht man bei zwei Usern auch nicht wirklich, aber hey kostet ja nichts also why not… :wink: Hat man viele User erhöht sich aber der Load auf die Datenbank zu stark, wenn man keinen Cache für das Transactional File Locking nutzt, und dann braucht man halt Redis trotzdem, unabhängig davon was man als lokalen Memory Cache nutzt.

Danke für die Infos. Schade, dass es wohl von Nextcloud dazu keine wirklichen Empfehlungen gibt oder ich habe sie einfach nur überlesen.

Naja das ist das was ich mir aus vielen Artikeln im Netz und auch aus den Infos aus den Docs so zusammengereimt habe. Wirkliche Benchmarks habe ich nie gmacht.

Für Privatuser und Kleinfirmen mit 1-20 Usern und eher kleinem Load reicht es imho aber auch, wenn man einfach die Empfehlungen in den Docs oder den bekannteren Tutorials im Internet berücksichtigt. Die beinhalten meistens APCu für local memory cache und Redis for filelocking cache. Bei 50+ User sieht es dann halt u.U. wieder anders aus. Und natürlich ist auch die HW noch entscheidend. Auf einem Raspi mit 2GB RAM wird man natürlich nie die gleiche Leistung rausholen können, wie auf einm echten Server mit schnellem NVMe Storage und 128GB RAM, egal was man alles optimiert :wink:

Tuning von Datenbanken, Cache, PHP, Storage etc ist schlussendlich eine kleine Wissenschaft und hängt sim Detail stark vom jeweiligen Nutzungsverhalten und der verwendeten HW ab. Da gibt es in der Regel keine “one fits them all” Lösungen. Für sehr grosse Instanzen mit hunderten oder gar tausenden von Usern, hat man aber in der Regel dann auch ein internes IT Team, das sich mit diesen Dingen wirklich auskennt, oder man beauftragt einen externen Dienstleister.

@bb77
Auch wenn es etwas offtopic ist, danke für deine Info.
Für sehr große Installationen habe ich vor einiger Zeit dieses PDF gefunden.

php8.1 -m listet viel weniger Module, ist vom Webspace-Anbieter auf dem Kundenportal nicht gelistet, nur 8.0.
systemctl status redis bringt Failed to connect to bus: No such file or directory

Was willst du denn unbedingt mit PHP 8.1. Nutze doch einfach PHP8.0 (auf der Kommandozeile) und gut ist es.

Welche PHP-Version nutzt denn der Webserver und damit deine laufende Nextcloud? Lade mal folgende PHP-Datei in deinen Webspace (nicht Nextcloud) hoch und schau.

phpinfo.php

<?php
phpinfo();
phpinfo(INFO_MODULES);
?>

Ich weiß jetzt jedenfalls was los ist.
Mal schauen, was mein Anbieter antwortet, ich fasse das dann hier zusammen.

Meine Antwort war nicht an dich. Ich will doch gar nicht php8.1 !

So, eine echte, was ist eine echte?

Echt ist deine Nextcloud natürlich auch. :wink: Du könntest aber z. B. Nextcloud auf einen VPS und nicht auf einen “shared webspace” installieren. Da hast du - durch administrative Berechtigungen - ganz andere Möglichkeiten. Auch könntest du dir für umsonst oder kleines Geld im Internet eine Managed Nextcloud bzw. ein Account besorgen. Diese Installationen sind für Nextcloud optimiert und andere Leute kümmern sich um die Administration. Es ist dann aber auch nur Nextcloud.

Du würdest ja auch z. B. eher Microsoft 365 - Services nutzen und nicht in Microsoft Azure dir selbst Microsoft 365 installieren. Ok Microsoft unterstützt es sowieso nicht, soll ja auch nur ein Vergleich sein.

Aber es ist natürlich in Ordnung auch administrative Erfahrung mit Nextcloud zu sammeln. Ich selbst installiere Nextcloud selbst und nutze aber auch Managed Nextcloud. Der Vorteil ist, dass man mehrere Nextcloud-Instanzen haben kann und diese leicht gemeinsam z. B. im Android-Client parallel verwenden kann. So nutze ich unterschiedliche Nextclouds für unterschiedliche Dinge auch wenn ich natürlich alles in eine Nextcloud verwalten könnte. Will ich aber gar nicht.

Antwort vom Anbieter:
“… php 8.0 Version in der Konsole direkt ansprechen, mit /usr/bin/php8.0 …”

also /usr/bin/php8.0 occ db:add-missing-indices

Peinlich. Manchmal kann es auch einfach sein. :grinning:

15. August 2022

24. September 2022

Eigentlich warst du schon vor über einem Monat kurz vor deiner Lösung. :wink:
Ich denke den Pfad brauchst du eigenltich nicht, da /usr/bin im Suchpfad ist.
Oder hattest du das Problem schon vor einem Monat gelöst?