2021-06-25

docker安装nextcloud私人网盘

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

功能介绍

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

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

安装服务端

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

  • 第一步安装docker

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

          sudo yum remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine
      
    2. 安装需要的工具

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

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

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

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

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

     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访问才能够使用

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

    docker run -d   \--name nginxfornextcloud \-p 8080:80 \-p 4433:443 \-v /home/xiner/nextcloud:/var/www/html \-v /docker/volumns/nginx/nginx.conf:/etc/nginx/nginx.conf  \-v /docker/volumns/nginx/conf.d:/etc/nginx/conf.d  \-v /docker/volumns/nginx/ssl_certs:/etc/nginx/ssl_certs \--link mysql:mysql  \--link nextcloud:nextcloud \nginx
    

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

  • 第五部修改配置nginx
    将你的ssl证书放入第四步挂载的宿主服务器目录:/docker/volumns/nginx/ssl_certs 下

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

    upstream php-handler {    server nextcloud:9000;}server {    listen 80;    listen [::]:80;    server_name  localhost;    # enforce https    return 301 https://$server_name:443$request_uri;}server {    listen 443 ssl http2;    listen [::]:443 ssl http2;    server_name localhost;    # Use Mozilla's guidelines for SSL/TLS settings    # https://mozilla.github.io/server-side-tls/ssl-config-generator/    # NOTE: some settings below might be redundant     ssl_certificate /etc/nginx/ssl_certs/你的证书.pem;     ssl_certificate_key /etc/nginx/ssl_certs/你的证书.key;    # Add headers to serve security related headers    # Before enabling Strict-Transport-Security headers please read into this    # topic first.    #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";    #    # WARNING: Only add the preload option once you read about    # the consequences in https://hstspreload.org/. This option    # will add the domain to a hardcoded list that is shipped    # in all major browsers and getting removed from this list    # could take several months.    add_header X-Content-Type-Options nosniff;    add_header X-XSS-Protection "1; mode=block";    add_header X-Robots-Tag none;    add_header X-Download-Options noopen;    add_header X-Permitted-Cross-Domain-Policies none;    add_header Referrer-Policy no-referrer;    add_header Strict-Transport-Security  15552000;   # add_header X-Frame-Options SAMEORIGIN;    # Remove X-Powered-By, which is an information leak    fastcgi_hide_header X-Powered-By;    # Path to the root of your installation    root /var/www/html;    # The following 2 rules are only needed for the user_webfinger app.    # Uncomment it if you're planning to use this app.    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;    # The following rule is only needed for the Social app.    # Uncomment it if you're planning to use this app.    #rewrite ^/.well-known/webfinger /public.php?service=webfinger last;    location = /.well-known/carddav {      return 301 $scheme://$host:$server_port/remote.php/dav;    }    location = /.well-known/caldav {      return 301 $scheme://$host:$server_port/remote.php/dav;    }    # set max upload size    client_max_body_size 512M;    fastcgi_buffers 64 4K;    # Enable gzip but do not remove ETag headers    gzip on;    gzip_vary on;    gzip_comp_level 4;    gzip_min_length 256;    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;    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;    # Uncomment if your server is build with the ngx_pagespeed module    # This module is currently not supported.    #pagespeed off;    location / {        rewrite ^ /index.php$request_uri;    }    location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {        deny all;    }    location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {        deny all;    }    location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {        fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;        include fastcgi_params;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param HTTPS on;        # Avoid sending the security headers twice        fastcgi_param modHeadersAvailable true;        # Enable pretty urls        fastcgi_param front_controller_active true;        fastcgi_pass php-handler;        fastcgi_intercept_errors on;        fastcgi_request_buffering off;    }    location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {        try_files $uri/ =404;        index index.php;    }    # Adding the cache control header for js, css and map files    # Make sure it is BELOW the PHP block    location ~ \.(?:css|js|woff2?|svg|gif|map)$ {        try_files $uri /index.php$request_uri;        add_header Cache-Control "public, max-age=15778463";        # Add headers to serve security related headers (It is intended to        # have those duplicated to the ones above)        # Before enabling Strict-Transport-Security headers please read into        # this topic first.        #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";        #        # WARNING: Only add the preload option once you read about        # the consequences in https://hstspreload.org/. This option        # will add the domain to a hardcoded list that is shipped        # in all major browsers and getting removed from this list        # could take several months.        add_header X-Content-Type-Options nosniff;        add_header X-XSS-Protection "1; mode=block";        add_header X-Robots-Tag none;        add_header X-Download-Options noopen;        add_header X-Permitted-Cross-Domain-Policies none;        add_header Referrer-Policy no-referrer;        # Optional: Don't log access to assets        access_log off;    }    location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {        try_files $uri /index.php$request_uri;        # Optional: Don't log access to other assets        access_log off;    }}
    

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

  • 第六部安装完成
    经过上面五步你的私人云盘就搭建成功了!是不是特别简单,现在访问的的nginx的监听端口吧,我的第四步映射的端口为4433所以访问
    https://[你的服务器IP]:4433

    输入你的网盘管理员用户名和密码。这里数据库的主机名要填写你第三步安装nextcloud时候的–link mysql:mysql对应我这里应该数据库主机名填写:mysql
    然后点击安装等待安装完成就可以了。

  • 第七步 探索你的私人网盘吧
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADN9Th0A-1624592016035)(https://myrgb.space:4433/s/k4ZafapWJMweBtn/preview)]

    # docker安装nextcloud私人网盘

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

功能介绍

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

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

安装服务端

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

  • 第一步安装docker

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

          sudo yum remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine
      
    2. 安装需要的工具

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

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

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

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

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

     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访问才能够使用

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

    docker run -d   \--name nginxfornextcloud \-p 8080:80 \-p 4433:443 \-v /home/xiner/nextcloud:/var/www/html \-v /docker/volumns/nginx/nginx.conf:/etc/nginx/nginx.conf  \-v /docker/volumns/nginx/conf.d:/etc/nginx/conf.d  \-v /docker/volumns/nginx/ssl_certs:/etc/nginx/ssl_certs \--link mysql:mysql  \--link nextcloud:nextcloud \nginx
    

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

  • 第五部修改配置nginx
    将你的ssl证书放入第四步挂载的宿主服务器目录:/docker/volumns/nginx/ssl_certs 下

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

    upstream php-handler {    server nextcloud:9000;}server {    listen 80;    listen [::]:80;    server_name  localhost;    # enforce https    return 301 https://$server_name:443$request_uri;}server {    listen 443 ssl http2;    listen [::]:443 ssl http2;    server_name localhost;    # Use Mozilla's guidelines for SSL/TLS settings    # https://mozilla.github.io/server-side-tls/ssl-config-generator/    # NOTE: some settings below might be redundant     ssl_certificate /etc/nginx/ssl_certs/你的证书.pem;     ssl_certificate_key /etc/nginx/ssl_certs/你的证书.key;    # Add headers to serve security related headers    # Before enabling Strict-Transport-Security headers please read into this    # topic first.    #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";    #    # WARNING: Only add the preload option once you read about    # the consequences in https://hstspreload.org/. This option    # will add the domain to a hardcoded list that is shipped    # in all major browsers and getting removed from this list    # could take several months.    add_header X-Content-Type-Options nosniff;    add_header X-XSS-Protection "1; mode=block";    add_header X-Robots-Tag none;    add_header X-Download-Options noopen;    add_header X-Permitted-Cross-Domain-Policies none;    add_header Referrer-Policy no-referrer;    add_header Strict-Transport-Security  15552000;   # add_header X-Frame-Options SAMEORIGIN;    # Remove X-Powered-By, which is an information leak    fastcgi_hide_header X-Powered-By;    # Path to the root of your installation    root /var/www/html;    # The following 2 rules are only needed for the user_webfinger app.    # Uncomment it if you're planning to use this app.    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;    # The following rule is only needed for the Social app.    # Uncomment it if you're planning to use this app.    #rewrite ^/.well-known/webfinger /public.php?service=webfinger last;    location = /.well-known/carddav {      return 301 $scheme://$host:$server_port/remote.php/dav;    }    location = /.well-known/caldav {      return 301 $scheme://$host:$server_port/remote.php/dav;    }    # set max upload size    client_max_body_size 512M;    fastcgi_buffers 64 4K;    # Enable gzip but do not remove ETag headers    gzip on;    gzip_vary on;    gzip_comp_level 4;    gzip_min_length 256;    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;    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;    # Uncomment if your server is build with the ngx_pagespeed module    # This module is currently not supported.    #pagespeed off;    location / {        rewrite ^ /index.php$request_uri;    }    location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {        deny all;    }    location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {        deny all;    }    location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {        fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;        include fastcgi_params;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param HTTPS on;        # Avoid sending the security headers twice        fastcgi_param modHeadersAvailable true;        # Enable pretty urls        fastcgi_param front_controller_active true;        fastcgi_pass php-handler;        fastcgi_intercept_errors on;        fastcgi_request_buffering off;    }    location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {        try_files $uri/ =404;        index index.php;    }    # Adding the cache control header for js, css and map files    # Make sure it is BELOW the PHP block    location ~ \.(?:css|js|woff2?|svg|gif|map)$ {        try_files $uri /index.php$request_uri;        add_header Cache-Control "public, max-age=15778463";        # Add headers to serve security related headers (It is intended to        # have those duplicated to the ones above)        # Before enabling Strict-Transport-Security headers please read into        # this topic first.        #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";        #        # WARNING: Only add the preload option once you read about        # the consequences in https://hstspreload.org/. This option        # will add the domain to a hardcoded list that is shipped        # in all major browsers and getting removed from this list        # could take several months.        add_header X-Content-Type-Options nosniff;        add_header X-XSS-Protection "1; mode=block";        add_header X-Robots-Tag none;        add_header X-Download-Options noopen;        add_header X-Permitted-Cross-Domain-Policies none;        add_header Referrer-Policy no-referrer;        # Optional: Don't log access to assets        access_log off;    }    location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {        try_files $uri /index.php$request_uri;        # Optional: Don't log access to other assets        access_log off;    }}
    

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

  • 第六部安装完成
    经过上面五步你的私人云盘就搭建成功了!是不是特别简单,现在访问的的nginx的监听端口吧,我的第四步映射的端口为4433所以访问
    https://[你的服务器IP]:4433

    输入你的网盘管理员用户名和密码。这里数据库的主机名要填写你第三步安装nextcloud时候的–link mysql:mysql对应我这里应该数据库主机名填写:mysql
    然后点击安装等待安装完成就可以了。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值