【 地平线旭日X3派试用体验】组建nextcloud家庭私有云

一、背景

继开箱烧录完成系统后发现地平线旭日X3派的网卡是千兆网卡,顿时觉得也许可以使用旭日X3派搭个家庭私有云

正好手上有闲置的硬盘、硬盘盒,说干就干

二、准备工作

必需硬件:1块地平线旭日X3派

可选硬件:1块硬盘(对所选用硬盘基本无限制)、1个硬盘盒(需兼容所选用的硬盘,用于将硬盘接口转为USB3.0供X3派使用)

注意:仅测试与学习可以不使用外置硬盘,数据存储在X3派内存卡中,空间受内存卡剩余空间限制

所需软件:Nextcloud at home、Apache、PHP8.0、Mysql

选用Nextcloud at home原因:Nextcloud at home是开源的私有云平台,提供Android、iOS、Window、Linux、Mac系统的Nextcloud客户端

不同系统都可以使用客户端同步和共享文件,支持文档、表格、图片、视频多种格式文件的预览,这些功能可以满足我多种使用场景的需求

三、安装Apache

Apache负责提供web服务,安装Apache非常简单,一句命令搞定

sudo apt install apache2 -y

可以访问旭日X3派的ip(如果旭日X3派ip为192.168.1.10,则访问http://192.168.1.10)验证是否安装成功,如图可以正常访问网页则安装成功

四、安装PHP8.0与Nextcloud at home所需php模块

1、添加php的ppa软件源

添加ppa源时会警告被非 UTF-8 语言环境破坏,按回车继续就可以

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

2、安装php8.0、所需模块与配置php

2.1、安装php8.0

sudo apt install php8.0-fpm libapache2-mod-php8.0 -y

2.2、安装Nextcloud at home所需的php模块

sudo apt install php8.0-curl php8.0-dom php8.0-mbstring php8.0-imagick php8.0-ldap php8.0-imap php8.0-mysql php8.0-gd php8.0-zip php8.0-bz2 php8.0-intl php8.0-smbclient php8.0-bcmath php8.0-gmp php8.0-apcu php8.0-memcached php8.0-redis php8.0-phar libmagickcore-6.q16-6-extra -y

2.3、安装预览文件时所需软件

sudo apt install ffmpeg redis -y

2.4、新建php运行目录

sudo mkdir /run/php/php8.0-fpm

2.5、为apache启用php-fpm

sudo a2enmod proxy_fcgi setenvif 
sudo a2enconf php8.0-fpm

2.6、修改php内存使用和文件上传限制

sudo vim /etc/php/8.0/fpm/php.ini

修改文件中的参数

memory_limit = 1024M
upload_max_filesize = 102400M
post_max_size = 102400M

2.7、启用需要用到的apache模块

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo a2enmod setenvif

2.8、重新加载apache服务

sudo systemctl reload apache2
sudo systemctl restart apache2

2.9、证php是否安装完成

sudo sh -c 'echo "<?php echo phpinfo();?>" > /var/www/html/info.php'

访问info.php页面检查正常(如果旭日X3派ip为192.168.1.10,则访问http://192.168.1.10/info.php),页面如下图所示

五、安装数据库

1、安装mysql数据库

 sudo apt install mariadb-server -y

2、创建数据库账户

进入数据库

 mysql

修改数据库账户root密码,PASSWORD字段可根据自己需要设置

UPDATE mysql.user SET password = PASSWORD('888888') WHERE USER = 'root';
FLUSH PRIVILEGES;

创建nextcloud数据库用户,nextcloud为用户名,888888为密码,可根据自己需要设置

grant all privileges on *.* to 'nextcloud'@'%' identified by '888888' with grant option; 
FLUSH PRIVILEGES;
exit;

3、重启数据库

systemctl restart mysql

六、配置apache站点

1、修改apache默认站点配置文件端口为81,留出80端口供Nextcloud at home站点使用

 sudo vim /etc/apache2/sites-available/000-default.conf

修改文档内<VirtualHost *:80>为<VirtualHost *:81>如下图

2、下载解压Nextcloud站点文件,修改站点文件权限

 cd /var/www/ && sudo wget "https://download.nextcloud.com/server/releases/latest.zip" -O latest.zip
 sudo unzip latest.zip
 sudo chown -R www-data:www-data /var/www/nextcloud

3、创建Nextcloud配置文件与启用Nextcloud站点

 sudo vim /etc/apache2/sites-available/nextcloud.conf

文件内容

 <VirtualHost *:80>
 DocumentRoot /var/www/nextcloud/
 #ServerName your.server.com

 <Directory /var/www/nextcloud/>
 Require all granted
 AllowOverride All
 Satisfy Any
 Options FollowSymLinks MultiViews

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

如图:

4、启用Nextcloud站点与重新加载apache服务

sudo a2ensite nextcloud
sudo systemctl reload apache2
sudo systemctl restart apache2

七、格式化与挂载硬盘(没使用外置硬盘的话可跳过)

1、将硬盘连接到旭日X3派,检查硬盘设备名

 sudo fdisk -l

可以根据自己硬盘的容量排除硬盘设备名,我硬盘是500G,设备名是/dev/sda

2、使用fdisk硬盘工具删除原有分区与新分区硬盘,根据自己需要操作,我将整个硬盘分为1个区

 sudo fdisk /dev/sda

3、检查分区名称

检查刚才分区的名称,我这里只分区1个分区,所以这边查出来名称是/dev/sda1

 sudo fdisk -l

4、格式化分区

这里格式化分区为ext4格式

sudo mkfs.ext4 /dev/sda1

注意:建议使用ext4格式,我开始使用ntfs格式发现后续挂载提示缺少模块fause(已安装ntfs-3g-dev),可能旭日X3派不兼容,不知后续旭日X3派是否能更新支持

5、创建nextcloud数据存储目录,并挂载分区

sudo mkdir /var/www/nextcloud/data
sudo mount /dev/sda1 /var/www/nextcloud/data

八、安装NextCloud at home私有云平台

1、访问nextcloud站点(如果旭日X3派ip为192.168.1.10,则访问http://192.168.1.10/index.php

2、根据自己需要设置管理员账户密码,因为硬盘挂载目录就是默认数据存储目录,数据存储目录不需修改,数据库账户密码填写第五步所设置的账户密码,数据库名可自定义,数据库服务器因为是本地,所以填localhost,填写完成后点击安装,填写可参考下图。

3、安装完成后如图,到这里就搭建完成啦,安装客户端后就可愉快使用nextcloud私有云了

九、链接

官网下载链接(客户端下载)

Nextcloud使用手册

「地平线旭日X3派,开启你的嵌入式开发之旅」,欢迎正在阅读的你申请试用,一起交流开发心得

能不能给出个教程,把一些数据保存到云盘呢

不兼容ntfs分区格式如图,是否有解决办法?

聪哥这篇帖子赞的?,期待更多产出呀!这个问题稍后会请技术同事给你解答哈