说明:NexCould
是一款不错,也很漂亮的个人私有云网盘,现在使用的人是越来越多了,之前发过一篇常规的搭建教程,参考:一款不错的个人私有云:NextCloud安装教程,鉴于很多人在搭建过程中或多或少都会出点问题,今天博主发个很方便的安装方法,就是用Docker
安装NextCloud
,看到网上很多这样的教程都是通过编辑docker-compose.yml
文件来安装的,还要配置反向代理,期间容易出现很多问题,对新手很不友好,而本教程使用纯命令形式安装,不容易出问题,适合尝鲜的新手。
截图
更新
Docker
镜像已替换成更新比较频繁,体积更加小的镜像,使用的是最新稳定版Alpine Linux
,环境为PHP 7
和Nginx
。
安装
Github地址:https://github.com/chrootLogin/docker-nextcloud
1、安装Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装Nextcloud
#拉取Mysql镜像,记得修改数据库信息
docker run --name mysqlnc -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=moerats \
-e MYSQL_DATABASE=moerats \
-e MYSQL_USER=moerats \
-e MYSQL_PASSWORD=moerats \
-v /root/nextcloud/mysql:/var/lib/mysql \
mysql:5.7
#拉取Nextcloud镜像
docker run -d --name nextcloud --link mysqlnc \
-v /root/nextcloud/data:/data \
-p 3000:80 \
rootlogin/nextcloud
访问地址为http://IP:3000
,启动命令里的3000
端口可自行替换,不过后面有关端口的命令都自行修改,/root/nextcloud
为网盘的数据库,也可以自行修改。
对于CentOS
系统,还需要开启3000
端口,开启如下:
#CentOS 6
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
如果要用域名访问,就需要反代了。
域名访问
反代可以用Nginx
、Apache
、Caddy
,这里只说宝塔和Caddy
。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2
种的Caddy
反代,配置很快。
1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL
填入http://127.0.0.1:3000
,再启用反向代理即可。至于启用SSL
就不说了,直接在站点配置就可以启用。
2、Caddy反代
安装Caddy
:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
配置Caddy
:
#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
#http访问,该配置不会自动签发SSL
echo "xx.com {
gzip
proxy / 127.0.0.1:3000 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /usr/local/caddy/Caddyfile
#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "xx.com {
gzip
tls admin@moerats.com
proxy / 127.0.0.1:3000 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /usr/local/caddy/Caddyfile
tls
参数会自动帮你签发ssl
证书,如果你要使用自己的ssl
,改为tls /root/xx.crt /root/xx.key
即可。后面为ssl
证书路径。
启动Caddy
:
/etc/init.d/caddy start
就可以打开域名进行访问了。
3、Nginx配置
如果你使用其它的,这里就大概发个Nginx
反代配置,直接添加到配置文件即可。
#在配置文件里添加
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
最后要注意的是,安装的时候,Mysql
数据库地址填localhost:3306
。
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/420/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
====安装成功=====
完全按这个安装了,但是IP:3000访问不了?求解
看下docker进程,docker ps如果有这个进程,就去检查下防火墙端口,比如像阿里云这种,控制面板都有安全组什么的。
楼主你好,我卡在最后完成安装的步骤,提示”无法创建或写入数据目录 /root/nextcloud/data”,怎么回事呀
选的什么数据库类型?或者把你的安装链接私发我看看。
MySQL5.7
docker安装好nextcloud怎么修改nextcloud的存储目录??
我想把整个机子的硬盘都给他当存储空间,,
好像就是默认服务器整个根目录
不是的,我试了,机子还可以存储18G,可我放个3G文件上去,都提示没空间了……
错误
看起来您正在尝试重新安装您的Nextcloud。但您的config文件夹中没有CAN_INSTALL文件。请在您的config文件夹中创建CAN_INSTALL文件以继续。
在映射出来的数据库文件夹config里面,新建一个空的CAN_INSTALL文件就可以了。
想问下如何新建呢.. 我完全小白...感恩!
比如我文件映射文件夹为/root/nextcloud/data,应该还存在/root/nextcloud/data/config文件夹,你使用命令 cd /root/nextcloud/data/config && touch CAN_INSTALL应该就可以了
成功了!感谢!然后我发现IP后边不加:3000就会404,这个和手机登录时显示 “An SSL error has occurred and a secure connection to the server cannot be madeyou” 联系吗
博主,安装完docker版本后怎么配置为MySQL数据库呢?
这几天我更新下文章吧,使用Mysql
谢谢。
已更新Mysql数据库。
存储&数据库的默认目录填写的/data/data/,在web页面键入信息后点击完成安装,提示:SQLSTATE[HY000] [2002] No such file or directory
docker下载的rootlogin/nextcloud这个是什么版本?和直接输入nextcloud的版本有什么区别?
rootlogin/nextcloud这个是镜像版本,一般拉取的仓库最新的版本,不能随便输。
正在学习中,厉害了。
博主,你文章被人盗了:https://www.cnblogs.com/adjk/p/9842415.html
大神什么时候发可以用mysql的教程啊已经两万多次观看人够多了吧 快两年了
你是要docker配合mysql还是纯手动配合mysql?
docker配合mysql
已新增Mysql数据库
发现我aria2下载的东西网盘目录不显示
docker真方便,无脑安装,急速体验,觉得不行随时删除,hhh
是的,docker效率高
博主老师您好,请教一下;
怎样配置mysql数据库,我这边设置好了,在登录界面一直连接不上数据库
Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
设置好了,mysql镜像有问题......
怎么解决的?
是的,只要任何解析到你服务器的域名都可以访问。
博主,您好:
通过snap搭建的NC,显示不出来目录及文件,而且页面上的所有链接都无响应大概意思是首页进不去?
已经登进去了,但是里头的文件,共享这些模块都点不进去
你是指左边的目录?我用的时候没这个问题。你直接用docker安装吧,这个方便些。
我已经用了snap安装,而且里面有很多数据了,这个能否扩容
这个我倒没研究过,一般都是安装和基本功能使用没问题了,我就不管了。
大佬,安装界面报Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory,数据库配置最后一行localhost需要加其他的端口号吗?
忘了,这个只能用Sqlite数据库,Mysql要用docker-compose.yml文件,我没写那个方法。
感谢回复,自己翻原git搞定了MariaDB,有个新疑问想请教下就是跑了两天后提示有新版本14.0.6,这要怎么升级呢?谢谢
这个自己更新有点复杂,需要熟悉Docker,只能等镜像作者更新吧。
收到作者更新的邮件了……可是咋升呢 用什么命令么?升了数据还在不在呢
重新创建镜像,映射的文件夹不变。或者映射的新文件夹和原文件夹数据一样。
老哥 试了下 还是没搞明白怎么安装。也看了原git的说明了。
安装界面一直提示数据目录无法写入。
这个数据目录到底是个神马东西呢。
照着文章来就行,已经很小白了,后面的权限问题我自己测试没遇到,你可能需要对外部的文件夹加权限,你试试chmod -R 777 /root/nextcloud。
这个是否可以启用 SSL ?
可以的,我更新下这个教程吧。
第一次配置时出现504,进容器改了nginx的配置还是没有用
大佬,如何解决这个问题?
看是不是带不动,我没出现这问题,你加点swap试试。
跟服务器配置没有关系,刚开始用1核1G的云服务器搭建的,后改成本地2核4G的搭建,首次配置都会出现504
那就不是很清楚了。
大佬,你这个默认数据库密码是多少呀,用了以后不知道怎么抓里面的数据
数据库root密码secret,nextcloud数据库,用户名,密码,分别是nextcloud、nextcloud、secret。如果不正确请留言。
这个我倒没注意看,我有空看下。
同求默认数据库密码!找到可以发我邮箱 吗? Pzhier@163.com 谢谢!
数据库root密码secret,nextcloud数据库,用户名,密码,分别是nextcloud、nextcloud、secret。如果不正确请留言。
谢谢你,我已经学会如何安装NC了。还想学习一下如何整合onlyoffice,要是博主有文章推荐,就再感激不过了。
onlyoffice是收费的吗
大佬,如何修改nextcloud网盘数据库为以前教程里一键aria2+filebrower的数据库啊?顺便问一下端口改成800是不是命令要改成800:800啊
你是说的改存储目录?端口只改前面的-p 800:80。
是的我想问下怎么修改储存目录,改成前面教程Aria2+AriaNg+Filebrowser的下载目录
把-v参数后面的文件夹改成你的存储目录就行了。
win10上docker安装nextrcloud行么,我装完访问直接400报错。。。。
这个没试过Win安装,所以暂时不是很清楚。
请问怎么配置ssl文件
这个就是临时用用,暂时还找不到配置简单,又带域名及ssl的镜像,你要域名并配置ssl的话,可以试试snap,教程:https://www.moerats.com/archives/429/。
安装镜像的时候,直接选择带有容器的镜像,会比较好,注意要开放服务器端口,不然无法访问的。
help!!!
You are accessing the server from an untrusted domain.
Please contact your administrator. If you are an administrator of this instance, configure the "trusted_domains" setting in config/config.php. An example configuration is provided in config/config.sample.php.
Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain.
这个问题是端口更换了 在config.php里面把端口改跟你实际的一样就解决了
这个你就需要用谷歌翻译,然后看提示解决。
那么上传的文件放在哪里呢?
默认站点呢,,,端口绑定失败
什么提示。
适合ubuntu14么?
可以的。
访问是个ip:端口/nextcloud
页面报错403
Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.
If you think this is a server error, please contact the webmaster.
因为访问的是80,访问443就好了
但是安装的时候报
Can't create or write into the data directory /home/wwwroot/nextcloud/data权限问题,更新下权限就好了。
执行了,还是不行
换个系统试试吧,不知道具体情况不好说。
root@heimo:/home/heimo# docker exec -it nc sh -c 'set-nc-perms runtime'
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess
chmod/chown .user.ini
教程写的访问https即443端口。可以试下snap安装nextcloud,也很快。
centos7.4失败。。。
本教程Docker安装方法不适用于CentOS。
谷歌云的CENTOS7安装成功并使用