在Raspberry Pi 2/3 中安装Nextcloud全指导

个人轻量级应用Next Cloud情况中,Raspberry Pi是理想的服务器:

  1. 安全
  2. 节能
  3. (不能说)

配置树莓派

安装没有桌面的映像。初始用户名pi,密码raspberry,进入以后使用passwd更改用户名。

使用raspi-config配置时区,键盘等,最好也一起打开SSH Server(或者在Windows可以读写的boot分区里建立一个名字是ssh的空文件,不要留后缀名!!)

配置wifi前可以用sudo iwlist wlan0 scan扫描无线网。然后

1
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下内容:

1
2
3
4
network={
ssid="你的SSID"
psk="你的密码"
}

对于隐藏SSID的无线网:

1
2
3
4
5
network={
ssid="yourHiddenSSID"
scan_ssid=1
psk="Your_wifi_password"
}

有几个无线网的时候,一起写上,设定优先级(priority)。

1
2
3
4
5
6
7
8
9
10
11
12
13
network={
ssid="HomeOneSSID"
psk="passwordOne"
priority=1
id_str="homeOne"
}
network={
ssid="HomeTwoSSID"
psk="passwordTwo"
priority=2
id_str="homeTwo"
}

然后sudo reboot后使用ifconfig查看IP地址。后续就可以在SSH终端中进行了。

开始配置环境

1
2
3
4
5
6
$ apt-get update
$ apt-get upgrade -y
$ apt-get dist-upgrade -y
$ rpi-update
$ apt-get autoremove
$ sudo reboot

以下的用root会方便一点

1
$ sudo su

1
2
3
4
5
6
7
$ sudo apt-get -y install apache2
$ sudo apt-get -y install php5
$ sudo apt-get -y install php5-gd
$ sudo apt-get -y install sqlite
$ sudo apt-get -y install php5-sqlite
$ sudo apt-get -y install php5-curl
$ sudo service apache2 restart

从官方下载,先看地址,https://nextcloud.com/install/,在Download那,找出下载地址,复制

1
$ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip

1
2
3
$ sudo mv nextcloud-12.0.0.zip /var/www/html
$ cd /var/www/html
$ sudo unzip -q nextcloud-12.0.0.zip

建数据目录

1
2
3
4
$ sudo mkdir -p /var/www/html/nextcloud/data
$ sudo chown www-data:www-data /var/www/html/nextcloud/data
$ sudo chmod 750 /var/www/html/nextcloud/data
$ ls -ld /var/www/html/nextcloud/data

应该是这样

1
drwxr-x--- 2 www-data www-data 4096 May 27 18:45 /var/www/html/nextcloud/data

然后:

1
2
$ cd /var/www/html/nextcloud
$ sudo chown www-data:www-data config apps

配置 Next Cloud

http://your Pis IP address/nextcloud访问你的树莓派云-_-。
会有一个建立管理员和初始化的过程。

提高PHP上传限制

1
$ sudo vi /etc/php5/apache2/php.ini

找出下面两行

post_max_size = 8M
upload_max_filesize = 2M

至少改成:

post_max_size = 20M
upload_max_filesize = 20M

这个如果喜欢也要改

1
2
cd /var/www/nextcloud
sudo nano .htaccess

find the line that says php_value upload_max_filesize 512M and the line below it that says php_value post_max_size 512M Change both to the size you want if in Gigs use a G if in Gigs

最后,重启服务生效

1
$ sudo service apache2 restart

获取公网地址并生效SSL(https)

如果有域名,把一个子域名(sub.)指向你的树莓派。没有域名的话,到www.noip.com申请一个动态域名。然后,有路由器的话,设个DMZ主机为树莓派的内网地址。开始获得SSL证书

1
2
3
4
5
apt install git -y
cd /etc
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo ./letsencrypt-auto

这个自动脚本要运行一段时间,会问你一系列问题,邮箱等等,问到域名的时候,一定把你的域名(如:xxx.ddns.net,可以多写,用空格或者逗号分开)填上才能获得SSL证书,这个证书是不用浏览器设置的,绑定到域名的。最后的几个选择是要不要把http的访问也转到https,建议转。脚本结束的时候应该你就有SSL了!访问一下试试看。https://xxx.ddns.net

然后

1
crontab -e

加上下面这行:

1
* 1 * * 1 /etc/certbot-auto renew --quiet

编辑配置文件,把你的域名加入nextcloud的准许访问里

1
sudo nano /var/www/nextcloud/config/config.php

加入

1
2
3
4
5
'trusted_domains' =>
array (
'demo.example.org',
'otherdomain.example.org',
),

配置访问

如果设置了域名和SSL,路由器等。最后要把这些设置成日常用的。比如不喜欢DMZ的,要把树莓派的443端口开到路由器上的一个端口。以后就可以用https://xxx.ddns.net:8888访问了。这种情况下https不能少。

Enjoy

Next Cloud的文件在服务器是默认不加密保存,可以用linux系统从tf卡中复制出来。

主要参考:
https://www.raspberrypi.org/forums/viewtopic.php?f=36&t=160874
http://unixetc.co.uk/2016/11/20/simple-nextcloud-installation-on-raspberry-pi/