Nextcloud常见问题解决方法
自主部署nextcloud后,后台经常会出现这样那样的问题,这里汇总并分享解决方案
后台管理界面出现“您的安装没有设置默认的电话区域”问题,这个一般需要修改config.php文件(映射文件夹或者容器内),找到config.php,然后在文件中加入
'default_phone_region' => 'CN',
定时执行后台任务:默认情况下,每次打开Nextcloud页面之后会加载一个任务,根据官方建议使用系统定时来优化性能,可以通过以下方式完成
crontab -e
*/5 * * * * docker exec --user www-data nextcloud-container-name or container-ID php cron.php
给nextcloud添加redis缓存,可以通过部署redis容器,之后好需要修改config.php文件,注意这一步经常会导致内部错误,请务必做好备份
docker run --name redis -p 6379 -d redis #docker安装redis, -p 指定容器端口
查询redis容器ip地址,找到redis容器的ip地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
编辑nextcloud的配置文件config.php,我的redis对应的是nextcloud_cache_1 - 192.168.48.3 ,修改config.php文件中对应部分。修改完成后保存配置文件,重启nextcloud容器
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => '192.168.48.3', # redis容器对应ip地址
'port' => 6379, #redis容器端口号
),
查看是否成功缓存,可以通过以下命令进行检查
docker exec -it redis bash
# 进入redis-cli
> redis-cli
> keys *
如果缓存成功,则会返回以下
nextcloud安装后应用商店不显示,这个往往是因为国内的网络被墙的缘故,可以替换一下,在配置文件config.php中加入如下配置
'appstoreenabled' => true,
'appstoreurl' => 'https://www.orcy.net/ncapps/v2/',
后台出现维护窗口时间为设置时“Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.”,可以通过以下命令解决
sudo docker exec --user www-data -it nextcloud-container-name-or-ID php occ config:system:set maintenance_window_start --value=“17”
后台管理面板警告:“Your web server is not properly set up to resolve .well-known URLs, failed on: /.well-known/caldav 更多细节,请参见文档 ↗。”一般都是反向代理设置的问题,可以通过在nginx中添加如下代码
location ^~ /.well-known {
# The following 6 rules are borrowed from `.htaccess`
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
# Anything else is dynamically handled by Nextcloud
location ^~ /.well-known { return 301 /index.php$uri; }
try_files $uri $uri/ =404;
}
如果是用的npm,则在advance部分加上上述代码
后台提示缺少缺少bz2模块解决办法(最新版nextcloud一般没有此问题):
docker exec -it [Nextcloud ID/Name] /bin/bash #进入容器
apt-get update
apt-get install -y libbz2-dev #安装libbz2-dev
docker-php-ext-install bz2 #启用bz2
exit #退出容器
退出容器后,重启容器即可。
解除文件块大小,提升传输速度。在有良好的传输网络下,比如局域网,应当解除块大小限制来提升网络传输效率,默认是102400(10M),设置为0即可关闭块大小限制
docker exec --user www-data 【nextcloud-container-name-or-ID】 php occ config:app:set files max_chunk_size --value 0
”php-imagick模块” 问题:此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。可以通过以下步骤解决(这个问题在最新版nextcloud中不会出现)
docker exec -it 【nextcloud-container-name-or-ID】 /bin/sh #进入nextcloud容器
apk add --no-cache imagemagick #执行安装 imagemagick或者用下面的命令通过apt安装
apt install libmagickcore-6.q16-6-extra
安装完毕后,重启nextcloud