Nextcloud挂载SMB/CIFS外部存储
有位朋友留言:
请教一下关于smbclient问题:我这边smbclient和php-client都在shell下手动装了,但是nextcloud挂载外部存储那里还是不行。这是什么原因呢?(只使用了apt-get install smbclient 和apt-get install php-smbclient)
最开始捣鼓nextcloud的时候折腾过挂载外部存储,很久没操作过了,顺便记录一下。
这里仅以挂载SMB为例,nextcloud 16.0.1
开始
设置 – 左侧管理 – 外部存储
提示:“smbclient” 未安装。无法挂载 "SMB / CIFS", "SMB / CIFS 使用 OC 登录信息"。请联系管理员安装。
那就安装smbclient呗,我是CentOS 7
方法1.手动编译
wget https://pecl.php.net/get/smbclient-1.0.0.tgz
tar xf smbclient-1.0.0.tgz
cd smbclient-1.0.0
#下面的phpize路径需修改为你自己的,比如我的是宝塔php 7.3的路径
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install
完成之后,会提示 smbclient.so 扩展已编译在PHP的扩展目录下
在php的面板中修改配置文件,添加
[smbclient]
extension = /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/smbclient.so
保存,重启PHP,phpinfo里检查是否已启动
方法2.通过PECL安装
yum install libsmbclient libsmbclient-devel -y
yum安装完后,仅仅只是系统底层支持smb client了,而nextcloud是基于php的,还需要通过PECL命令来安装php对应的smb扩展
pecl install smbclient
这里可能会报错
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
运行
pecl channel-update pecl.php.net
对pecl channel进行升级
PHP Warning: popen() has been disabled for security reasons
popen函数被禁用了,打开宝塔的php管理面板,删掉被禁用的popen函数即可再次执行pecl安装smbclient
pecl安装smbclient扩展完成后会提示
检查php的配置文件,看是否已添加引用smbclient的库文件,如未添加,需手动添加并重启php
回到nextcloud的挂载外部存储管理页面,之前的提示已消除
挂载
添加一个 SMB/CIFS 协议的共享目录
添加后,页面上方会出现如下图配置区域,由于配置项毕竟多,我以编号命令,逐一解释
注:当配置OK时,最前面的图标为绿色对勾,否则显示为红、橙色图标
- 1.在Nextcloud中看到的挂载名称(任意填)
- 2.认证选项(一般均为用户名和密码)
- 3.SMB服务器地址(如果smb服务端口不是默认的139或445,可以定义为IP:端口的形式)
- 4.SMB服务器中配置的共享文件夹名称(如果该文件夹不存在则会报错)
- 5.远程子文件夹(默认为空)
- 6.域名(默认为空)
- 7.用户名(smb用户名)
- 8.密码(smb密码)
- 9.指定挂载的共享文件夹的权限(默认为空,表示所有用户都可以读写该文件夹)
- 10.检查配置\保存按钮(用于测试是否配置成功)
完成
配置完成后,返回Nextcloud首页,点击左侧外部存储,就能看到已挂载的远程smb文件夹
完~
28 条评论
我试了半天不行,结果发现宝塔的PHP页面安装扩展最下面就有一键安装,哈哈哈哈哈
@ljkund
这篇文章已经快3年了……过时了,我记得当时还是宝塔5.x时代
大侠啊,有个问题,我现在版本是20.0.7,挂在SMB盘存东西,但是这个挂载外部存储文件夹里面的东西不能外链分享,显示不允许二次共享 ,是什么原因啊
@leo
同问,感觉有可能是“外部存储”这个插件默认配置的问题,我是用snap搭建的nextcloud,而挂载的本地外部存储都全给了770的权限……总之就还是显示“不允许二次共享”
@cwzsquare
最后面勾勾那里有个更多(三个点)打开后勾上共享