用Nextcloud在树莓派上布置你的个人网盘“NAS”

这次用的是目前最新的 Raspbian Stretch 系统,基于 Debian 9

软件程序是 Nextcloud 12.0.4

因为只想在局域网上使用,所以使用最简布署方式,相当于是最少的配置。

所以,这份方案不建议用在对外的服务器上,不够安全。

·>>> 14/01/2018. 17:00 write.

1)下载程式镜像:

参考命令:

links https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip

官方页面:传送门

2)安装依赖软件及布置文件系统:

a) 安装依赖软件:

因为我有其他的网站跑的 Nginx ,所以这里我也选用了 Nginx.

一是好一起管理,二是相对 Apache2 来说比较轻一点,毕竟派的性能就那么点。

Apache 方案的可以参考官方给的教程,相当容易就架上来了 Tutorial Page

参考命令:

# 切成 root 用户, 不切换的话下面所有命令都要在前面加 sudo
sudo su # apt 安装所有依赖软件
# nginx 方案要用 Php-Fpm,
# Nextcloud 只能支持到 7.0 版本的 Php
apt install php7.0fpm nginx
apt install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
apt install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip # 安装 MySQL 相关
apt install mysql-server # apt install mysql-client && sudo apt-get install libmysqlclient-dev
# 这里第二句不用运行,因为发现在派上运行第一句时它会自动把全部都装好。
# 而且都不用设置 root 密码了。再而且,它装的是 MariaDB 而不是 MySQL. 不过这不影响。
b) 布置文件系统:

注意:下面命令中的所有路径如果你用的不一样要注意替换

参考命令:

# 切成 root 用户, 不切换的话下面所有命令都要在前面加 sudo
sudo su # 解压镜像
unzip nextcloud-12.0.4.zip # 创建目录并移动程序到你要的目录里
mkdir /www && mv nextcloud /www/nextcloud # 修改权限相关
cd /www
chmod -R 0770 nextcloud/
chown -R www-data nextcloud/
chgrp -R www-data nextcloud/ # 创建数据目录并修改权限
mkdir nextcloud.data
chmod -R 0770 nextcloud.data/
chown -R www-data nextcloud.data/
chgrp -R www-data nextcloud.data/ # 创建 .log 和 .sock 文件
/www/logs/nextcloud/ 目录下创建 access.log 和 error.log
/run/php/ 目录下创建 php7.0-fpm.sock 到这文件系统就设置好了
c) 布置数据系统:

参考命令:

# 设置 root 密码
mysqladmin -u root -p password YOUR_PASSWORD_HERE # 用 root 登入
mysql -uroot -p
# 这下面的所有命令都在 SQL Shell 里面执行:

# 创建数据库
create database nextcloud; # 创建用户及加权限
create user 'www'@'localhost' identified by 'YOUR_PASSWORD_HERE';
grant all privileges on nextcloud.* to 'www'@'localhost' identified by 'YOUR_PASSWORD_HERE'; # 到这里就设置好了。其他的程序会自己处理。

3)设置 Php 相关:

修改 /etc/php/7.0/fpm/php.ini 文件内容:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Shell 中运行 printenv PATH 复制得到的内容

修改 /etc/php/7.0/fpm/pool.d/www.conf 文件内容:

env[PATH] = 上面你得到的内容

4)设置 Nginx 相关:

/etc/nginx/sites-available/ 下创建 nextcloud.conf 文件

下面是我的派上的设置,非常简单的设置,用 Http 而不用 Https.

内容参考:

upstream php-handler {
# 这里可以用下面两种方案,我比较喜欢直接用 .sock 文件映射
# server 127.0.0.1:9000;
server unix:/run/php/php7.0-fpm.sock;
} server {
# 监听 80 端口,无域名,文件路径
listen 80;
server_name _;
root /www/nextcloud; # 字符集设置
charset utf-8; # 日志,和前面创建的要对应到
access_log /www/logs/nextcloud/access.log;
error_log /www/logs/nextcloud/error.log; # 这些 add_header 不要也行
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; # location 设置
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
} location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
} location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
} # 最大上传大小
client_max_body_size 512M;
fastcgi_buffers 64 4K; # Gzip设置
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; # location 设置
location / {
rewrite ^ /index.php$uri;
} location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
} location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
} # Php 相关
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-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 off; #Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
} location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
} # Js Css 缓存设置
# 这块要在 Php 的设置下面写
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
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;
access_log off;
} # 静态文件相关
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
}

5)设置:

到这就全部做完了,打开对应的 IP 地址,进行页面设置:

  1. 创建超管的账号
  2. 将数据文件夹指向我们上面创建的 /www/nextcloud.data 文件夹
  3. 将数据库指向我们上面创建的用户:

大致如下,如果你改了端口之类的就照着改就行了,

注意一点,数据库和这里都要用 localhost 不要用127.0.0.1,因为我发现我一开始用的 127.0.0.1 它不能识别,原因不详,也可能我是个例。

Database User:     www
Database Password: YOUR_PASSWORD_HERE
Database Name: nextcloud
Database Host: localhost:3306

5)其他:

为什么我要选用这个程序呢?

因为它的功能太强大了!装完设置好后别忘了点右上的 “ 设置 > 应用 ” !里面的应用市场超丰富的。你需要任何东西基本都能有,像比如说:

  • 在线聊天、视频通话、备份手机
  • 应用看板
  • Youtube, Http, Https, BT 下载
  • 创建网站
  • 保险箱应用、密码管理
  • GPS 相关记录、编辑
  • DrawIO 的思维导图
  • Markdown 编辑
  • Office 在线编辑
  • 各种在线编辑在线预览……

记得上这里看看:应用市场

用Nextcloud在树莓派上布置你的个人网盘“NAS”的更多相关文章

  1. Linux命令行上传文件到百度网盘

    利用bpcs_uploader你可以自动将VPS主机上的文件上传到百度网盘中,同时也可以从百度网盘中下载文件到VPS主机上,让你的文件安全地"住"在百度云中.[font=Tahom ...

  2. Mac上利用Aria2加速百度网盘下载

    百度网盘下载东西的速度那叫一个慢,特别是大文件,看着所需时间几个小时以上,让人很不舒服,本文记录自己在mac上利用工具Aria2加速的教程,windows下思路也是一样! 科普(可以不看) 这里顺带科 ...

  3. 在win64上使用bypy进行百度网盘文件上传

    阿里云服务器的带宽为2M,网站每日的备份包都3G多了,离线下载太费时间了,打算每日将备份包自动上传到自己的百度云盘里.1.先安装Python 执行python -V ,发现没安装python2.去py ...

  4. linux下通过命令行上传文件到百度网盘

    一.环境: centos release 6.9 python 2.7.13 二.安装工具bypy sudo pip install bypy 三.使用bypy 3.1 授权 [root@ineedl ...

  5. [E2E_L9]Linux命令行上传文件到百度网盘

    百度有2TB 存储空间,在有第三方服务器的情况下,很多东西不需要下载到本地,可以直接使用服务转存,这非常好. 系统环境: Linux 系统 + Python 2.7 安装软件工具:[可能会要重复装] ...

  6. [转]Linux命令行上传文件到 百度网盘 bypy

    安装软件工具: apt-get install python-pip pip install requests pip install bypy 授权登陆: 执行 bypy info,显示下边信息,根 ...

  7. Python编程第四版中文 上下册完整版pdf|网盘下载附提取码

    点击此处下载 提取码:drjh 作者简介 Mark Lutz是Python培训的世界的领先者,他是最初和最畅销的Python著作的作者,从1992年起就是Python社区的先锋人物.Mark有25年的 ...

  8. Linux下使用nextcloud搭建个人网盘

    市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因: 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云) 付费网 ...

  9. 在树莓派上部署InfoPi

    如果仅仅想试用InfoPi,请参照此文在Windows上试用.在Windows上部署比在树莓派上部署简单得多. 先说明一下,我用的系统是Raspbian(2014-06-20发布的). 用户pi,工作 ...

随机推荐

  1. 【NX二次开发】缝合片体例子UF_MODL_create_sew

    缝合片体,没有成功缝合的片体涂绿色. 效果:  源码: extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF ...

  2. 【NX二次开发】 获取产品曲面上多个点对应的面的垂直矢量!

    说明:选择一个产品面,选择面上的点,生成点在此面上的法线反向,生成直线.生成矢量的起点坐标,和矢量方向信息.可用于三坐标测量,如果需要可以自己编个插件用! 效果图: 源码: //----------- ...

  3. 聚类算法K-Means算法和Mean Shift算法介绍及实现

    Question:什么是聚类算法 1.聚类算法是一种非监督学习算法 2.聚类是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法 3.理论上,相同的组的数据之间有相同的属性或者是特征,不 ...

  4. 基于Ubuntu下以Docker方式gitlab软件的部署

    基于Ubuntu下以Docker方式gitlab软件的部署 目录 基于Ubuntu下以Docker方式gitlab软件的部署 1.安装Docker Compose 1.1 下载curl 1.2 安装c ...

  5. SpringCloud入门及创建分布式项目

    1.了解微服务 1.1 什么是微服务 微服务是一种架构风格 一个应用拆分为一组小型服务 每个服务运行在自己的进程内,也就是可独立部署和升级 服务之间使用轻量级HTTP交互 服务围绕业务功能拆分 可以由 ...

  6. external-provisioner源码分析(2)-main方法与Leader选举分析

    更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 external-provisioner源码分析(2)-main方法与Leader选举分析 本 ...

  7. PUN丨实用API

    原文地址:PUN丨实用API 当前房间人数 int num = PhotonNetwork.CurrentRoom.PlayerCount; 当前脚本是否属于当前玩家 //需继承MonoBehavio ...

  8. TS基础应用 & Hook中的TS

    说在前面 本文难度偏中下,涉及到的点大多为如何在项目中合理应用ts,小部分会涉及一些原理,受众面较广,有无TS基础均可放心食用. **>>>> 阅完本文,您可能会收获到< ...

  9. 19、oracle的启动和关闭过程

    19.1.oracle数据库实例的启动分三步: 1.启动oracle例程: startup nomount; #读初始化参数文件,启动实例,但不安装数据库.当数据库以这个模式启动时,参数文件被读取, ...

  10. 一、.Net Core 依赖注入详解及Autofac使用

    .NET中的依赖注入实际上帮助我们解耦了我们的代码,是控制反转和依赖反转原则的具体实现. .Net Core的依赖注入的好处: 1. application 更稳定,容易维护和演化: 2. 实现细节的 ...