PHP-Modul zip nicht installiert

irgendwie wird es gefühlt schlimmer. Zwar ist jetzt

$ php -v 
PHP 8.1.7-1ubuntu3.2 (cli) (built: Jan 16 2023 15:18:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.7-1ubuntu3.2, Copyright (c), by Zend Technologies

zu finden aber im Browser beim versuch NC zu starten erhalte ich nun
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.

Aus der Ferne schwierig zu sagen, an was es genau liegt. Ich gehe davon aus, dass noch gewisse PHP Pakete fehlen. Wie hast du denn Nextcloud ursprünglich mal installiert?

Grundsätzlich musst du einfach die selben PHP Pakete wie damals installieren, dieses mal einfach in der Version 8.1. Hast du eine bestimmte Anleitung verwendet und / oder Notitzen gemacht? Falls nicht kann dir evtl. die offizielle Dokumentation Anhaltspunkte geben. Hier ein Beispiel aus der offiziellen Dokumentation: https://docs.nextcloud.com/server/25/admin_manual/installation/example_ubuntu.html

Hab das mal für Version 8.1 angepasst:

sudo apt install libapache2-mod-php8.1
sudo apt install php8.1-gd php8.1-mysql php8.1-curl php8.1-mbstring php8.1-intl
sudo apt install php8.1-gmp php8.1-bcmath php-imagick php8.1-xml php8.1-zip

Hier noch eine allgemeinere Übersicht: https://docs.nextcloud.com/server/25/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

@gilada
Ich habe mir das mal angeschaut. Zu dem eigentlichen Problem mit php-zip kann ich auch nicht mehr viel beitragen.

Aber du könntest mal aufräumen. Installiere vielleicht mal apt-show-versions und schau dir die Ausgabe an. Dort solltest du Unterscheidungen nach Releases finden. Versuch mal z. B. das ganze PHP7.4-Zeug loszuwerden bzw. das zugehörige Repository. Man kann es leicht scripten. Musst nicht alles manuell machen. Entferne nicht nur die Pakete, sondern auch deren Konfigurationen (–purge). Achja. Backup vorher nicht vergessen.

1 Like

Danke ich habe nochmals alle php entfernt :
sudo apt remove --purge -y php* --allow-change-held-packages && sudo apt autoremove -y

anschließend via neu installiert:

sudo apt install php8.1*

php -v gibt mir aus:

PHP 8.1.7-1ubuntu3.2 (cli) (built: Jan 16 2023 15:18:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.7-1ubuntu3.2, Copyright (c), by Zend Technologies

ein reboot und sudo apt update && sudo apt upgrade gemacht, danach versucht 8.1 Modul zu aktivieren aber das System meint das Modul existiert nicht.

sudo a2enmod php8.1         
ERROR: Module php8.1 does not exist!

Achso evtl. noch eine nicht uninteressante Meldung, wenn ich versuche:

~/www/nextcloud $ sudo -u www-data php occ maintenance:repair
An unhandled exception has been thrown:
OCP\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching P
HP module installed and enabled?)

Hmm, ist das ein Platzhalter oder hast du tatsächlich versucht die Pakete mit exakt diesem Befehl (mit wildcard) zu installieren?

Ist das Paket php8.1-redis installiert?

Falls ja, hilft dir evtl das weiter: https://github.com/nextcloud/server/issues/27781

Ja das * ist / war als Platzhalter gedacht. Wie auch immer es ist wie mit der Nadel im Heuhaufen.

Habe nochmals alle php Versionen vi purge entfernt und diesmal das ganze ohne * installiert. jetzt habe ich zwar 8.1 enmod aber NC läuft weiterhin nur nicht. :hot_face:

$ sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled

Hallo klopf klopf, jemand da der mir helfen kann mein Problem zu lösen?

Sorry es ist schwierig zu sagen aus der Ferne wie der Status deines Servers ist. Da scheinen immer noch diverse Konflikte mit unterschiedlichen PHP Versionen und Paketen zu bestehen.

Grundsätzlich musst du deinen Server dazu bringen, dass alle PHP Module die Nextcloud benötigt, in der Version, die du verwenden willst, installiert und aktiv sind und er diese dann auch verwendet. Welche du genau benötigst hängt auch von deiner Konfiguartion ab. Wenn du Apache nutzt brauchst du z.B. libapache2-mod-php8.1, wenn du Redis konfiguriert hast php8.1-redis etc… Da wäre natürlich auch Dokumentation hilfreich, um noch zu wissen wie man Nextcloud ursprünglich mal eingerichtet hat…

Hier ein paar Beispielkonfigurationen:

https://www.learnlinux.tv/build-an-awesome-nextcloud-server-updated-for-ubuntu-22-04/

https://www.howtoforge.com/tutorial/ubuntu-nginx-nextcloud/

Hier noch eine etwas umfangreichere Konfiguration:

https://www.c-rieger.de/nextcloud-installationsanleitung-apache2-fast-track/

Hier noch ein Link zur Doku wie du die 3rd Party Repos von Ondrej Sury managen kannst:

https://github.com/oerdnj/deb.sury.org/wiki

thx, wie ich das vor xxx Jahren installierte kann ich dir leider nicht mehr sagen, ich denke aber apache2. Kann ich das irgendwie abfragen?

Wie auch immer NC lief ja vor kurzem noch, das muss irgendwie mit einem update von ubuntu zusammen hängen.