Microblog #04: Ubuntu Server 20.04 - Externen Speicher via SMB in Nextcloud 19/20/21 einbinden

Kurzbeitrag zum Beheben des Fehlers beim Einbinden eines Externen Speichers via SMB.

Microblog #04: Ubuntu Server 20.04 - Externen Speicher via SMB in Nextcloud 19/20/21 einbinden

Inhalt:

Vorwort / Fehlerbild

Nach einer frischen Installation einer Nextcloud Instanz auf einem Ubuntu Server 20.04 LTS sollte ein SMB Share als externer Speicher eingebunden werden. Die zuvor benötigte App sowie der generelle SMB Client wurden zuvor installiert.

Jedoch konnte der Speicher nicht eingebunden werden, nach einem Blick in das Fehler Log der Nextcloud konnte ich folgende Einträge finden:

Warning no app in… Icewind\SMB\Exception\Exception: Unknown error (NT_STATUS_OBJECT_NAME_INVALID) for /

Warning no app in… External storage not available: Unknown error (NT_STATUS_OBJECT_NAME_INVALID) for /

Error files Icewind\SMB\Exception\NotFoundException: Invalid request for /shared-folder-name (NotFoundException)

Fehlerursache

Nach durchforsten einiger Foren kam mir dann die Erleuchtung: Im PHP Repository unter Ubuntu 20.04 LTS ist das benötigte PHP Modul »php-smbclient« nicht länger enthalten.

Workaround

Repository hinzufügen

Um das notwendige Modul nachzurüsten, muss das entsprechende PHP Repository von ondrej neu in die Paketquellen aufgenommen werden. Über die Kommandozeile erfolgt dies über den nachstehenden Befehl:

sudo su -c 'echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/newphp.list'

Repository Key hinzufügen

Im Anschluss daran wird der Key importiert:

sudo apt-key adv --recv-keys --keyserver hkps://keyserver.ubuntu.com:443 4F4EA0AAE5267A6C

Installation von php-smbclient

Nach Neueinlesen der Paketquellen kann das fehlende Modul für den smbclient nachinstalliert werden:

sudo apt update && sudo apt install php-smbclient

Je nach installierter PHP Version wird im Anschluss die passende Version des smbclient nachinstalliert. Auf meinem System ist aktuell php7.4 installiert. Der obige Befehl installiert demnach php7.4-smbclient.