Nextcloud 24.0.6 - \OC\Memcache\APCu not available

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Hallo verehrtes Forum,

da ich nach einer Woche erfolglosem konfigurieren, testen, konfigurieren, testen [...] so ganz langsam nicht mehr weiter weiß, habe ich mich in diesem schönen Forum (hat mir so manches Mal weitergebracht bei der Recherche) angemeldet. Folgendes Problem konnte ich bisher einfach nicht lösen:

Ich habe auf einer DS220j Nextcloud 24.0.6 erfolgreich installieren können. Alle "Sicherheits- & Einrichtungswarnungen" sind bestanden, die Cloud wurde mit A+ bewertet. Soweit so toll. Das Phänomen, mit dem kämpfe ist, dass wenn ich mich per SSH in die DS einlogge und den Befehl
sudo -u http php80 /volume1/web/nextcloud/occ db:add-missing-indices
eingebe, die DS ein
An unhandled exception has been thrown:
OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
ausspuckt.

Was ich nicht verstehe ist die Tatsache, dass die interne Überprüfung der Cloud sagt "Alles OK" und dann SSH das Gegenteil behauptet.

Diese ganzen "acp.enable = 1", "acp.enable_cli = 1", "opcache.enable = 1" in den php.ini sind gesetzt, in der config.php ist "'memcache.local' => '\\OC\\Memcache\\APCu'" gesetzt (deswegen meckern ja auch die "Sicherheits- & Einrichtungswarnungen" nicht und auch phpinfo sagt, dass alles aktiviert ist. Siehe Screenshots

WAS bitte läuft hier schief?! Hat jemand eine Idee?

Beste Grüße aus Bayern.
Chris
 

Anhänge

  • shh.JPG
    shh.JPG
    23,9 KB · Aufrufe: 11
  • nc.JPG
    nc.JPG
    35,5 KB · Aufrufe: 10
  • php8.JPG
    php8.JPG
    117,4 KB · Aufrufe: 11

BlueRazer

Benutzer
Mitglied seit
09. Okt 2019
Beiträge
69
Punkte für Reaktionen
26
Punkte
24
Ich habe hinter meinen Cronjob Befehl noch folgendes setzen müssen, damit APCu wieder fehlerfrei läuft.
--define apc.enable_cli=1

Das ist seit dem letzten, oder vorletzten NextCloud Update so.
Letztlich sieht der Befehl komplett nun so aus:
sudo -u http php80 -f /var/services/web/nextcloud/cron.php --define apc.enable_cli=1
 

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Hallo BlueRazer,

vielen Dank für Deine Rückmeldung.

Auf diesen Hinweis bin ich im Rahmen meiner Recherche auch gestoßen. Es hilft bei mir leider nichts.

Welchen Cronjob Befehl meinst Du? Mein Cron in NC läuft über Ajax.

Beste Grüße
Chris
 

Anhänge

  • shh.JPG
    shh.JPG
    25,9 KB · Aufrufe: 8

BlueRazer

Benutzer
Mitglied seit
09. Okt 2019
Beiträge
69
Punkte für Reaktionen
26
Punkte
24
OK, dann laufen wir unterschiedlich.
Ich habe setze mittlerweile Redis ein, weil Ajax bei mir, nach jedem Update immer mehr Fehler schmiss.

Eine user_settings.ini für APC hast Du erstellt?

---
/usr/local/etc/php80/cli/conf.d/user_settings.ini

Inhalt:

extension = apcu.so

[apc]
apc.enabled = 1
apc.enable_cli = 1
apc.shm_size = 2048M
opcache.enable = 1
opcache.enable_cli = 1

---

apc.shm_size passt D natürlich auf die Verhältnisse Deines NAS und Deiner Bedürfnisse an.

*bin jetzt bis Nachmittag aufm Motorrad unterwegs. Schau dann später nochmal rein ;)
 

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Hi,

jo, viel Spaß und bleib auf dem Rad :)

Habe ich auch versucht.

phpinfo meldet folgende geladene ini's -> siehe Screenshot

Wenn ich in der WebStation/ScriptSpracheinstellungen bei PHP 8 etwas ändere, so ändert sich auch phpinfo entsprechend und auch richtig.

Diese /usr/syno/etc/packages/WebStation/php_profile/a8a83ded-adad-4c9a-99dd-cff235d1f4b0/conf.d/user_settings.ini hat folgenden Inhalt:
zend_extension = opcache.so
extension = apcu.so

extension = bcmath.so
extension = bz2.so
extension = curl.so
extension = exif.so
extension = ftp.so
extension = gd.so
extension = gettext.so
extension = gmp.so
extension = iconv.so
extension = imagick.so
extension = intl.so
extension = mailparse.so
extension = mysqli.so
extension = openssl.so
extension = pdo_mysql.so
extension = posix.so
extension = soap.so
extension = sockets.so
extension = sodium.so
extension = zip.so
extension = zlib.so

display_errors = Off
open_basedir =
SMTP = localhost
apc.enable_cli = 1
apc.shm_size = 256M
memory_limit = 512M
opcache.enable = 1
opcache.enable_cli = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.revalidate_freq = 1
post_max_size = 4G
sys_temp_dir = /var/services/tmp
upload_max_filesize = 4G
also auch alles wie es sein sollte.

Dann nochmals die geladene php über ssh überprüft:
php -v ergibt:
PHP 8.0.17 (cli) (built: Mar 22 2022 18:20:35) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.17, Copyright (c) Zend Technologies
Auch korrekt!!

Ich komme da nicht mehr mit :))

Beste Grüße
Chris
 

Anhänge

  • 01 php8.JPG
    01 php8.JPG
    162,2 KB · Aufrufe: 9

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Von Nextcloud selbst und in der Shell aufgerufen kommen vermutlich einfach nur verschiedene PHP configs zum Zuge.

Probier mal den Aufruf
Code:
sudo -u http php80 -c /usr/syno/etc/packages/WebStation/php_profile/a8a83ded-adad-4c9a-99dd-cff235d1f4b0/conf.d/user_settings.ini /volume1/web/nextcloud/occ db:add-missing-indices
 

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Hi Tuxnet,

apcu.php -> Screenshot
redis.php -> "connection refused"

Beste Grüße
Chris
 

Anhänge

  • apsu.JPG
    apsu.JPG
    63,4 KB · Aufrufe: 20

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Von Nextcloud selbst und in der Shell aufgerufen kommen vermutlich einfach nur verschiedene PHP configs zum Zuge.

Probier mal den Aufruf
Code:
sudo -u http php80 -c /usr/syno/etc/packages/WebStation/php_profile/a8a83ded-adad-4c9a-99dd-cff235d1f4b0/conf.d/user_settings.ini /volume1/web/nextcloud/occ db:add-missing-indices

Hallo Fusion,

TREFFER - das funktioniert!!

Meine Überlegungen gingen schon in diese Richtung, jedoch konnte ich die Unterschiede nicht erkennen. Sowohl die manuelle Änderungen an der ini, als auch die Änderungen in der WebStation wurden lt. phpinfo richtig umgesetzt!! Einzig haben mich die unterschiedlichen build-Daten bei php -v und der Angabe in der phpinfo verwundert.

WAS läuft da schief?! :)

Beste Grüße
Chris
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Gar nichts.

Wenn du php80 in der Shell aufrufst... woher zum Geier soll der wissen, dass die config der Web Station (für Nextcloud) als Kontext hergenommen werden soll?

Jetzt kann man ihm einfach die config mitgeben mit der auch Nextcloud (occ) arbeitet, oder man kann sich die gleiche Umgebung in alle anderen möglichen ini Dateien bauen.

Persönlich bevorzuge ich ersteres, da alle Einstellungen die ich für Nextcloud treffe dann auch nur dafür gelten.
Zugegeben wird das vermutlich erst interessant (bei Arbeiten auf der Shell), wenn man verschiedene Webanwendungen laufen hat die nicht miteinander harmonieren bzw. explizit unterschiedliche Vorgaben haben wollen.
 
  • Like
Reaktionen: Tuxnet

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Gar nichts.

Wenn du php80 in der Shell aufrufst... woher zum Geier soll der wissen, dass die config der Web Station (für Nextcloud) als Kontext hergenommen werden soll
Ganz ehrlich - kann ich nicht nachvollziehen. Ich betreibe eine DS (shell), die PHP8 bereitstellt für eine WebStation (NC). Ich erwarte in meiner kleinen naiven Welt, dass ich auf der Shell dasselbe PHP anspreche, das von der WS verwendet wird.

Bitte nicht falsch verstehen - ich zweifel deine Aussage nicht an, jedoch ist es für mich alles andere als logisch :)

Danke für deine Hilfe und Hinweise.

Beste Grüße
Chris
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
"Das PHP" ist auch dasselbe. Aber die Parameter / Umgebung die ihm zum Laufen mitgegeben wird sind es nicht.
PHP ist auf der DS installiert.
Für den Webserver hat die Konfiguration Synology schon übernommen bzw. kann man in der GUI über Web Station > vHost etc. weitere Anpassungen vornehmen.
Die Shell / Konsole ruft PHP eben unabhängig davon auf, die Shell und die Web Station sind zwei verschiedene Quellen für Anfragen an "das PHP").
Die Shell hat also von der Konfiguration der Web Station und dortigen Hosts keine Ahnung.

Da es einen unübersichtlichen Strauß an Anwendungen gibt die der Anwender auf seiner DS installieren kann ist es Synology nicht möglich dies alles im Voraus zu konfigurieren, damit du nur noch ein php8-nc oder ähnlich aufrufen müsstest. Für calibre-web oder Bookstack oder irgendwelchen anderen Webanwendungen die der Benutzer installiert müsste es ja dann ähnlich erfolgen.
Nichts ist unmöglich, aber der Aufwand ist einfach immens.
Deshalb der umgekehrte Weg beim Aufruf via Shell DEM einen PHP eine Konfiguration mitzugeben (php8 -c configuration) mit der es bitte laufen soll.

Ich habe jetzt leider keine passende Analogie parat die dies in einem anderen Zusammenhang anschaulicher verständlich machen würde.
Vielleicht findet sich ja noch jemand der hierbei helfen kann.
 

chevRoss

Gesperrt
Mitglied seit
15. Okt 2022
Beiträge
9
Punkte für Reaktionen
0
Punkte
7
Danke für die Erklärung. Jetzt habe ich es verstanden. Die WebStation ist das Eine, Apache 2.4 Standalone wäre das Andere. Die WebStation vereinfacht u.a. die Konfiguration eines Webservers.

Beste Grüße
Chris
 

TheGardner

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
1.845
Punkte für Reaktionen
56
Punkte
74
Merci für dieses Thema, kann ich mir weitere Nachfragen sparen. Habe nen ähnliches Problem und wollte nur noch abwarten, bis die 25 final erscheint.
Vermute jetzt aber, dass das Problem weiterhin besteht und ich dann mal die Lösung hier durchführen sollte.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat