树莓派–搭建nextcloud私有云
网上已有很多的教程是关于nextcloud或owncloud的私有云的搭建,但是都是零零碎碎,并不完整,这里以树莓派raspbain 10 buster系统为例,安装nextcloud私有云。
这里分以下的几步来进行:
文章目录
树莓派--搭建nextcloud私有云换源、更新软件安装apache2安装php安装mariadb安装nextcloud测试上传速度下载速度性能优化apcu提高swap容量提高sd卡的速度换源、更新软件
由于国内环境,软件的下载安装相对比较慢,所以更换安装源来提高下载速度,更换下载源后更新软件的速度相对比较慢,其中很快做其他的事情,自行怎么方便怎么来。
网上许多教程都不是基于最新的raspbain buster来进行更换的,这里需要注意下,跟换源之前先查看系统版本。
root@raspberrypi:/home/pi$ lsb_release -aNo LSB modules are available.Distributor ID: RaspbianDescription: Raspbian GNU/Linux 10 (buster)Release: 10Codename: buster
修改源
# 备份并编辑source.listwenjian $ cp /etc/apt/sources.list /etc/apt/sources.back.list$ nano /etc/apt/sources.list# 注释所有内容,添加以下内容deb http://mirrors.tuna./raspbian/raspbian/ buster main non-free contribdeb-src http://mirrors.tuna./raspbian/raspbian/ buster main non-free contrib# 备份并编辑raspi.list文件$ cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.back.list$ nano /etc/apt/sources.list.d/raspi.list# 注释所有内容,替换如下内容deb http://mirrors.tuna./raspberrypi/ buster main
更新源和软件
$ sudo su$ apt-get update$ apt-get upgrade -y
这个更新过程比较慢,建议这段时间可以到nextcloud官网中同时下载安装包,或进行其他不使用apt-get操作
安装apache2
# 安装命令$ sudo su$ apt-get install apache2
安装完成后配置https强跳转。先到freessl中申请公钥和秘钥,我这里不阐述申请过程。
$ cd /etc/apache2/sites-available$ nano default-ssl.conf# 修改监听端口、文件目录地址和公私钥的地址<VirtualHost _default_:4433>DocumentRoot /var/www/html/nextcloudSSLCertificateFile/etc/apache2/ssl/full_chain.pemSSLCertificateKeyFile /etc/apache2/ssl/private.key$ cp sites-available/default-ssl.conf sites-enabled/# 修改80强跳到4433 $ nano 000-default.confRewriteEngine onRewriteCond %{SERVER_PORT} !^4433$RewriteRule ^/?(.*)$ https://%{SERVER_NAME}:4433/$1 [L,R]$ mv 000-default.conf ../sites-enabled/# 修改监听端口$ cd ../$ nano ports.conf Listen 80<IfModule ssl_module>Listen 4433</IfModule><IfModule mod_gnutls.c>Listen 4433</IfModule># 开启重写$ a2enmod rewrite $ a2enmod ssl$ systemctl restart apache2
安装php
$ apt-get install php libapache2-mod-php -y$ 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
安装mariadb
# 安装命令$ sudo su$ apt-get install mariadb-server -y# 开启远程登录权限$ cd /etc/mysql/mariadb.conf.d# 找到修改权限的文件$ grep -rn "skip-networking" *50-f:26:# Instead of skip-networking the default is now to listen only on$ nano 50-f# 注释掉 bind-address = 127.0.0.1
修改数据库配置
# 直接回车 不需要输入密码$ 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;
安装nextcloud
从官网中下载安装包,下载地址如下:
下载地址
下载完成后,上传到树莓派的/var/www/html/
目录
# 解压$ tar jxf nextcloud-18.0.0.tar.bz2 # 添加data目录和授权$ chown -R root:root nextcloud$ cd nextcloud$ mkdir data$ chown -R www-data:www-data data config apps
初始化nextcloud,这里有个坑,第一次初始化nextcloud,创建管理员,会报错,说创建数据库用户失败。
这是因为在第一次初始化nextcloud的时候会在/var/www/html/nextcloud/config
中创建一个config.php文件,文件记录nextcloud的配置信息。如果是第一次初始化,config.php中记录的数据库用户名会变成起初连接数据库的用户名加1。这里只需要手动的把1删除,之后再重新进行初始化操作,便可完成。
由于nextcloud的访问设置了白名单,所以在第一次访问的时候需要添加白名单ip
$ nano /var/www/html/nextcloud/config/config.php'trusted_domains' => array (0 => '192.168.124.37:4433',1 => 'nextcloud.mufeng.info',),
挂载外设
$ fdisk -lDeviceStart End Sectors Size Type/dev/sda1343276732734 16M Microsoft reserved/dev/sda2 32768 3906959359 3906926592 1.8T Microsoft basic data# 安装exfat识别$ apt-get install exfat-fuse -y$ mkdir /home/pi/wd$ mount -t exfat /dev/sda2 /home/pi/wd# 取消挂载 umount /dev/sda2
配置文件上传大小的限制
$ nano /etc/php/7.3/apache2/php.iniupload_max_filesize = 16Gpost_max_size = 16Gmax_input_time 3600max_execution_time 3600# 解决浏览器超时问题$ a2dismod reqtimeout $ service apache2 restart
测试
上传速度
下载速度
性能优化
apcu
安装redis
$ apt-get install redis-server
redis配置
$ nano /etc/redis/redis.conf# 修改daemonize 为 yes,取消以下内容的注释# unixsocket /var/run/redis/redis-server.sock# unixsocketperm 777# 授权redis$ usermod -g www-data redis$ chown -R redis:www-data /var/run/redis$ redis-server /etc/redis.conf$ service redis-server restart
修改配置文件
$ apt-get install php-apcu$ apt-get install php-redis'memcache.local' => '\OC\Memcache\APCu','memcache.locking' => '\OC\Memcache\Redis','redis' => array('host' => 'localhost','port' => 6379,),$ service apache2 restart
提高swap容量
$ nano /etc/dphys-swapfile# 修改字段CONF_SWPSIZE 值,默认为100,这里修改为 2048,退出后重启swap$ /etc/init.d/dphys-swapfile restart
提高sd卡的速度
$ sudo su$ nano /boot/config.txt# 加入dtparam=sd_overclock=100$ apt-get install hdparm$ hdparm -tT /dev/mmcblk0