总篇
个人团队云盘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工具,且要cd
到nextcloud的安装目录下
我的是/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' => 'OCMemcacheAPCu'
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
的域名,等待一段时间就会出结果 (如下图我的结果/结果截至文章发出时间)
使用
开开心心用吧,为开源带来的快乐而欢呼
版权声明:本文为原创文章,版权归 GAted0 所有。
本文链接:https://www.mygated0.com/archives/15/
除特殊说明,皆为本人原创,转载时请标明来源