在服务器上搭建了一个网盘系统,对比了owncloud、seafile之后,最终还是选择了Nextcloud,谁让它好看呢…

环境准备

类目 版本 备注
操作系统 Centos7 64
Docker 20.10.12
nextcloud latest
mysql latest
redis latest

拉取mysql、nextcloud、redis镜像

docker pull mysql
docker pull nextcloud
docker pull redis

安装mysql

docker run -p 3306:3306 --restart=always --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

配置mysql

docker exec -it mysql容器ID /bin/bash
root@ID:/# mysql -u root -p
mysql> GRANT ALL PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.02 sec)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
 Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
mysql> exit

安装Nextcloud

mkdir -p /home/nextcloud
docker run -d --name=nextcloud  -v /home/nextcloud:/var/www/html -p 8000:80 --restart=always nextcloud

配置nextcloud

  • 设置用户名、密码
  • 配置连接mysql 数据库配置信息(数据库【没有时可自动创建】、用户名、密码、IP地址)

访问nextcloud

因为我已经安装配置过了,当时没有截图,就大致写一下

http://IP:8000

安装完成,输入安装时创建的管理员账号密码登录即可。

安装Redis,优化nextcloud访问

mkdir -p /home/redis/conf
mkdir -p /home/redis/data

#新增redis配置文件
cd /home/redis/conf
touch redis.conf

修改redis配置文件:vim redis.conf

#bind 127.0.0.1
protected-mode no
appendonly yes
requirepass 123456

启动redis

docker run --name redis -p 6379:6379 -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
  • docker run表示运行的意思
  • –name redis表示运行容器的名字叫myredis
  • -p 6379:6379表示将服务器的6379(冒号前的6379)端口映射到docker的6379(冒号后的6379)端口,这样就可以通过服务器的端口访问到docker容器的端口了
  • -d 表示以后台服务的形式运行redis
  • -v /home/redis/data:/data表示将服务器上的/home/redis/data映射为docker容器上的/data ,这样/data中产生的数据就可以持久化到本地的目录下了
  • -v /home/redis/conf/redis.conf:/etc/redis/redis.conf表示将本地/home/redis/conf/redis.conf映射为docker容器上的/etc/redis/redis.conf,这样再配合指令末尾的redis redis-server /etc/redis/redis.conf实现让docker容器运行时使用本地配置的Redis配置文件的功能了。
  • redis redis-server /etc/redis/redis.conf表示运行redis服务器程序,并且指定运行时的配置文件

docker ps 查看服务是否启动

配置nextcloud+redis

cd /home/nextcloud/config

修改 vim config.php
在末尾添加如下代码

'redis' => 
  array (
    'host' => '192.168.1.104',
    'port' => 6379,
    'password' => '123456',
  ),

重启nextcloud

docker restart nextcloud

进入redis容器查看是否已进入缓存

docker exec -it redis bash

#进入redis-cli
> redis-cli
> auth "123456"
> keys *

可以看到已经有值进来了,就证明已经成功。

效果

颜值确实在线。

Nextcloud在应用市场内还有很多支持的apps,有兴趣可以多研究看看