docker安装nextcloud私人网盘

之前一直用的百度网盘最近svip超级会员到期了,续费要¥199元,对于一个打工人的我来说有点儿贵.作为技术人的一员,我就来发挥发挥自己的长处,来搭建一个私人网盘用用!

功能介绍

软件名:nextcloud给你的数据一个家

  • 设置本地同步文件夹,文件夹中的文件自动同步到云
  • 客户端支持手机端、PC端、苹果app store
  • 自动备份手机上的照片到云
  • 支持各种丰富的插件各种功能应有尽有
  • 免费开源、社区活跃
  • 安装完maps插件可以将你手机备份上来的照片自动显示到地图上噢非常的好用、像下面这样

安装服务端

准备工作:通过ssh连接到服务器一台linux服务器

  • 第一步安装docker

    1. 卸载有可能存在的旧版本的docker

      1. sudo yum remove docker \
      2. docker-client \
      3. docker-client-latest \
      4. docker-common \
      5. docker-latest \
      6. docker-latest-logrotate \
      7. docker-logrotate \
      8. docker-engine
    2. 安装需要的工具

      1. sudo yum install -y yum-utils
    3. 配置安装源(阿里源)# 源不可用的话可以自行百度搜索docker 阿里源

      1. sudo yum-config-manager \
      2. --add-repo \
      3. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    4. 安装最新版本的 Docker Engine-Community 和 containerd

      1. yum install docker-ce docker-ce-cli containerd.io
    5. 启动docker

      1. systemctl start docker
    6. 运行docker的hello world验证docker是否安装成功

      1. docker run hello-world
  • 第二部安装mysql

    1. docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的数据库密码 -d mysql

    这里要保证宿主服务器的3306端口没有被占用

  • 第三步安装nextcloud

    这里要安装的是nextcloud:fpm版本,后面会用nginx代理到nextcloud的fpm 9000端口。使用nginx的为了方便开启https访问部署证书,因为nextcloud的很多插件和功能要求使用https访问才能够使用

    1. docker run -d \
    2. --name nextcloud \
    3. -v /home/xiner/nextcloud:/var/www/html \
    4. --link mysql:mysql \
    5. nextcloud:fpm
  • 第四步安装nginx

    1. docker run -d \
    2. --name nginxfornextcloud \
    3. -p 8080:80 \
    4. -p 4433:443 \
    5. -v /home/xiner/nextcloud:/var/www/html \
    6. -v /docker/volumns/nginx/nginx.conf:/etc/nginx/nginx.conf \
    7. -v /docker/volumns/nginx/conf.d:/etc/nginx/conf.d \
    8. -v /docker/volumns/nginx/ssl_certs:/etc/nginx/ssl_certs \
    9. --link mysql:mysql \
    10. --link nextcloud:nextcloud \
    11. nginx

    这里的/home/xiner/nextcloud要与第三步的/home/xiner/nextcloud挂在路径保持一致

  • 第五部修改配置nginx

    将你的ssl证书放入第四步挂载的宿主服务器目录:/docker/volumns/nginx/ssl_certs 下

    新建一个配置文件default.conf内容如下,放入第四步中挂载的宿主服务器目录:/docker/volumns/nginx/nginx.conf 下

    1. upstream php-handler {
    2. server nextcloud:9000;
    3. }
    4. server {
    5. listen 80;
    6. listen [::]:80;
    7. server_name localhost;
    8. # enforce https
    9. return 301 https://$server_name:443$request_uri;
    10. }
    11. server {
    12. listen 443 ssl http2;
    13. listen [::]:443 ssl http2;
    14. server_name localhost;
    15. # Use Mozilla's guidelines for SSL/TLS settings
    16. # https://mozilla.github.io/server-side-tls/ssl-config-generator/
    17. # NOTE: some settings below might be redundant
    18. ssl_certificate /etc/nginx/ssl_certs/你的证书.pem;
    19. ssl_certificate_key /etc/nginx/ssl_certs/你的证书.key;
    20. # Add headers to serve security related headers
    21. # Before enabling Strict-Transport-Security headers please read into this
    22. # topic first.
    23. #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    24. #
    25. # WARNING: Only add the preload option once you read about
    26. # the consequences in https://hstspreload.org/. This option
    27. # will add the domain to a hardcoded list that is shipped
    28. # in all major browsers and getting removed from this list
    29. # could take several months.
    30. add_header X-Content-Type-Options nosniff;
    31. add_header X-XSS-Protection "1; mode=block";
    32. add_header X-Robots-Tag none;
    33. add_header X-Download-Options noopen;
    34. add_header X-Permitted-Cross-Domain-Policies none;
    35. add_header Referrer-Policy no-referrer;
    36. add_header Strict-Transport-Security 15552000;
    37. # add_header X-Frame-Options SAMEORIGIN;
    38. # Remove X-Powered-By, which is an information leak
    39. fastcgi_hide_header X-Powered-By;
    40. # Path to the root of your installation
    41. root /var/www/html;
    42. # The following 2 rules are only needed for the user_webfinger app.
    43. # Uncomment it if you're planning to use this app.
    44. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    45. #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
    46. # The following rule is only needed for the Social app.
    47. # Uncomment it if you're planning to use this app.
    48. #rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
    49. location = /.well-known/carddav {
    50. return 301 $scheme://$host:$server_port/remote.php/dav;
    51. }
    52. location = /.well-known/caldav {
    53. return 301 $scheme://$host:$server_port/remote.php/dav;
    54. }
    55. # set max upload size
    56. client_max_body_size 512M;
    57. fastcgi_buffers 64 4K;
    58. # Enable gzip but do not remove ETag headers
    59. gzip on;
    60. gzip_vary on;
    61. gzip_comp_level 4;
    62. gzip_min_length 256;
    63. gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    64. gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
    65. # Uncomment if your server is build with the ngx_pagespeed module
    66. # This module is currently not supported.
    67. #pagespeed off;
    68. location / {
    69. rewrite ^ /index.php$request_uri;
    70. }
    71. location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
    72. deny all;
    73. }
    74. location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
    75. deny all;
    76. }
    77. location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
    78. fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
    79. include fastcgi_params;
    80. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    81. fastcgi_param PATH_INFO $fastcgi_path_info;
    82. fastcgi_param HTTPS on;
    83. # Avoid sending the security headers twice
    84. fastcgi_param modHeadersAvailable true;
    85. # Enable pretty urls
    86. fastcgi_param front_controller_active true;
    87. fastcgi_pass php-handler;
    88. fastcgi_intercept_errors on;
    89. fastcgi_request_buffering off;
    90. }
    91. location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
    92. try_files $uri/ =404;
    93. index index.php;
    94. }
    95. # Adding the cache control header for js, css and map files
    96. # Make sure it is BELOW the PHP block
    97. location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
    98. try_files $uri /index.php$request_uri;
    99. add_header Cache-Control "public, max-age=15778463";
    100. # Add headers to serve security related headers (It is intended to
    101. # have those duplicated to the ones above)
    102. # Before enabling Strict-Transport-Security headers please read into
    103. # this topic first.
    104. #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    105. #
    106. # WARNING: Only add the preload option once you read about
    107. # the consequences in https://hstspreload.org/. This option
    108. # will add the domain to a hardcoded list that is shipped
    109. # in all major browsers and getting removed from this list
    110. # could take several months.
    111. add_header X-Content-Type-Options nosniff;
    112. add_header X-XSS-Protection "1; mode=block";
    113. add_header X-Robots-Tag none;
    114. add_header X-Download-Options noopen;
    115. add_header X-Permitted-Cross-Domain-Policies none;
    116. add_header Referrer-Policy no-referrer;
    117. # Optional: Don't log access to assets
    118. access_log off;
    119. }
    120. location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
    121. try_files $uri /index.php$request_uri;
    122. # Optional: Don't log access to other assets
    123. access_log off;
    124. }
    125. }

    放好配置文件后重启nginx docker restart nginxfornextcloud

  • 第六部安装完成

    经过上面五步你的私人云盘就搭建成功了!是不是特别简单,现在访问的的nginx的监听端口吧,我的第四步映射的端口为4433所以访问

    https://[你的服务器IP]:4433

    输入你的网盘管理员用户名和密码。这里数据库的主机名要填写你第三步安装nextcloud时候的--link mysql:mysql对应我这里应该数据库主机名填写:mysql

    然后点击安装等待安装完成就可以了。

  • 第七步 探索你的私人网盘吧

docker安装nextcloud私人网盘,开启https配置证书的更多相关文章

  1. 搭建LAMP环境部署Nextcloud私人网盘

    搭建 LAMP 环境部署 Nextcloud 私人网盘 前言 Nextcloudd 是一个开源的.基于本地的文件共享和协作平台,它允许您保存文件并通过多个设备(如PC.智能手机和平板电脑)访问它们. ...

  2. Docker部署Nextcloud私有网盘

    对于国内某度的网盘限速行为大家有目共睹,不过对于商业化的产品模式这样也无可厚非,毕竟企业也是盈利为目的.如果想享受互联网技术带来的便利,刚好也懂一点技术的话可以尝试搭建属于私有的网盘.个人比较推荐的是 ...

  3. 使用Docker搭建Nextcloud私有网盘

    一.准备材料 安装环境:linux 工具:docker 软件:MySql.Nextcloud 二.安装Docker 安装Docker:https://www.cnblogs.com/jzcn/p/15 ...

  4. 阿里云服务器ECS Ubuntu16.04 + Seafile 搭建私人网盘 (Seafile Pro)

    原文链接:? 传送门 本文主要讲述 使用 Ubuntu 16.04 云服务器 通过脚本实现对 Seafile Pro 的安装,完成私人网盘的搭建 首先给出 Seafile 专业版的下载地址(Linux ...

  5. 私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)shang

    网盘系统2.0   上周,我做了第一版的“私人网盘系统”,http://www.cnblogs.com/sunlizheng/p/7822036.html 没看过的朋友可以去看一下,这周在家升级做了第 ...

  6. ubuntu服务器 安装 seafile 个人网盘

    目录 ubuntu服务器 安装 seafile 个人网盘 一.实验环境: 二.实验流程介绍 三.网盘搭建 1.安装依赖环境 2.安装seafile 三.配置QQ域名邮箱 四.配置seafile邮件服务 ...

  7. 基于Ubuntu + nextCloud 搭建自己的私人网盘

    系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 基础设置 切换为 root 账号 Ubutu 系统默认登录的用户为非 root 权限用户,为了能正常安装 nextCloud,需要切换 ...

  8. Mac系统下,docker安装nextcloud,打造个人本地网盘

    1.安装docker 推荐下载地址:http://get.daocloud.io/#install-docker-for-mac-windows   2.拉取镜像 $ docker pull next ...

  9. 基于 Ubuntu + nextCloud 搭建自己的私人网盘

    提醒一下,如果之前通过apache搭建了网站,不要用snap命令来搭建,否则,至少有一个无法正常运行(不要问我怎么知道的,都是血的教训啊). 你可以通过腾讯云的实验主机进行尝试. 1.基础设置 切换为 ...

随机推荐

  1. ElasticSearch7.10.0入门学习

    ElasticSearch完成最关键的一个功能就是 大数据搜索 官网:https://www.elastic.co/cn/elasticsearch/ 简介 Elasticsearch 是一个分布式全 ...

  2. Docker+Nginx配置SSL

    参考阿里云文档教程 前提条件 购买服务器的服务商开启443端口和服务器已开启443端口(https的默认端口) nginx容器已经安装http_ssl_module模块(启用SSL功能) 下面的教程基 ...

  3. 【SpringMVC】数据校验时,抛出javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.util.Date.

    老魏原创,转载请留言. 原因:给Javabean中的字段注解多余或者错误导致. @NotEmpty @Past @DateTimeFormat(pattern="yyyy-MM-dd&quo ...

  4. big data-1

  5. Django(7)url命名的作用

    前言 为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例 案例 我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件 ...

  6. Redis内存——内存消耗(内存都去哪了?)

    最新:Redis内存--三个重要的缓冲区 最新:Redis内存--内存消耗(内存都去哪了?) 最新:Redis持久化--如何选择合适的持久化方式 最新:Redis持久化--AOF日志 更多文章... ...

  7. OO第1.2次作业·魔鬼的三角函数化简

    多年以后,面对办公室的屏幕,我会回忆起开始肝第二周OO作业的那个遥远的下午.那时的程序是一个一两百行的符号求导,基类与接口在包里一字排开,工整的注释一望到底 谁能想到,接下来的十几个小时我要经历什么样 ...

  8. ES6学习-4 解构赋值(1)数组的解构赋值

    解构赋值是ES6很大的一个提升,为我们带来了很多方便,但用不好,会使程序的可读性变差,所以用时要注意,尽量保持程序的易读性. 数组解构赋值 在JS没有支持解构赋值之前,我们声明几个变量并赋值通常都是像 ...

  9. 24.Qt Quick QML-Canvas和Context2D详解

    1.Canvas介绍Canvas是一个允许绘制直线和曲线.简单和复杂的形状.图形和引用的图形图像.它还可以添加文本.颜色.阴影.渐变和图案,并执行低级别像素操作.Canvas输出可以另存为图像文件或序 ...

  10. mysql知识点归纳-锁(死锁)

    愿历尽千帆,归来仍是少年 所遇问题: MySql 更新死锁问题 Deadlock found when trying to get lock; try restarting transaction 场 ...