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.
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.