nextcloud是一个免费的开源的网盘软件,也可以多平台同步文件,最简单的方式就是利用docker来安装。

环境如下

  • 主机系统debian 12
  • docker容器
  • 主机数据库mariaDB

由于主机已安装了数据库,所以就不需要在docker里再次安装mariaDB数据库了,直接连接主机的数据库。

修改主机的mariaDB的监听端口

debian安装好mariaDB之后,默认的监听IP为127.0.0.1,只能监听本机,我们要把监听IP改为0.0.0.0

nano /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address            = 127.0.0.1

改为

bind-address            = 0.0.0.0

然后重启一下mysql

systemctl restart mysql

创建数据库任意用户和全局权限

由于容器需要连接到主机的数据库,需要打开权限,否则会报错

登录mysql,这里的123456是你自己的mysql密码

mysql -uroot -p123456

然后输入

CREATE USER 'any'@'%' IDENTIFIED BY '123456';
grant all privileges on *.* to 'any'@'%' with grant option;

在docker里安装nextcloud

现在可以正式的安装nextcloud了

docker run -d \
	--name nextcloud \
	-v /usr/local/etc/docker/nextcloud:/var/www/html \
	-v /usr/local/etc/docker/nextcloud/config:/var/www/html/config \
	-v /mnt/Public/NetDisk/nextcloud:/var/www/html/data \
	-v /usr/local/etc/docker/nextcloud/apps:/var/www/html/custom_apps \
	-p 8084:80 \
	nextcloud

上面的端口和目录,根据自身情况修改。

安装nextcloud

打开http://IP:8084,会看到安装界面,用户名和密码,自己随便取一个。

然后进行数据库的信息填写

安装成功

如果在nextcloud服务器上删除或增加文件,客户端不会自动同步,需要扫描一下,方法如下:

登录到docker内部

docker exec -it nextcloud bash

运行

sudo -u www-data php occ files:scan --all 

如果显示无sudo,则需要安装

apt-get update && apt-get install -y sudo

当然也可以在容器外部运行

docker exec -it nextcloud /bin/bash -c "sudo -u www-data php occ files:scan --all"

nextcloud默认会把同步的文件放在系统盘,但我们一般都会把文件放在大硬盘上,所以要把data目录指定一个位置

docker run -d \
	--name nextcloud \
	-v /usr/local/etc/docker/nextcloud:/var/www/html \
        -v /mnt/Public/NetDisk/nextcloud:/var/www/nextcloud/data
	-p 8084:80 \
	nextcloud

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注