写在开头

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

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


注:以下文章可能已经过时,目前可以使用NextcloudPi系统直接在树莓派所有型号上运行next cloud。

NextcloudPi


安装Raspbian、SSH链接

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

Raspbian更换软件源

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

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

    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 文件,删除原文件所有内容,用以下内容取代:

    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main
  • 更新软件源

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

安装所需依赖

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

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


  • 安装软件源拓展工具

    sudo apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
  • 添加GPG

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

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

    sudo apt-get update
  • 安装 PHP7.3、Apache2等

    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

sudo apt-get install exfat-utils
sudo reboot now

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

sudo fdisk -l  //或lsblk


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

  • 格式化硬盘为ext4格式

    sudo mkfs.ext4 /dev/sda

挂载

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

mkdir /home/pi/sda

挂载硬盘

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

设置为开机自动挂载

sudo nano /etc/fstab

加入以下文字

/dev/sda     /home/pi/sda       ext4      defaults      0      0

创建Apache2 nextcloud配置文件

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

<VirtualHost *:80>
ServerAdmin [email protected]
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控制台:

sudo mysql -u root
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目录。

cd /var/www

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

注:请通过nextcloud官网查询最新nextcloud版本,并下载最新版本。以下命令纯属示范。

sudo wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip
sudo unzip nextcloud-16.0.1.zip

修改权限

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

使用命令启用nextcloud

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

将apache2和mariadb添加到系统服务

sudo systemctl enable apache2 mariadb

输出

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

配置Nextcloud

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

  • 点击下方的箭头,选择MariaDB作为数据库。
  • 输入你的数据存放目录,我的是/home/pi/sda
  • 点击安装完成,并稍等一段时间。

安装完成

故障排除

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

PHP版本过低

施工中

缺失PHP插件(各种)

最后修改:
赞助一杯冰阔落