将ubuntu设置为NAS——3. 私人网盘nextcloud安装(中)
前言的前言
想通过本平台记录一些折腾小主机的过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。之前写了2篇
《将ubuntu设置为NAS——1. Transmission-daemon安装》
我目前的主机外壳采用蜗牛星际外壳,主板是暴风酷播云主板J3455,电源是暴风酷播云的台达电源,硬盘是一块固态硬盘,3块1T的机械硬盘,原蜗牛星际背板拆除,电源与数据线直接接硬盘的方式。软件层面主要是用Kubuntu18.04系统(ubuntu其他风味版,和原版功能上没有太大区别),安装了Transmission-daemon用于下载,nextcloud用于网络硬盘,kvm作为虚拟机开软路由,还有其他一些简单功能,基本实现NAS的作用。后面我将慢慢分享其中的过程,作为小白,很多都是自己参考网上根据其他作者文章,再自己摸索实践出来,如有谬误,请各位指正,大家共同学习。后面涉及的命令行都是在ubuntu终端(不要问我终端是什么 )中输入,请大家注意。
正式前言
上一篇,基本完成了nextcloud安装,访问主机网站,应该也能访问自己搭建的网盘,基本使用应该问题不大了,本片主要介绍在使用中,可能会出现的问题,及解决办法。
1、手机app下载安装
使用nextcloud,我们是看中它的跨平台性,几乎所有平台都有其应用支持,Windows、Mac、Linux、安卓和iOS,这里主要使用安卓app为例子。下载地址官网下载地址,选择f-droid.org吧,毕竟大家手机上都没有google商店,选最新版app就好了。
2、 APP设置
点击登陆,设置服务器地址 http://你小主机的ip/nextcloud,输入账户和密码,就好了。
app上的设置就不介绍了,比较简单,可以选择同步文件夹,也可以自己上传文件。如果提示不受信任域名访问,下文介绍如何处理。
3、 nextcloud连接外部存储
nextcloud安装后,会有默认data文件(存储文件目录),后面上传文件都会存到这里,但有时我们需要换个位置,或者将其他文件夹设置为nextcloud网盘里的目录,就需要设置外部链接,同样原理也可以设置其他网盘的地址。
需要先添加nextclou外部存储应用,选择应用,选择已禁用的应用启用External storage support。
选择已禁用的应用包启用External storage support
回到设置就可以看到外部存储了。
设置对应文件夹路径,也可以设置密码,这里都是本地存储,就不设置密码。
设置完成,点击勾,打开文件界面就可以看到对应文件夹及里面的资料。
你可以直接复制到外部存储目录,然后在nextcloud页面就能看到文件了。也可以直接把视频或图片目录直接设置为外部存储,就不用再重复上传了,视频或图片目录直接成了你的网盘目录,是不是很方便。
而且当你的系统盘空间比较小的情况下,而你的nextcloud目录又在系统盘下面,基本就没法使用网盘了,但你可以直接设置下面挂载的其他大空间盘作为网盘外部存储来使用,也很方便,就不用重新设置nextcloud的目录了。
4、nextcloud不受信任域名访问
用路由映射后,再使用DDNS登陆或外网访问,出现不受信任的域名访问提醒,无法使用。
先找到nextcloud的设置
sudo nano /var/www/html/nextcloud/config/config.php
找到图上位置添加需要信任的IP或地址,比如DDNS地址或自己小主机固定域名,或小主机的外网IP。
array(
0 => '本机IP',
1 => '需要信任的IP或地址',
)
后续手机登陆,或外网登陆,登陆管理员账户,选择信任就可以登录使用。也可以直接设置'*.*.*.*',作为信任地址,这样就没有限制,但总感觉可能不安全。
5、还有可能出现的部分问题
下面这些问题出现在概览中的安全及设置警告,如果你不是完美主义,这部分内容其实可以不用看了,一般使用无影响。想解决问题的话,找对应问题,照着做即可。
问题1:
您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或都你可以将数据目录移出 Web 服务器文档根目录。
解决:找到apache2设置目录 /etc/apache2/apache2.conf ,
修改
sudo nano /etc/apache2/apache2.conf
找到对应条目,添加如下代码
AllowOverride FileInfo Options
问题2:
所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持。详细信息请阅读相关文档页面。
根据官方文档进行处理
之前安装数据库是MariaDB,而ubuntu默认安装的是MariaDB 10.1版。
1)确认innodb_file_per_table为ON
sudo mysql -u root -p //进入数据库
mysql> show variables like 'innodb_file_per_table'; //输入命令查看
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec) //显示为ON就可以
如果不是请修改(应该在数据库设置my.cnf)一般在/etc/mysql/my.cnf或/etc/my.cnf,用sudo nano /etc/mysql/my.cnf添加
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1
2)重启数据库服务器
sudo service mysql restart
3)改变数据库类型设置
ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; //进入数据库后再输入此命令
4)在nextcloud中设置应用mysql.utf8mb4
sudo -u www-data php /var/www/html/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
这里官方有点坑,请根据occ的实际路径输入,官方只是occ,没有路径,会提示Could not open input file: occ,当然也可能是权限的问题,可以改一下occ权限。
sudo chown -Rf www-data:www-data /var/www/html/nextcloud/occ
5) 修复之前的数据库数据,转化utf8mb4
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:repair
不应该有错误提示,有错误说明有些文件没有装换过来,之后日志里还会有数据库的问题。
6)关闭维护模式
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off
不关闭,可能提示nextcloud处于维护模式,无法打开。
问题3:
PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置:
找到php.ini目录,之前测试php安装页面有地址:etc/php/7.2/apache2,进行修改
sudo nano /etc/php/7.2/apache2/php.ini
修改对应条目,并删去前面 ; ,表示去掉注释生效。
重启
service apache2 restart
问题4:
有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:
修改对应文件夹权限,由于 www-data是apache2运行用户,所以改成www-data。apps对应我出现问题的文件夹名。
sudo chown -R www-data apps
问题5:
您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档。
您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。
这个问题参考官方文档无法成功解决!!!
后来看这篇
参考realshadow答案
1)进入/etc/apache/sites-availalbe目录
sudo cd /etc/apache/sites-availalbe
2)编辑000-default.conf文件,
sudo nano /etc/apache/sites-availalbe/000-default.conf
3)在/>下面添加如下语句
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
4)保存退出后,重启apache。
sudo service apache2 restart
5)回到nextcloud页面,再次检查,可以发现这个错误消失了。
问题6:
有三种内存缓存形式,APCu,Memcached,Redis,个人用户建议选择APCu。
1)安装APCu(php-apcu-bc也需要的)
sudo apt-get install php-apcu php-apcu-bc
2)在php配置APCu
sudo nano /etc/php/7.2/mods-available/apcu.ini
添加代码apc.enable_cli=On,保证功能开启,
3)在nextcloud配置中设置APCu
sudo nano /var/www/html/nextcloud/config/config.php
添加
'memcache.local' => 'OCMemcacheAPCu',
重启服务器
sudo service apache2 restart
回到nextcloud设置页面,这个错误就消失了。开启之后,感觉整个网页速度快了很多。
总结
基本上nextcloud的问题都解决了,大家可以愉快的使用了,欢迎大家交流使用心得,但为什么这是中篇呢,其实我下篇想再介绍用docker安装nextcloud的方式,那种方式相对简单许多,如果采取docker-compose的方式,只要下载一个脚本,输几个简单命令,就万事大吉,一般也不会有这么多问题1-6。
希望大家多多点赞,收藏,打赏!!! 这绝对是呕心沥血之作。。。
摩羯mj
校验提示文案
Sayai
校验提示文案
禁卫
校验提示文案
骑着大鹅向前冲
校验提示文案
值友1209184481
校验提示文案
向小北1
校验提示文案
ClegeA
校验提示文案
interstart
校验提示文案
Vertuo
校验提示文案
蒙古国海军上将
校验提示文案
吃饱了装饿
校验提示文案
黑夜呐喊
校验提示文案
值友6623645700
校验提示文案
值友6623645700
校验提示文案
疯狂的蜂鸟
校验提示文案
塞北的雪
校验提示文案
秋水时至百川灌河
校验提示文案
薅毛羊
校验提示文案
我的网名有点长
校验提示文案
24k双花红棍
校验提示文案
东皓雪
校验提示文案
疯狂的蜂鸟
校验提示文案
杨某人
校验提示文案
非著名坐家
校验提示文案
值友6623645700
校验提示文案
值友6623645700
校验提示文案
黑夜呐喊
校验提示文案
吃饱了装饿
校验提示文案
言论监督员
校验提示文案
神龍
校验提示文案
蒙古国海军上将
校验提示文案
张还是展
校验提示文案
Vertuo
校验提示文案
24k双花红棍
校验提示文案
interstart
校验提示文案
ClegeA
校验提示文案
我的网名有点长
校验提示文案
薅毛羊
校验提示文案
向小北1
校验提示文案
秋水时至百川灌河
校验提示文案