距离树莓派入手时间已经半年多,由于时间问题,也一直没有部署过像样的东西,刚好最近入手了一块硬盘,所以就用树莓派加移动硬盘来搭建一个个人的私有云吧。这里以树莓派raspbain 10 buster系统为例,安装Nextcloud私有云。
1. 树莓派换源 由于国内环境,软件的下载安装相对比较慢,所以更换安装源来提高下载速度,更换下载源后更新软件的速度相对比较慢,其中很快做其他的事情,自行怎么方便怎么来。
1.1 查看版本 网上许多教程都不是基于最新的raspbain buster来进行更换的,这里需要注意一下,更换源之前先查看一下系统版本。
1.2 修改源 1 2 3 4 5 6 7 8 9 10 11 12 13 $ cp /etc/apt/sources.list /etc/apt/sources.back.list $ vim /etc/apt/sources.list deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib $ cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.back.list $ vim /etc/apt/sources.list.d/raspi.list deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main
1.3 更新源和软件 1 2 sudo apt-get update sudo apt-get upgrade -y
这个更新过程比较慢,建议这段时间可以到nextcloud官网中同时下载安装包,或进行其他不使用apt-get操作。
2. 安装软件 2.1 安装apache 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo apt-get install apache2 systemctl start apache2 systemctl enable apache2 systemctl status apache2 systemctl restart apache2 systemctl stop apache2
2.2 安装php 1 2 3 4 5 sudo apt-get install php libapache2-mod-php -y sudo apt-get -y install php-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-imagick php-mbstring -y
2.3 安装mariadb 1 2 3 4 5 6 7 8 9 10 11 12 $ sudo apt-get install mariadb-server -y $ cd /etc/mysql/mariadb.conf.d $ grep -rn "skip-networking" * 50-server.cnf:26: $ vim 50-server.cnf
接下来是修改数据库配置
1 2 3 4 5 6 7 8 9 10 11 12 $ mysql -uroot -p > create database nextcloud; > CREATE USER 'oc_admin' @'%' IDENTIFIED BY 'password' ; > GRANT ALL PRIVILEGES ON *.* TO 'oc_admin' @'%' WITH GRANT OPTION; > flush privileges; > CREATE USER 'oc_admin' @'localhost' IDENTIFIED BY 'password' ; > GRANT ALL PRIVILEGES ON *.* TO 'oc_admin' @'localhost' WITH GRANT OPTION; > flush privileges;
2.4 安装Nextcloud Nextcloud的安装包需要去官网进行下载,这里是下载地址 。需要下载tar.bz2
包。
下载完成后,需要上传到树莓派的/var/www/html/
目录下。然后执行下面命令。
1 2 3 4 5 6 7 8 9 10 tar jxf nextcloud-21.0.0.tar.bz2 chown -R root:root nextcloudcd nextcloud mkdir data chown -R www-data:www-data data config apps
3. 初始化Nextcloud 3.1 初始化 完成上面步骤,就可以进行初始化Nextcloud了,在电脑浏览器中输入地址:树莓派ip:8080/nextcloud
。比如:192.162.1.110:8080/nextcloud
。则可以打开nextcloud的登陆界面,选择用户名和密码,以及输入数据库用户名和密码,完成设置。如下:
关于数据目录,这里先默认选择/var/www/html/nextcloud/data
。至于使用挂载目录,后面会讲到。如果想在初始化时就更换为挂载目录,可直接查看挂载外设 。
如果你的初始化出现下面错误,说创建数据库用户失败。这是因为在第一次初始化nextcloud的时候会在/var/www/html/nextcloud/config
中创建一个config.php文件,文件记录nextcloud的配置信息。如果是第一次初始化,config.php中记录的数据库用户名会变成起初连接数据库的用户名加1。这里只需要手动的把1删除,之后再重新进行初始化操作,便可完成。
1 2 3 4 5 6 'dbname' => 'nextcloud' ,'dbhost' => 'localhost:3306' ,'dbport' => '' ,'dbtavleprefix' => 'oc_' ,'mysql.utf8mb4' => true ,'dbuser' => 'oc_admin1' ,
如果登录出现不信任域名访问的错误,这是由于nextcloud的访问设置了白名单,所以在访问的时候需要添加白名单ip。编辑config.php
文件,把要访问的ip或者域名添加进去。
1 2 3 4 5 6 $ nano /var/www/html/nextcloud/config/config.php'trusted_domains' => array ( 0 => '192.168.1.110:8080' , 1 => 'xxx.com' , ),
之后再进行访问,就出现登陆页面,通过设置的用户名和密码进行登录即可。首页如下。
3.2 其他配置 3.2.1 文件上传大小限制 1 2 3 4 5 6 7 8 9 10 11 12 $ vim /etc/php/7.3/apache2/php.ini upload_max_filesize = 16G post_max_size = 16G max_input_time 3600 max_execution_time 3600 $ a2dismod reqtimeout $ systemctl restart apache2
3.2.2 挂载外设 挂载外设有两种情况,一是直接将硬盘挂载到数据目录data
下面;二是将硬盘挂载到其他目录,把数据目录更换成挂载的目录。
1、硬盘挂载到数据目录data
下面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 $ cp -r /var/www/html/nextcloud/data /home/data $ rm -v /var/www/html/nextcloud/data/* $ fdisk -l Device Start End Sectors Size Type /dev/sda1 34 32767 32734 16M Microsoft reserved /dev/sda2 32768 3907026943 3906994176 1.8T Microsoft basic data $ blkid /dev/sda2 /dev/sda2: LABEL="pi" UUID="DBK3-5F1C" TYPE="exfat" PARTLABEL="Basic data partition" PARTUUID="51ejn2c4-f99f-46e5-a7cn-ca4m4e8db6bc" $ mount -t exfat /dev/sda2 /var/www/html/nextcloud/data $ vim /etc/fstab UUID="DBK3-5F1C" /var/www/html/nextcloud/data exfat defaults,nofail 0 0 $ cp -r /home/data /var/www/html/nextcloud/data
2、硬盘挂载到其他目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 $ mkdir /home/nextcloud chown -R root:root /home/nextcloud $ mount -t exfat /dev/sda2 /home/nextcloud $ vim /etc/fstab UUID="DBK3-5F1C" /var/www/html/nextcloud/data exfat defaults,nofail 0 0 $ cp -r /var/www/html/nextcloud/data/ /home/nextcloud/ $ vim /var/www/html/nextcloud/config/config.php'datadirectory' => '/home/nextcloud/data' $ systemctl restart apache2 $ vim /var/www/html/nextcloud/config/config.php'check_data_directory_permissions' => false
4. 性能优化 4.1 配置redis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 $ sudo apt-get install redis-server $ vim /etc/redis/redis.conf $ usermod -g www-data redis $ chown -R redis:www-data /var/run/redis $ redis-server /etc/redis.conf $ service redis-server restart $ sudo apt-get install php-apcu $ sudo apt-get install php-redis $ vim /var/www/html/nextcloud/config/config.php'memcache.local' => '\OC\Memcache\APCu' ,'memcache.locking' => '\OC\Memcache\Redis' ,'redis' => array ( 'host' => 'localhost' , 'port' => 6379, ), $ systemctl restart apache2
4.2 提高swap容量 1 2 3 4 5 6 $ vim /etc/dphys-swapfile $ /etc/init.d/dphys-swapfile restart
4.3 提高sd卡速度 1 2 3 4 5 6 7 $ sudo vim /boot/config.txt dtparam=sd_overclock=100 $ hdparm -tT /dev/mmcblk0
以上就是用树莓派搭建Nextcloud私有云的具体步骤,用来当作笔记防止下次忘记,后续有什么新的功能在陆续添加。这次就到这了!