Nextcloud 23 - Sicherheitswarnungen

System: Debian 11.1 (läuft als Proxmox lxc-Container)
Webserver: nginx
php: php8.0 fpm
Datenbank: mariaDB 10
nextcloud-Version: Nextcloud Hub II (23.0.0)

Hallo,

hoffe, dass ich alle Angaben angegeben habe, die benötigt werden.

Beim Aufruf der Sicherheits- und Einrichtungswarnungen werden eine Reihe von Warnungen anzeigt:

  • PHP scheint zur Abfrage von Systemumgebungsvariablen nicht richtig eingerichtet zu sein. Der Test mit getenv(“PATH”) liefert nur eine leere Antwort zurück. Bitte schaue in der Installationsdokumentation :arrow_upper_right: auf Hinweise zur PHP-Konfiguration, sowie die PHP-Konfiguration Deines Servers, insbesondere dann, wenn Du PHP-FPM einsetzt.

  • Für Deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländercode zuzulassen, füge bitte “default_phone_region” mit dem entsprechenden ISO 3166-1-Code :arrow_upper_right: der gewünschten Region hinzu.

  • Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen findest Du in unserer Dokumentation :arrow_upper_right:.

  • Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.
    imagick

Zum Punkt PATH:
Im phpInfo ist die Variable PATH ausgefüllt.
Getestet wurde es mit diesem Terminal-Befehl:

$ sudo -u www-data php -c /etc/php/8.0/fpm/php.ini -r "phpinfo();" | grep -e ^PATH
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Punkt “Standard-Telefonregion”:
Im Profil kann keine Telefonnummer eingetragen werden, begonnene Eingaben werden nach wenigen Sekunden wieder entfernt. Das Verhalten ist un abhängig von der Art der Eingabe “+49 …” oder nur Vorwahl und Telefonnummer.

Punkt “PHP Memory Cache”:
Es wurde das Paket memcached und php-memcached installiert.

Nach einem Neustart des php8.0-fpm Services wird dennoch in phpinfo kein memcache aufgelistet:

$ sudo -u www-data php -c /etc/php/8.0/fpm/php.ini -r "phpinfo();" | grep -i memcache

Dieser Befehl liefert keine Ausgabe, weil “memcache” nicht in phpinfo gelistet wird.

Punkt “Fehlendes imagick”:
Auf dem System ist das Paket “php-imagick” installiert worden.

Dennoch wird “Imagick” in phpInfo nicht gelistet:

$ sudo -u www-data php -c /etc/php/8.0/fpm/php.ini -r "phpinfo();" | grep -i imagick

Dieser Befehl liefert keine Ausgabe.

Kann mir jemand einen Hinweis geben, wie die Ursachen eingegrenzt werden können?

bitte in der config.php eintragen

müsstest du das - glaube ich - in der php.ini eintragen

das ist nicht notwendig, ganz im Gegenteil… s. dazu diverse Diskussionen hier im Forum. Bitte nach imagick od. dgl. suchen

Vielen Dank. Nach der Angabe der Landeskennung “+49” wird die Warnung ausgeblendet.

1 Like

Was ist damit gemeint? Was muss in der php.ini eingetragen werden?

na der PATH…
aber ich habe da nur oberflächliches Wissen. Bin aber sicher, hier wird der ein oder andere durchaus mit seinem Wissen aushelfen… :wink:

Der Wartungs-Befehl …
$ sudo -u www-data php -c /etc/php/7.4/fpm/php.ini $path/occ maintenance:repair
… hat u.a. die Config.php neu geschrieben.

In dieser Datei ist nun auch die Angabe “default_phone_region” übertragen worden.

Da bei PHP 8.0 kein memcache Modul vorhanden ist, wurde alles wieder auf PHP 7.4 umgestellt. In PHP 8.1 würde memcache wieder vorhanden sein. Jedoch unterstützt die aktuelle Nextcloud-Version 23 noch nicht PHP 8.1.

In phpinfo wird mecache und APCu bereits als aktiv angegeben.
In der config.php ist die memcached-Function aktiviert worden:

'memcache.distributed' => '\OC\Memcache\Memcached',

Dennoch wird beim Ausführen des Wartungsbefehls …

sudo -u www-data php -c /etc/php/7.4/fpm/php.ini nextcloud/occ maintenance:repair

… ein Fehler ausgegeben:

OCP\HintException: [0]: Memcache \OC\Memcache\Memcached not available for distributed cache (Is the matching PHP module installed and enabled?)

Es wurde hierbei strikt nach der Dokumentation auf der Webseite https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html vorgegangen.

Wenn die Angabe …

'memcache.local' => '\OC\Memcache\APCu',

… in der Config.php eingetragen wird, schlägt der Wartungs-Befehl auch hier fehl:

OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

Zur Info: Nach jeder vorgenommenen Änderung wurde der php-Service und nginx neu gestartet.

Lösung:
Auf dem System waren noch weitere PHP Versionen installiert: 8.0 und 8.1
Die Angabe “Scan this dir for additional .ini files” hat nicht auf den korrekten Pfad von PHP7.4 verwiesen sondern auf den Pfad von PHP8.0. Nah der Deinstallation aller Module von PHP8.0* wurde auf den Pfad von PHP8.1 verwiesen. Erst nach der Deinstallation von PHP8.1 wurde auf den richtigen Pfad von PHP7.4 verwiesen.

Erst nach dieser Änderung hat memcache ist der Wartungs-Befehl “occ maintenance:repair” fehlerfrei durchgelaufen.

Die Warnung nach der leeren PATH Angabe bleibt hingegen bestehen.
Anhand einer Testdatei kann bestätigt werden, dass der Befehl ‘getenv(“PATH”)’ einen Leerstring zurückliefert. In phpinfo wird hingegen die korrekte Angabe zurück geliefert.

Auf der Webseite getenv("PATH") still returning 0 - #5 by Cristobal_Ortiz-Orti wird u.a. angegeben, dass man in eine Datei nextcloud.conf die fehlenden Angaben eintragen solle. Eine Datei nextcloud.conf existiert jedoch nicht.