使用树莓派搭建Nextcloud私有云 | Sakitami的集装箱

使用树莓派搭建Nextcloud私有云

写在开头

Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。
本文将介绍如何在树莓派3B Raspbian 中安装Nextcloud。

本来我没有写这篇文章的打算,但是通过中文搜索引擎(x度)搜到的一大堆教程,基本都无法正确安装,所以就自己摸索,完美安装了Nextcloud。
Nextcloud官网链接

安装Raspbian、SSH链接

参考使用树莓派3B制作AWTRIX时钟(上)/)

Raspbian更换软件源

首先,我们需要更换一个更快的软件源,否则接下来的操作非常耗时。

  • 编辑 /etc/apt/sources.list 文件,删除原文件所有内容,用以下内容取代:

    1
    2
    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
    deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
  • 编辑 /etc/apt/sources.list.d/raspi.list 文件,删除原文件所有内容,用以下内容取代:

    /etc/apt/sources.list.d/raspi.list
    1
    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main
  • 更新软件源

    1
    sudo apt-get update && sudo apt-get upgrade -y

安装所需依赖

  • 注意,若直接安装php等包,则可能安装到7.0版本的php,而nextcloud16最低要求7.1版本,所以请勿直接安装php等包。

错误信息:

解决方法参阅文章末尾故障排除。


  • 安装软件源拓展工具

    安装软件源拓展工具
    1
    sudo apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
  • 添加GPG

    添加 GPG
    1
    wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg
  • 添加sury软件源

    添加 sury 软件源
    1
    sh -c 'echo "deb https://mirror.xtom.com.hk/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  • 更新软件源缓存

    更新软件源缓存
    1
    sudo apt-get update
  • 安装 PHP7.3、Apache2等

    安装 PHP7.3
    1
    2
    sudo apt install php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-opcache -y
    sudo apt install mlocate apache2 libapache2-mod-php mariadb-client mariadb-server wget unzip bzip2 curl php php-common php-curl php-gd php-mbstring php-mysql php-xml php-zip php-intl php-apcu php-redis php-http-request

过程图

开启支持exfat

1
2
sudo apt-get install exfat-utils
sudo reboot now

通过fdisk了解你的硬盘的路径

1
sudo fdisk -l  //或lsblk


这里,我得到的路径为'/dev/sda',我将用此路径进行下一步操作。

  • 格式化硬盘为ext4格式
    格式化硬盘为ext4格式
    1
    sudo mkfs.ext4 /dev/sda

挂载

创建硬盘挂载点/home/pi/sda

1
mkdir /home/pi/sda

挂载硬盘

1
sudo mount -t ext4 /dev/sda /home/pi/sda

设置为开机自动挂载

/etc/fstab
1
sudo nano /etc/fstab

加入以下文字

/etc/fstab
1
/dev/sda     /home/pi/sda       ext4      defaults      0      0

创建Apache2 nextcloud配置文件

创建nextcloud.conf,加入如下文字

/etc/apache2/sites-available/nextcloud.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/nextcloud
Alias /nextcloud "/var/www/nextcloud/"

<Directory "/var/www/nextcloud/">
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

Require all granted

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>

ErrorLog ${APACHE_LOG_DIR}/nextcloud_error_log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access_log common
</VirtualHost>

过程图

创建MariaDB 数据库和用户

登录MariaDB控制台:

1
sudo mysql -u root

1
2
3
4
5
CREATE DATABASE nextcloud; //创建新nextcloud数据库
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '密码'; //创建新的数据库用户'nextcloud',其中,'密码'部分键入你的密码
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; //将数据库的权限分配给'nextcloud'用户
FLUSH PRIVILEGES; //应用更改
exit //退出控制台

输出
输出

安装Nextcloud

进入/var/www目录。

/var/www
1
cd /var/www

下载Nextcloud.zip文件并提取其中文件

{%note danger%}

注意

目前最新版本的Nextcloud为16.0.3
{%endnote%}

/var/www
1
2
sudo wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
sudo unzip nextcloud-16.0.1.zip
  • 这里,我将nextcloud-16.0.1.zip同时保存到了我的Nextcloud上,可以点击下载

    修改权限

1
2
sudo chown -R www-data:www-data nextcloud   //将nextcloud目录中所有文件的所有者和组更改为www-data
sudo chown -R www-data:www-data /home/pi/sda //将数据目录中所有文件的所有者和组更改为www-data

使用命令启用nextcloud

1
2
3
sudo a2ensite nextcloud.conf      //启用nextcloud.conf站点配置
sudo a2dissite 000-default.conf //禁用默认站点配置000-default.conf
sudo systemctl restart apache2 //重新启动apache2

将apache2和mariadb添加到系统服务

1
sudo systemctl enable apache2 mariadb

输出

现在,您应该能通过树莓派的IP地址打开Nextcloud。

配置Nextcloud

创建一个管理员用户,自行创建。

  • 点击下方的箭头,选择MariaDB作为数据库。

  • 输入你的数据存放目录,我的是/home/pi/sda

  • 点击安装完成,并稍等一段时间。

安装完成

故障排除

列举了部分Nextcloud安装时的故障。

PHP版本过低

施工中

缺失PHP插件(各种)

赞助一杯冰阔落🥤