简介
Nextcloud 是一款开源免费的私有云存储网盘项目,可让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了 Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV 接口,所以你几乎可以在各种设备上方便地访问你的云盘,相当于一个简易的 NAS。你也可以挂载第三方云存储,比如 OneDrive、FTP、OSS 等,个人比较喜欢它的笔记和看板插件。
问题
虽然 Nextcloud 是使用 PHP 开发的,但是安装过程中总会遇到很多问题。我搞了两天,以下是我遇到的一些问题的解决方案,如果你发现 Nextcloud 管理后台日志中一直有报错,表示我用 Docker 安装的也是如此,只要不影响使用,可以无视。
- 需要的 PHP 扩展
在宝塔面板的软件商店
里选择使用的php版本-设置-安装扩展
安装,需要fileinfo
、opcache
、redis
、imagemagick
、exif
、exif
这几个扩展,同时需要将禁用函数中的shell_exec
删除掉。 项目您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档。您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。
在 Nginx 配置中(或者伪静态规则)加入以下两条即可:
rewrite /.well-known/carddav /remote.php/dav permanent; rewrite /.well-known/caldav /remote.php/dav permanent;
一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… / 重新扫描…)
Nextcloud 会比对运行目录下所有文件的 hash 值,只要把不是 Nextcloud 的多余文件删除掉即可解决。对于 hash 错误的,例如
.user.ini
文件,从源码包复制一个覆盖即可。最近一次执行后台任务运行时间为 21 天前,似乎哪里出了问题。请检查后台任务设置。
需要后台添加一个定时任务,如果你后台-基本设置
中选的是 Webcron,那个添加一个每隔5分钟定时访问:你的域名/cron.php
的任务即可;如果你选的是 Cron,则添加一个每隔5分钟执行 Shell 脚本的任务即可,脚本内容如下:cd nextcloud 目录 sudo -u www php -f cron.php
你的数据存储目录可以从互联网上直接访问,
.htaccess
文件没有生效,请配置你的网页服务器以避免数据存储目录可从外部访问或将数据存储目录转移到网页服务器根目录之外。在 Nginx 的伪静态规则中加入
location ~ ^/(data|config|.ht|db_structure.xml|README) { deny all;}
PHP的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。 请参照安装说明文档中的PHP配置说明查阅您服务器的PHP配置信息,特别是在使用php-fpm时。
解决方法:在
/www/server/php/具体版本/etc/php-fpm.conf
文件底部添加如下内容:env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
开启 Redis 缓存加速
安装 Redis,默认是没有密码的,在config/config.php
文件中加入以下内容即可,详细说明参考同目录的config.sample.php
文件'redis' => array ( 'host' => 'localhost', 'port' => 6379, ),
换用cloudreve,没有这么多烦恼~