gated0

nextcloud的修复
总篇我们在上篇通过宝塔面板搭建了nextcloud搭建完成后我们在设置中看见了一些报错如下图那么,这次我们就要解决...
扫描右侧二维码阅读全文
22
2019/07

nextcloud的修复

总篇

我们在上篇通过宝塔面板搭建了nextcloud搭建完成后我们在设置中看见了一些报错如下图
报错图

那么,这次我们就要解决这些问题

修复

PHP 的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。 请参照安装说明文档 ↗中的 PHP 配置说明查阅您服务器的PHP配置信息,特别是在使用 php-fpm 时。

/www/server/php/70/etc下的php-fpm.conf文件中添加(根据php版本不同,70会是其他数字,例如安装的是7.2版本则为72)

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

之后重启php

所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持。

因为我是用的5.5版本,只能以5.5版本来示范(这里参考了bug侠的文章感谢大佬的教程 原文地址 https://bugxia.com/1131.html

1.修改mysql的配置文件
[mysqld] 配置段里加入

innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

保存重启
2.修改nextcloud的数据库的字符集和排序规则
ALTER DATABASE nextcloud所在的数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
打开phpmyadmin宝塔一般在安装环境的时候就会让你安装
如果之前完全按照我的安装教程的话,数据库名应该为drive
这里我用shell来示范,bug侠在文中用的是phpmyadmin我给大家示范另一个
这里使用的是xshell,所有的ssh工具皆可
连接上服务器后
登录mysql mysql -uroot -p其中root为用户名(一般默认,p后面请填入mysql密码宝塔面板中,数据库上root密码既是该密码)
输入以下(drive为nextcloud数据库名称)

ALTER DATABASE drive CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

之后你会看见
返回图

3.修改nextcloud配置文件config.php
utf8mb4值改为true
这里还需要ssh工具,且要cdnextcloud的安装目录下
我的是/www/wwwroot/drive.mygated0.com
进到目录后使用指令

sudo -u www php occ config:system:set mysql.utf8mb4 --type boolean --value="true"

4.修复数据库
同样是occ命令,需要在nextcloud的安装根目录下执行

sudo -u www php occ maintenance:repair

关于这个问题,我们现在就完全解决了!

HTTP的请求头 "Strict-Transport-Security" 未设置为至少 "15552000" 秒。为了提高安全性,建议参照security tips ↗中的说明启用HSTS。

打开nextcloud绑定的站点配置文件
添加以下信息

add_header Strict-Transport-Security "max-age=63072000;";

添加位置

您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档。
您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。

这两个在一起解决
还是在配置文件中

rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;

内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

这里要安装php扩展插件 apcu
安装过后到你的nextcloud安装目录中的配置文件中,添加以下代码

'memcache.local' => '\OC\Memcache\APCu'

大概路径

PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置:
opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

这个意思是OPcache的默认配置不符合nextcloud的推荐配置,我们打开php配置文件
将推荐的写入即可
推荐的代码为

opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

填写完重启php就不会看到报错

数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过命令行手动执行 "occ db:convert-filecache-bigint" 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。查阅相关文档以获得更多详情。
filecache.mtime
filecache.storage_mtime

还要用到ssh工具,依然在nextcloud的安装根目录下执行

sudo -u www php occ db:convert-filecache-bigint

输入以后会询问是否继续,输入 y即可

自此,所有的15版本问题全部解决,关于php版本的问题在上篇也已经提到过了,7.1版本才能安装16版本,7.0只能15,这个问题只关系到后续的升级,目前15版本已经可以稳定使用

检测

官方有一个检测你的安全性的网站 https://scan.nextcloud.com/
在框里输入你自己的nextcloud的域名,等待一段时间就会出结果 (如下图我的结果/结果截至文章发出时间)
我的结果

使用

开开心心用吧,为开源带来的快乐而欢呼

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
Last modification:July 23rd, 2019 at 06:32 pm
如果觉得我很可爱,请随意赞赏

Leave a Comment