2019年Nextcloud私有云安装常见问题汇总及优化

采用LAMP架构安装Nextcloud私有云盘是一个很简单的过程,但是由于是开源软件,难免会存在一些BUG和小问题,这里罗列了安装过程中可能会出现的一些问题并汇总,仅供参考。

#issues 修复记录
1.升级版本后,网页端无法登陆,但是手机端、os client均可以正常登陆
[fixed]通过打补丁可以解决

wget  https://patch-diff.githubusercontent.com/raw/nextcloud/server/pull/11103.patch
root@localhost:/var/www/html/nextcloud# patch -p1 < 11103.patch

2.内部服务器http 500错误,PHP内存限制低于建议值512MB.
[fixed]调整php memory大小,可以参考上文中的配置进行设置,编辑 /etc/php/7.3/apache2/php.ini,这里将memory_limit改为2048M。

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit =2048M

3.手机端上传文件时提示WebDAV Locked,文件被锁
[fixed]禁用filelocking功能
在/nextcloud/config/config.php文件中添加
‘filelocking.enabled’ => false,
参考:OCA\DAV\Connector\Sabre\Exception\FileLocked – DB race condition

14.已禁用事务性文件锁定,这可能在竞争条件下导致问题。
在Nextcloud根目录/config/config.php 中启用 “filelocking.enabled” 可以避免此问题。

4.内存缓存未配置,为了提升使用体验,请尽量配置内存缓存
[fixed] Nextcloud官网给出的推荐是配置APCu本地缓存,如果你的应用场景涉及到了分布式缓存,可以使用APCu+Memcached或者APCu+Redis进行搭配设置。这里Memcached和Redis二选一即可。

1>.安装APCu

apt install php-apcu
service apache2 restart

2>.安装完成后编辑 /home/wwwroot/cloud.yourdomain.com/config/config.php 文件,加上
‘memcache.local’ => ‘\OC\Memcache\APCu’,

5.PHP 的 OPcache 模块未载入,推荐开启获得更好的性能。
[fixed]
1>.安装OPcahe
cd /root/lnmp1.5
./addons.sh install opcache
2>.配置OPcahe

打开php.ini文件,vim /etc/php/7.3/fpm/php.ini,nextcloud推荐配置如下

[Zend Opcache]
zend_extension=”opcache.so”
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=30
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.save_comments=1

6.该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
[fixed]
1>.安装ImageMagick
apt install php-imagick
2>.修改 /usr/local/php/etc/php.ini,第一行加上:
extension=”imagick.so”

7.nextcloud-problem-occ db:convert-filecache-bigint
[fixed]

cd /home/wwwroot/cloud.yourdomain.com/
sudo -u www php occ db:convert-filecache-bigint

其中www是网站用户名,视情况而定,ls -l 可以查看用户名和用户组

9.
nextcloud-problem-add-http-header
extcloud-problem-add-http-header-no-referrer
[fixed]这五个header的问题是由重复配置造成的,在 /etc/apache2/cloud.yourdomain.conf 中把这些注释掉即可。

10.HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS.
[fixed]
在 /etc/apache2/www.cloud.yourdomain.conf 中添加以下代码

add_header Strict-Transport-Security “max-age=15768000;preload;”;

11.挂载外部存储设备时,提示“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息””

[fixed]进入VPS后台安装组件解决

apt install libsmbclient-dev
apt install smbclient

12.数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。索引修复后会大大提高相应表的查询速度。

sudo -u www-data php occ db:add-missing-indices

13.数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。

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

15.您的网页服务器未正确设置以解析“/.well-known/caldav”,尤其是在大版本升级以后会出现。这是由于Apache2未开启rewrite功能,或者虚拟机目录配置文件中未添加“AllowOverride All”参数,使得Nextcloud无法使用网站根目录下.htaccess文件参数所致。

a2enmod rewrite
service apache2 restart

17.Please contact your administrator. If you are an administrator, edit the “trusted_domains” setting in config/config.php like the example in config.sample.php.
[fixed]需要进入后台config.php文件,在域名配置中添加你的域名进行放行

18.SQLSTATE[HY000] [1045] Access denied for user ‘ clouduser2018’@’localhost’ (using password: YES)

大意就是你有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户,然后执行 FLUSH PRIVILEGES

$ mysql -uroot -p
提示输入数据库入口密码: xxxxxx
>use mysql
>Delete FROM user Where User=” and Host=’localhost’;
>FLUSH PRIVILEGES ;

19.Nextcloud后台日志提示如下错误:”Module ‘imagick’ already loaded at Unknown#0″

原因:名为 “imagick” 的 module 有两个加载的途径,1 是直接把这个模块编译进了 php,2 是在 php 的配置文件 php.ini 中又添加了 extension=imagick.so

[fixed]在/etc/php/7.3/apache2/php.ini 去掉相应的 extension=imagick.so,并 php -m 查看加载的扩展中有没有此项(虽然删去了配置,但是也应该存在),你也可以使用 php -i | grep Configure 来查看编译选项。

然后输入sudo service apache2 restart 命令,在后台可以看到错误消失。

 

23

本文由作者 Rebaka 发布在 TNEXT , 转载请联系service@tnext.org授权处理,获得授权后请保留文章的完整性并附上原文链接: https://tnext.org/3919.html

We will be happy to hear your thoughts

发表评论

TNEXT