Nextcloud上的一些常见报错及解决方案

Posted by 橙叶 on Sun, Apr 1, 2018

注:本文翻译自General troubleshooting ,仅接受翻译上的问题。

如果你在安装、配置、维护Nextcloud时出现问题,可以从下面的渠道寻找解决方案:

官方渠道(英文):

[ssbluelist]
  • The Nextcloud Forums Nextcloud官方论坛,论坛中有一个FAQ页面,里面罗列了一些常见的错误。
  • The Nextcloud IRC chat channel irc://#nextcloud@freenode.net Nextcloud官方聊天室,支持webchat访问。
[/ssbluelist]

其它:

[ssbluelist]
  • QQ群:1:534777566(我建的群,因为我平时时间少,这个群活跃度低一些)
  • QQ群:2:578094274(这个群比较活跃,讨论的人多一些,和这个群的群主一比我真是懒得没边)
  • 橙叶论坛:https://forum.orgleaf.com 刚建起来,人还很少,用的是和官方论坛一样的程序,请多支持。
[/ssbluelist]

Bug反馈

如果你认为你找到了一个Nextcloud的Bug,可以:

[ssbluelist]

  • 从交流渠道中寻找解决方案
  • 再次检查你的配置
[/ssbluelist]

如果问题得不到解决,可以使用 bugtracker。你可以用occ config 命令生成一个配置报告,配置中的密码这样的敏感信息会自动隐藏。

常见故障排除

一些故障与服务器环境和浏览器有关,可以参考:System requirements

如果你看到了“代码完整性检查”的报错,可以参考:Nextcloud/OwnCloud管理页面上的警告及对应方案或 Code signing

禁用第三方或未正式发布的应用

这是个在任何程序而不是仅限于Nextcloud上都值得尝试的方法。因为这些第三方的应用/插件或多或少会影响到Nextcloud原有的功能,尤其是未经充分检查测试的不稳定版本。推荐在更新Nextcloud之前禁用所有第三方程序,以免出现新版本与旧的应用冲突。你可以到ownCloud/Nextcloud OCC命令行工具详解(3)查看如何使用命令行工具禁用应用。

Nextcloud的日志文件

在标准Nextcloud安装中,日志级别设置为“正常”。要找到任何问题,您需要将日志级别提升到您的config.php文件中的全部或您的Nextcloud管理页面上的所有内容。有关这些日志级别的更多信息,请参阅Logging configuration

某些日志记录 - 例如JavaScript控制台日志记录 - 需要启用调试。编辑config / config.php并将‘debug’=> false更改为‘debug’=> true,完成后务必将其更改回去。

对于JavaScript问题,您还需要查看JavaScript控制台。所有主流浏览器都有用于查看控制台的开发工具,并且您通常通过按F12访问它们。对于Firefox,我们建议安装Firebug扩展。

[infobox]Nextcloud的日志文件位于数据目录nextcloud/data/nextcloud.log中[/infobox]

PHP版本信息

你需要知道你的PHP版本和配置。为此,请创建一个名为phpinfo.php的纯文本文件,并将其放在Web根目录中,例如/var/www/html/phpinfo.php。 (您的Web根目录可能位于不同的位置;您的Linux发行版文档将告诉您在哪里。)此文件仅包含以下内容:
<?php phpinfo(); ?>
通过将浏览器指向localhost/phpinfo.php在Web浏览器中打开此文件:

您的PHP版本信息位于顶部,页面的其余部分包含丰富的系统信息,例如激活的模块,使用的.ini文件等等。当你检查完你的信息时,必须删除phpinfo.php,或将它移到你的Web目录之外,因为暴露这种敏感数据存在安全风险。

调试同步问题

[warningbox]服务器上的数据目录是Nextcloud独有的,不能手动修改。[/warningbox]

无视这可能会导致不需要的行为,如:

  • 同步客户端出现问题
  • 由于数据库中的高速缓存未检测到更改
如果您需要直接从同一服务器上传文件,请使用WebDAV命令行客户端(如cadaver)将文件上传到WebDAV界面:

https://example.com/nextcloud/remote.php/dav

常见的问题/错误信息

这些是你可能在日志文件中找到的错误信息:

[ssbluelist]

  • SQLSTATE[HY000] [1040] Too many connections:您需要修改数据库的连接限制,请参阅数据库手册以获取更多信息。
  • SQLSTATE[HY000]: General error: 5 database is locked:您正在使用无法处理大量并行请求的SQLite。请考虑转换为另一个数据库,参考Converting database type
  • SQLSTATE[HY000]: General error: 2006 MySQL server hasgone away:请参阅 Troubleshooting 。
  • SQLSTATE[HY000] [2002] No such file or directory :访问数据目录中的SQLite数据库文件时存在问题(data/nextcloud.db)。请检查此文件夹/文件的权限,或者它是否存在。如果你使用MySQL,请启动你的数据库。
  • Connection closed / Operation cancelled :这可能是由Apache配置中错误的KeepAlive设置引起的。确保KeepAlive设置为On,并尝试提高KeepAliveTimeoutMaxKeepAliveRequests的参数。
  • No basic authentication headers were found 此错误显示在您的data/nextcloud.log文件中。某些Apache模块(如mod_fastcgimod_fcgidmod_proxy_fcgi)未将所需的身份验证标头传递给PHP,因此通过WebDAV,CalDAV和CardDAV客户端登录到Nextcloud失败。有关如何正确配置您的环境的信息可以在论坛中找到。
[/ssbluelist]

解决Web服务器和PHP的问题

日志文件

发生问题时,第一步是检查PHP提供的日志文件,Web服务器和Nextcloud本身。

[infobox]在下文中,假定使用mod_php运行Apache2的默认Debian安装的日志文件路径。在其他Web服务器上,Linux发行版或操作系统可能有所不同。[/infobox]

[ssbluelist]

  • Apache2的日志文件位于 /var/log/apache2/error.log.
  • PHP的配置文件可由 /etc/php5/apache2/php.ini配置. 你需要将 log_errors 设置为 On,然后在 error_log中 选择存放日志文件的目录. 完成修改后需要重启Web服务器。
  • Nextcloud的日志文件位于/var/www/nextcloud/data/nextcloud.log.
[/ssbluelist]

Web服务器和PHP模块

[infobox]Nextcloud不支持Lighttpd,所以Nextcloud一些特性无法在Lighttpd上工作[/infobox]

目前已知一些Web服务器或PHP模块会导致各种问题。以下是这些模块的大概列表:

[ssbluelist]

  1. Apache
  • mod_pagespeed
  • mod_evasive
  • mod_security
  • mod_reqtimeout
  • mod_deflate
  • libapache2-mod-php5filter (可以用libapache2-mod-php5替代)
  • mod_spdy 与 libapache2-mod-php5 / mod_php 共同工作时(可使用fcgi 或 php-fpm 替代)
  • mod_dav
  • mod_xsendfile / X-Sendfile (如果配置不正确,会导致下载失败)
  1. NginX
  • ngx_pagespeed
  • HttpDavModule
  • X-Sendfile (如果配置不正确,会导致下载失败)
  1. PHP
  • eAccelerator
[/ssbluelist]

comments powered by Disqus