前言
第三次更新:
后来拥有了一个群晖做为个人云盘,效果也不错,后来就没有继续捣鼓了。
第二次更新:
后来发现nextcloud会有要通过不被信任的域名访问的问题,于是重新修改了一遍。
我要在自己的云服务器(操作系统是centos7.8)上制作自己的私人云盘!
经过考虑之后,使用PHP7.3、MySQL5.5.65、Nginx、Memcached搭建Nextcloud
使用docker不香么?真香!!!!!
安装镜像
私人云盘的数据保存是存储到关系型数据库里面的,将内容保存到里面之后再提供一个可视化的页面来访问。
创建数据库容器
其实使用Docker来快速建立一个数据库是最有效的方式,操作详情则请参考我的同系列另一篇博客,Docker系列之安装数据库。
建立名为keenuser
用户,密码为123456
,拥有数据库nextcloud
的全部权限。
创建Nextcloud容器
拉取镜像
docker pull nextcloud
拉取到的 Nextcloud 镜像的 tag 是 latest
,显示以下信息即表示拉取成功。不得不吐槽一句,我明明修改成中科大的源了,可还是下载了好久!
创建外部挂载目录
递归创建存储目录
mkdir -p /home/keen/docker/nextcloud/data
启动 Nextcloud 容器
docker run -d \
--restart=always \
--name nextcloud \
--link mysql5.7.30:db \
-p 5213:80 \
-v /home/keen/docker/nextcloud/data/:/var/www/html/data/ \
-v /home/keen/docker/nextcloud/config/:/var/www/html/config/ \
nextcloud
-
docker run
:启动一个容器 -
-d
:后台运行容器 -
--restart=always
:Docker 重启的时候容器也会重启 -
--name nextcloud
:命名容器的 name 为 nextcloud,可以替代容器 id 使用 -
–link mysql5.7.30:db:链接数据库容器为服务器的名称记为db
-
-p 5213:80
:将容器的 80 端口映射到服务器的 5213 端口 -
-v data: 映射数据文件
-
-v config: 映射配置文件
-
nextcloud
:要启动的镜像名称
原本是要映射到80的,但是在我这里已经把端口80占用了啊,于是乎,我就把他对应到了5213(我爱你撒/害羞)。
需要注意的是,如果使用的阿里云或腾讯云的服务器,要检查服务器的安全组是否开放了 5213 端口,没有开放的需要开放一下。
如果使用的是本地虚拟机,需要执行以下命令开放 5213端口对外访问,然后更新防火墙规则。
firewall-cmd --zone=public --add-port=5213/tcp --permanent
firewall-cmd --reload
配置容器
直接用域名:端口
的方式访问对应的端口号即可。http://www.clzly.xyz:5213/
上面填账号密码,下面选择第二个mysql
-
数据目录就是/var/www/html/data
-
对应的就是数据库用户keenuser
-
对应的密码就是123456
-
对应的数据库名就是nextcloud
-
最下面写db
下面的勾无所谓,反正地址被墙了。
删除容器后的第二次初始化
因为上一次忘记映射配置目录,导致要删除原有容器,映射新容器.在建立管理员账号的时候提示错误。
有两个选择,用新的账号去管理这个新的数据库,比如说用root啊
其次是修改原有的账号,创建了管理员账号后再改回来。
之后修改/home/keen/docker/nextcloud/config/config.php
文件如下:
于是大家就可以从我的博客后附链接中直接下载了。
感谢
感谢现在的好奇,为了能成为更好的自己。
原文链接:https://www.bilibili.com/read/cv17726877/