搭建方法:VPS搭建个人网盘 Nextcloud安装搭建教程
当我们使用宝塔面板部署好后,可以直接使用,但是管理员-设置-概览内,检测一般会存在一些警告和错误,这些我们如何解决呢?
1.通过HTTP访问网站不安全。强烈建议您将服务器设置成要求使用HTTPS协议
这个问题最好解决,同时也可能是无法解决问题:服务器绑定域名,并配置SSL证书,域名解析到服务器即可
但是:
国内服务器需要绑定备案的域名,若无备案域名,则只能使用IP访问Nextcloud,那么该条警告无法去除。
2.一些文件没有通过完整性检查. 了解如何解决该问题请查看我们的文档. (无效的文件列表… / 重新扫描…)
你的无效的文件列表和我的可能不一样,但是方法是一样的:
1.开nextcloud的安装地址,也就是Nginx所代理的网站更目录;
2.删除“提示的无效文件“。
如果你使用宝塔面板,可以进入宝塔面板后台,然后使用宝塔的图形界面删除无效文件。如果你熟悉Linux命令,可以使用rm
命令删除:
3.PHP configuration option output_buffering must be disabled
其实这个很好解决,PHP默认是有4096字节缓冲的。但是Nextcloud希望你关闭。如果你是自己安装的PHP,在你安装PHP的路径下,打开PHP配置文件(php.ini
),将要
output_buffering = 4096
改为:
; output_buffering = 4096
;
为PHP的注释符号
如果你是宝塔安装配置的php,更简单了。在宝塔面板,依次打开:
软件商店
–已安装
–PHP7.3设置
–配置文件
查找文本output_buffering
,并在前面加上;
注释
之后,可能需要重载PHP配置或者重启PHP服务才能生效。再次查看Nextcloud概述,就没有这条警告了。
4.您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。
这个其实是Nginx的问题,为了进一步提升安全性,我们打开Nginx网站设置
在location内的禁止访问目录内,加入data目录。
5.PHP 的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”) 函数测试返回了一个空值
这个处理方法很简单;如果你是自己安装配置的PHP,一般不会出现这个问题,当时如果是使用宝塔安装,一般都会有这个问题,解决方法很简单:
在宝塔面板,依次打开:软件商店
–已安装
–PHP7.3设置
–FPM配置文件
在文末添加:
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
之后,可能需要重载PHP配置或者重启PHP服务才能生效。
6.您的网页服务器未正确设置以解析****。更多信息请参见文档
这个处理方法很简单,简单地说,设置Nginx即可。如果你的Nginx是宝塔安装的,那么打开网站的Nginx:
之后追加以下内容:
rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;
之后保存即可!
7.PHP模块问题
PHP模块问题包括:
- 未找到PHP的”fileinfo”模块。强烈推荐启用该模块,从而获得更好的MIME类型探测结果。
- 内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。
- PHP的OPcache模块未载入。推荐开启获得更好的性能。
安装如下模块:
安装的模块-02
同时,因为使用Redis作为缓冲,所以我们需要打开Nextcloud的配置文件,追加以下内容:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复
这个因为我之前修复了,所以我的警告和错误列表没有提示。如果你有报这条警告,直接运行:
php occ db:add-missing-indices
但是注意文件夹所属的用户组,比如:你Terminal上使用的是root或者Ubuntu用户,那么就需要用sudo提权
sudo -u php occ db:add-missing-indices
8.优化内容
文件扫描
有时候,我们直接使用Linux命令,如:wget
、curl
等命令直接下载文件到服务器内Nextcloud里的用户目录,但是用户登录Nextcloud却并没有显示,怎么办?
我们可以使用PHP配合Nextcloud命令,来自动扫描文件:
sudo -u www php occ files:scan --all
其中:
- 命令使用需要在Nextcloud根目录下
- 需要使用
sudo -u
命令提权
后台任务优化
Nextcloud的后台任务,默认是使用Ajax异步方法进行后台任务:
即在每次访问Nextcloud任意页面都会通过AJAX的方式发起定时任务的执行请求,这种方式如果没有自己的独立服务器或者VPS的话还是比较方便省心的
但官方推荐使用Cron,和Nginx或Apache等WEB服务独立开来,互不影响:
为了使用Cron,我们需要用到Linux的定时任务。
SSH连接服务器后,输入:
crontab -e
创建一个Cron任务,并使用正则表达式:
*/5 * * * * sudo -u www php /PathToNextcloud/cron.php
保存即可。
当然,如果你用宝塔面板,也可以直接使用宝塔自带的控制面板,设置定时任务:
宝塔设置定时任务