用Nextcloud在树莓派上布置你的个人网盘“NAS”
用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 地址,进行页面设置:
- 创建超管的账号
- 将数据文件夹指向我们上面创建的
/www/nextcloud.data文件夹 - 将数据库指向我们上面创建的用户:
大致如下,如果你改了端口之类的就照着改就行了,
注意一点,数据库和这里都要用 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”的更多相关文章
- Linux命令行上传文件到百度网盘
利用bpcs_uploader你可以自动将VPS主机上的文件上传到百度网盘中,同时也可以从百度网盘中下载文件到VPS主机上,让你的文件安全地"住"在百度云中.[font=Tahom ...
- Mac上利用Aria2加速百度网盘下载
百度网盘下载东西的速度那叫一个慢,特别是大文件,看着所需时间几个小时以上,让人很不舒服,本文记录自己在mac上利用工具Aria2加速的教程,windows下思路也是一样! 科普(可以不看) 这里顺带科 ...
- 在win64上使用bypy进行百度网盘文件上传
阿里云服务器的带宽为2M,网站每日的备份包都3G多了,离线下载太费时间了,打算每日将备份包自动上传到自己的百度云盘里.1.先安装Python 执行python -V ,发现没安装python2.去py ...
- linux下通过命令行上传文件到百度网盘
一.环境: centos release 6.9 python 2.7.13 二.安装工具bypy sudo pip install bypy 三.使用bypy 3.1 授权 [root@ineedl ...
- [E2E_L9]Linux命令行上传文件到百度网盘
百度有2TB 存储空间,在有第三方服务器的情况下,很多东西不需要下载到本地,可以直接使用服务转存,这非常好. 系统环境: Linux 系统 + Python 2.7 安装软件工具:[可能会要重复装] ...
- [转]Linux命令行上传文件到 百度网盘 bypy
安装软件工具: apt-get install python-pip pip install requests pip install bypy 授权登陆: 执行 bypy info,显示下边信息,根 ...
- Python编程第四版中文 上下册完整版pdf|网盘下载附提取码
点击此处下载 提取码:drjh 作者简介 Mark Lutz是Python培训的世界的领先者,他是最初和最畅销的Python著作的作者,从1992年起就是Python社区的先锋人物.Mark有25年的 ...
- Linux下使用nextcloud搭建个人网盘
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因: 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云) 付费网 ...
- 在树莓派上部署InfoPi
如果仅仅想试用InfoPi,请参照此文在Windows上试用.在Windows上部署比在树莓派上部署简单得多. 先说明一下,我用的系统是Raspbian(2014-06-20发布的). 用户pi,工作 ...
随机推荐
- Xilinx Zynq FPGA Boards板
Xilinx Zynq FPGA Boards板 Xilinx Zynq FPGA Boards 介绍 Styx是一个易于使用的Zynq开发模块,具有Xilinx的Zynq ZC7020 SoC和FT ...
- 浪潮 ClusterEngineV4.0 任意命令执行
1.浪潮ClusterEngineV4.0 任意命令执行 影响版本 ClusterEngineV4.0 2.漏洞影响 远程代码执行 3.复现 fofa语句 title='TSCEV4.0' 抓包构造e ...
- 【题解】PIZZA 贪心
题目描述 Michael请N个朋友吃馅饼,但是每个朋友吃且仅吃一个馅饼的1/4.1/2或3/4.请你编程求出Michael至少需要买多少个馅饼. 输入输出格式 输入格式: 输入文件的第一行是整数N:接 ...
- JDK并发包二
JDK并发包二 线程复用--线程池 在线程池中,总有那么几个活跃的线程,当程序需要线程时可以从池子中随便拿一个控线程,当程序执行完毕,线程不关闭,而是将这个线程退会到池子,等待使用. JDK提供了一套 ...
- noConflict冲突处理机制
最近接手了一个古早项目,用的backbone,于是正好学习一下早期MVC框架的源码. 这篇主要写冲突处理机制,源码其实就一个函数,代码也很短.原理也很好理解,总结起来就是:每执行一次noConflic ...
- 【.NET 与树莓派】LED 数码管驱动模块——TM1638
LED 数码管,你可以将它看做是 N 个发光二级管的组合,一个灯负责显示一个段,七个段组合一位数字,再加一个小数点,这么一来,一位数码管就有八段.一般,按照顺时针的方向给每个段编号. 上图中的 h 就 ...
- theUnforgiven——项目冲刺
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018/ 小组号和队名 8组theUnforgiven ...
- Func委托与表达式树Expression
最近在写ORM框架,其中遇到一个难点,就是作为框架调用方如何将查询条件传入框架内.其中就用到了Expression. Func委托 要Expression先要了解Func委托,Func委托的样式是: ...
- js笔记10
1.闭包 封装:减少代码的冗余,提高代码的重复利用率 继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能 函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关 闭包的定 ...
- 【原创】Ingress-Nginx-Controller的Metrics监控源码改造简析
一.背景 目前我们的生产环境一层Nginx已经容器化部署,但是监控并不完善,我们期望其具有Ingress-Nginx-Controller组件上报监控的数据.这样可以建立请求全链路的监控大盘.有利于监 ...