Nextcloud nach PHP Update nicht mehr aufrufbar

Ich bekomme jedes Mal ein Problem mit meiner Nextcloud, nachdem ich Updates installiert habe. Jedes Mal nach dem Update kann ich nicht mehr auf meine Nextcloud zugreifen. Ich bekomme die Site, das System braucht ein Update. Danach habe ich versucht die Updates über das CLI per Hand zu installieren:

sudo -u www-data php occ upgrade

Aber ich bekomme diesen Fehler auf der CLI:

PHP-Warnung: PHP-Start: Dynamische Bibliothek 'apc.so' kann nicht geladen werden (versucht: /usr/lib/php/20190902/apc.so (/usr/lib/php/20190902/apc.so: undefiniertes Symbol: 
zif_apcu_store) , /usr/lib/php/20190902/apc.so.so (/usr/lib/php/20190902/apc.so.so: Shared Object File kann nicht geöffnet werden: No such file or directory)) in Unknown on line 0
Eine unbehandelte Ausnahme wurde ausgelöst: OC\HintException: [0]: Memcache \OC\Memcache\Redis not available for Distributed Cache (Ist das passende PHP-Modul installiert und aktiviert?)

Es wurde in der Vergangenheit die PHP Version 7.4 (/etc/php/7.4/cli/config.php) installiert

Gibt es eine Möglichkeit, das Nexcloud-System in Zukunft ohne manuelles Arbeiten am CLI zu aktualisieren? Es ist jedes Mal sehr frustrierend

Aus Frustration, habe ich nun das PHP 7.4 entfernt und 8.0 installiert. Das ganze wollte ich dann zurückstellen, da ich erst im nachhinein festgestellt habe, dass die 8.0 noch nicht voll Support ist.
Jetzt komme ich überhaupt nicht mehr auf Seite. Ich bekomme eine 505 Fehlermeldung.
Die Postgres Datenbank scheint aber noch da zu sein, sodass ich davon ausgehen kann, dass die DB nicht gelöscht wurde. Habt Ihr eine Idee wie ich mein NC nun wieder zum laufen bringen kann? Natürlich soweit es geht, ohne, dass ich das System neu aufbauen muss.

Danke fürs Helfen!

Die Datei “apc.so” gehört zum Paket php-apcu-bc: APCu-Modul für Rückwärtskompatibilität

Welches Linux-Derivat (Debian, Ubuntu, …) in welcher Version hast du denn installiert?
Wie installierst du das Paket php-apcu-bc bzw. php-apcu .

Als Work-Arround könntest du wahrscheinlich php-apcu inkl. aller Abhängigkeiten deinstallieren und ACPI in Nextcloud deaktivieren. Das wäre nur wahrscheinlich schlecht für die Performance. Vielleicht kannst du es auch einfach deinstallieren inkl. Abhängigkeiten und wieder neu installieren.

Beantworte aber bitte erst mal, wie du es unter welcher Distribution und Release installierst und aktualisierst.

Caching in Nextcloud inkl. ACPu:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html

Hallo nochmal,

ich habe Ubuntu 20.04.2 LTS drauf und die aktuellste NC Version.
Der Websserver scheint nun zu funktionieren, nachdem ich

apt-get install php7.4-apcu

ausgeführt habe. Lediglich bekomme ich nun folgende Meldung:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

Kann das noch am Memcache liegen?

Es sieht mehr danach aus, dass dein PHP ganz durcheinander geraten ist.

Ich verwende kein Ubuntu. Du kannst aber mal diese Anleitung lesen. Natürlich nicht alles neu machen, sondern nur mal schauen. Wobei von ACPu steht da gar nichts. Aber du kannst ACPu ja mal deaktivieren. Ist ja nur eine Zeile in config/config.php . Dann kannst du auch übergangsweise das Paket deinstallieren.

Schau auch noch, was installiert ist:

dpkg -l |grep php

Installier scheint folgende:

ii  php-apcu-bc                          1.0.5-13+ubuntu20.04.1+deb.sury.org+1                              amd64        APCu Backwards Compatibility Module
ii  php-common                           2:84+ubuntu20.04.1+deb.sury.org+1                                  all          Common files for PHP packages
ii  php-pear                             1:1.10.12+submodules+notgz+20210212-1+ubuntu20.04.1+deb.sury.org+1 all          PEAR Base System
ii  php7.4-apcu                          5.1.20+4.0.11-1+ubuntu20.04.1+deb.sury.org+1                       amd64        APC User Cache for PHP
ii  php7.4-apcu-bc                       1.0.5-13+ubuntu20.04.1+deb.sury.org+1                              amd64        APCu Backwards Compatibility Module
ii  php7.4-cli                           7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        command-line interpreter for the PHP scripting language
ii  php7.4-common                        7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        documentation, examples and common module for PHP
ii  php7.4-curl                          7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        CURL module for PHP
ii  php7.4-dev                           7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        Files for PHP7.4 module development
ii  php7.4-fpm                           7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php7.4-gd                            7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        GD module for PHP
ii  php7.4-igbinary                      3.2.1+2.0.8-6+ubuntu20.04.1+deb.sury.org+1                         amd64        igbinary PHP serializer
ii  php7.4-imagick                       3.4.4+php8.0+3.4.4-7+ubuntu20.04.1+deb.sury.org+1                  amd64        Provides a wrapper to the ImageMagick library
ii  php7.4-imap                          7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        IMAP module for PHP
ii  php7.4-intl                          7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        Internationalisation module for PHP
ii  php7.4-json                          7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        JSON module for PHP
ii  php7.4-mbstring                      7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        MBSTRING module for PHP
ii  php7.4-mysql                         7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        MySQL module for PHP
ii  php7.4-opcache                       7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        Zend OpCache module for PHP
ii  php7.4-readline                      7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        readline module for PHP
ii  php7.4-redis                         5.3.4+4.3.0-1+ubuntu20.04.1+deb.sury.org+1                         amd64        PHP extension for interfacing with Redis
ii  php7.4-soap                          7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        SOAP module for PHP
ii  php7.4-xml                           7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        DOM, SimpleXML, XML, and XSL module for PHP
ii  php7.4-xmlrpc                        7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        XMLRPC-EPI module for PHP
ii  php7.4-zip                           7.4.21-1+ubuntu20.04.1+deb.sury.org+1                              amd64        Zip module for PHP
ii  pkg-php-tools                        1.38                                                               all          various packaging tools and scripts for PHP packages

Wüsste ehrlichgesagt nicht, was ich von deiner Anleitung anwenden kann. Meine config.php sieht aktuell folgendermaßen aus:

<?php
$CONFIG = array (
  'passwordsalt' => 'xxxx',
  'secret' => 'xxx',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'xxx',
    2 => 'xxx',
    3 => 'xxx',
  ),
  'datadirectory' => '/mnt/ncdata',
  'dbtype' => 'pgsql',
  'version' => '21.0.2.1',
  'overwrite.cli.url' => 'xxxx',
  'dbname' => 'nextcloud_db',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'ncadmin',
  'dbpassword' => 'xxxxxx',
  'installed' => true,
  'instanceid' => 'xxxx',
  'upgrade.disable-web' => 'false',
  'default_phone_region' => 'DE',
  'log_type' => 'file',
  'logfile' => '/var/log/nextcloud/nextcloud.log',
  'loglevel' => 2,
  'debug' => 'false',
  'log.condition' =>
  array (
    'apps' =>
    array (
      0 => 'admin_audit',
    ),
  ),
  'mail_smtpmode' => 'smtp',
  'remember_login_cookie_lifetime' => '1800',
  'log_rotate_size' => '10485760',
  'trashbin_retention_obligation' => 'auto, 180',
  'versions_retention_obligation' => 'auto, 365',
  'simpleSignUpLink.shown' => false,
  'filelocking.enabled' => true,
  'memcache.local' => '\OC\Memcache\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
 array (
    'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
    'timeout' => 0.5,
    'dbindex' => 0,
    'password' => 'xxxx',
  ),
  'logtimezone' => 'Europe/Berlin',
  'htaccess.RewriteBase' => '/',
  'maintenance' => false,
  'mail_from_address' => 'xxxxx',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => 'xxxx',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtphost' => 'xxxxx',
  'mail_smtpport' => '465',
  'mail_smtpname' => 'xxxxx',
  'mail_smtppassword' => 'xxxxx',
  'mail_smtpsecure' => 'ssl',
);

Diese Zeile könntest du mal rauswerfen.
Und dann wie oben beschrireben mal php-apcu inkl. Abhängigkeiten deinstallieren. Dann nutzt du diese Komponente einfach nicht mehr. Und wenn das geht dann rückgängig machen und schauen, ob es dann (weiter) läuft.

Diese Zeile könntest du mal rauswerfen.
Und dann wie oben beschrireben mal php-apcu inkl. Abhängigkeiten deinstallieren. Dann nutzt du diese Komponente einfach nicht mehr. Und wenn das geht dann rückgängig machen und schauen, ob es dann läuft.

Poste Fehler, wenn du ACPU deinstalliert und deaktiviert hast.

Ok, ich werde es ausprobieren. Habe mir gerade noch die error.log des Apache2 log angeguckt:

AH01071: Got error 'PHP message: PHP Fatal error: Uncaught Doctrine\\DBAL\

Dieser Fehler wird da noch aufgelistet…

Vielleicht hilft dir dieser Tipp

Also das ganze PHP-Zeug (Metapakete) deinstallieren, Abhängigkeiten löschen und wieder installieren.

Also ich habe das Paket php7.4-apcu deinstalliert, die Zeile aus der config.php entfernt und versucht auf das NC zuzugreifen. Leider weiterhin ohne erfolg.
Danach habe ich das Paket nocheinmal installiert und versucht zu testen. Leider geht es weiterhin nicht.

Welchen Fehler bekommst du während php7.4-apcu nicht installiert ist?

Leider weiterhin den Internal Server Error

Versuche es mal auf der Kommandozeile aufzurufen. Was gibt es dann für einen Fehler.

Etwa so:

sudo -u www-data php /pfad/zur/nextcloud/index.php

Auch hier bekomme ich:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

Ahhh jetzt bekomme ich mit dem sudp -u www-data php folgendes:

PHP Warning:  PHP Startup: Unable to load dynamic library 'apc.so' (tried: /usr/lib/php/20190902/apc.so (/usr/lib/php/20190902/apc.so: undefined symbol: zif_apcu_store), /usr/lib/php/20190902/apc.so.so (/usr/lib/php/20190902/apc.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.


Ich habe mit sudo apt-get purge php8.* noch einige Pakete deinstalliert bekommen. Danach habe ich das Paket php7.4-apcu nochmal installiert. Damit bekomme ich nun die oben geschriebene Meldung

Was mich auch verwirrt, warum es so viele php.ini Dateien unter /etc/php/7.4 gibt:

**locate php.ini**
/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini
/etc/php/7.4/fpm/php.ini
/usr/lib/php/7.4/php.ini-development
/usr/lib/php/7.4/php.ini-production
/usr/lib/php/7.4/php.ini-production.cli
/usr/share/php/docs/igbinary/igbinary.php.ini

Die PHP-Ini-Dateien haben verschiedene Zwecke. Du könntest vielleicht mal die Konfigurationen sichern (falls du irgendwann dort mal was angepasst hattest) und dann das ganze PHP-Zeug inkl. Abhängigkeiten mal deinstallieren. Deinstalliere auch deren Konfigurationen. Kontrolliere das mit “dpkg -l”. Erst dann installiere das PHP-Zeug neu.

Hi @Diamond_72

Ich würde dir das gleiche empfehlen wie @devnull geschrieben hat…

Deinstalliere PHP komplett inkl. allen Konfigurationsdateien mit:

sudo apt purge php*

Danach den Server neustarten und PHP nach dieser Anleitung neu installieren:

Runter scrollen bis zum Kapitel: Installation PHP 7.4 (alternativ php8.0-fpm)

Du kannst jeweils eine kompletten Codeblock auf einmal ins Terminal kopieren und mit Enter bestätigen. Ich nutze die Konfigurationen von Carsten Rieger schon länger und hatte nie grössere Probleme. Dass man mal etwas anpassen muss nach dem einen oder anderen Nextcloud Update lässt sich aber leider nicht immer ganz vermeiden. Ich hoffe das hilft dir weiter…

Danke für den Link. Ich habe die Anleitung Schritt für Schritt befolgt.
Es funktioniert leider weiterhin nicht. Nun bekomme ich folgende Meldung:

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

und hier mal einen Auszug aus dem error.log vom apache2:

[Tue Jul 13 08:48:03.361968 2021] [proxy:error] [pid 21695:tid 139755324094208] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php7.4-fpm.ne>
[Tue Jul 13 08:48:03.362036 2021] [proxy_fcgi:error] [pid 21695:tid 139755324094208] [client XXX.XXX.XXX.XXX:57552] AH01079: failed to make connection to backend: httpd-UDS

Scheint mir, dass der apache nicht richtig läuft, da ich selbst eine phpinfo.php Datei nicht mehr aufrufen kann.

Hmm. Es scheint mir eher so als würde der PHP-FPM Dienst nicht richtig laufen… oder Apache verwendet nicht PHP-FPM…

Hast du alle Apache Module entsprechend aktiviert/deaktiviert und alle Dienste neu gestartet?

Starten Sie nun die Dienste neu

service php7.4-fpm restart

a2dismod php7.4 && a2dismod mpm_prefork

a2enmod proxy_fcgi setenvif mpm_event http2

service apache2 restart

a2enconf php7.4-fpm

service apache2 restart && service php7.4-fpm restart

Wie sieht deine Apache Config aus? Und was sagt…

sudo systemctl status php7.4-fpm 

und…

sudo systemctl status apache2

Hast du eine bestimmte Anleitung verwendet, als du die Nextcloud installiert hast?