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.
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.
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.
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
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.
@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… 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.
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
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.
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.
Echt ist deine Nextcloud natürlich auch. 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.
Eigentlich warst du schon vor über einem Monat kurz vor deiner Lösung.
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?