让truenas的nextcloud也可以挂载smb共享目录

字号+ 编辑: 种花家 修订: 种花家 来源: 原创 2023-10-10 我要说两句(0)

nextcloud的php网盘系统和smb似乎鱼和熊掌不可兼得的意思,尤其是权限,有那么一点纠结。该怎么解决呢?

这里小编只说Truenas scale版本, 这里的nextcloud都是挂在docker里的, 一般默认php是没有安装smbclient的, 需要事先在docker里面安一下:

apt-get install smbclient libsmbclient-dev

接下来用docker里自带的php pecl来自动安装smbclient.so插件

pecl install smbclient

如果你因为某种原因, 没有办法运行pecl命令, 就从pecl官网down包来手动编译

手动编译php的smbclient

wget https://pecl.php.net/get/smbclient-1.1.1.tgz 
tar zxf smbclient-1.1.1.tgz
cd smbclient-1.1.1 && phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

安装完毕之后会出现下方提示, 大体意思是要你在php.ini里面添加smbclient.so, 不用理会, 因为到这一步, 命令行安装的事已经ok了。

Build process completed successfully
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20210902/smbclient.so'
install ok: channel://pecl.php.net/smbclient-1.0.6
configuration option "php_ini" is not set to php.ini location
You should add "extension=smbclient.so" to php.ini

接下来就是在nextcloud管理员账户里找到右上角->应用, 添加一个外部存储的精选应用, 添加完了再迂回到管理员的设置->外部存储菜单中, 会发现系统不再提示smbclient找不到的报错了, 看到这个界面

WX20221208-201454@2x.jpg

这里解释一下, 不要慌,下方文字告诉你,图里这些东西是啥意思

目录名称: 在Nextcloud中看到的挂载名称(任意填)

注意第三列的认证选项, 一般均为用户名和密码, 平时你怎么登录SMB目录的, 当然是用户名和密码了。

SMB服务器地址,如果smb服务端口不是默认的139或445,可以定义为IP:端口的形式。你不知道SMB服务器是啥地址? 那你平时是怎么连smb共享盘的? 不用IP的吗? 那就写域名也行。

SMB服务器中配置的共享文件夹名称, 比如你共享盘目录叫张三, 那就写张三, 找不到的话肯定报错。你平时怎么连smb共享盘的? 共享盘目录就啥名知道吗? 知道就填进这一栏里去。

远程子文件夹,我也不知道填啥,没填过

域名,我也不知道填啥,不填

smb用户名, 你怎么登录smb共享盘的就怎么填当时的用户名

smb密码, 同上

最右边那个栏位, 让你选, 把这个smb目录桥接到哪个nextcloud用户手里。如果不写,则所有人都可以看。那可就很危险喽?

接下来填好了点右侧对号,如果测试通过,则表示没有问题。


阅完此文,您的感想如何?
  • 有用

    125

  • 没用

    2

  • 开心

    12

  • 愤怒

    2

  • 可怜

    6

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • Linux系统下word文档转成pdf的办法

  • ubuntu和debian安装nginx或者tengine报错, 找不到pcre依赖库的解决办法

  • linux终端下借助awk命令查询筛出网站access.log日志里的统计信息

  • 常见的web中间件请求返回状态码

我要说说
网上宾友点评