- 下面把我使用中的技巧、踩坑等陆续记录下来,让广大网友也可以作为一个参考,以下文字全部为本人实践,非网上复制粘贴。
- 本文是基于Turnkey的NextCloud系统,适合小白,安装后即可通过https访问(开箱即用的SSL支持),不需要去搞那些头痛的设置还有证书。系统为Debian10,NextCloud是18,都是最新版本。
- 下载地址:https://www.turnkeylinux.org/nextcloud,同学们下载V16.0的ISO版本即可。NextCloud是默认安装在/var/www/nextcloud/目录下。
1. 安装完成后web界面无法登录
提示如下:
上文中的config.php在此目录中:/var/www/nextcloud/config/config.php
当然,不同安装方法目录路径会有不一样。这么做显然是为了安全,但家庭使用没必要,所以需要去除IP限制,编辑config.php,增加如下“ 2 =>”一行所示,然后保存退出:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'nextcloud.companyname.com',
2 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1':$_SERVER['SERVER_NAME'],
),
再次登录web界面就可以输入用户名、密码了。
2. 软件更新遇到的问题
a. 软件更新界面走到“Check for write permissions”一步提示打叉错误没有权限。
这个原因是软件安装目录中的某些目录权限设置有问题,不管是哪个目录全部更改即可。
ssh登录服务器,切换到目录:/var/www下,更改nextcloud文件夹及其子目录的组,输入:
chgrp -R www-data nextcloud/
*小技巧:目录名称或文件名称不必输入全部,输入1、2个字母用“Tab”键补足即可,注意区分字母大小写。
更改nextcloud文件夹及其子目录的拥有者:
chown -R www-data nextcloud/
再次运行更新,步骤成功往下走,停在下载那一步,此处花时间较长,经常会失败,下面会给出解决方案。
b. 不可自行在 /var/www/nextcloud/ 目录下新建其它目录,否则软件更新时会出错,提示如下:
删除自己新建的目录后正常。
c. 软件更新时间过长,下载速度太慢,一直失败
这个解决方法只能是手动离线更新。注意:以下解决方案的前提是,你自己更新已经走到下载那一步了。
- 根据更新页面提示的网址下载zip升级文件(可用迅雷),然后上传到 /var/www/nextcloud/data/updater-ocxt462gcu40/downloads/目录下替换未完成下载的zip文件。
注:文件夹updater-ocxt462gcu40,其中短横杠后面是随机代码,所以再次提醒大家,一定要运行更新后再操作,否则这里是不会出现这个文件夹的。
*上传软件笔者用的是MobaXterm,用着比较方便,大家可以自行网上下载。 - 修改刚才上传zip文件的拥有者和组权限:
chown www-data *
chgrp www-data *
- 编辑/var/www/nextcloud/data/updater-ocxt462gcu40/文件夹下的隐藏文件 .step 文件,将其中代码:{“state”:“start”,“step”:4} 更改为:{“state”:“end”,“step”:4}。
- 再次点击页面的更新按钮,则跳过了下载的步骤可以继续进行下一步了。
- 再次登录web界面,nextcloud会自动进行版本更新,完成后整个版本更新结束。
d. 版本更新后在管理员概览界面对于数据库有如下警告出现
解决此问题需要执行如下命令:
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
当然根据安装方法不同,occ文件的所在目录会有不同,自己修改即可。
注:对数据库执行操作时要将服务器离线,以免客户端同步时发生问题。
再次检查,网页警告消失。
3. web界面的文件目录有时会和实际服务器中的文件不一致
原因是web界面其实显示的是数据库中的信息,而不是实际的文件信息,所以我们要更新数据库,保持信息一致。
ssh登陆到服务器执行命令:
sudo -u www-data php /var/www/nextcloud/occ files:scan --all
以上是手动更新的方法,如果嫌烦可以设置每天定时自动更新(比如每天凌晨2点)。
执行命令:
crontab -e
编辑文件添加如下命令:
0 18 * * * sudo -u www-data php /var/www/nextcloud/occ files:scan --all
上面的第二个数字18就是更新时间(UTC时间),所以实际执行时间是18+8=凌晨2点。
以上编辑完成后需要重启定时服务,命令如下:
/etc/init.d/cron restart
执行结果保存在这个文件中:/var/mail/root ,可以查看执行结果。
4. 手动离线安装插件
NextCloud有功能丰富的插件可供安装,但是软件内无法访问插件应用商店,只能手动离线安装。
打开插件应用商店的web页面:https://apps.nextcloud.com/
找到自己喜欢的插件,点进去,然后在下载清单里根据自己的软件版本下载相应版本的插件,就是速度比较慢。比如RainLoop的如下:
把下载的rainloop.tar.gz上传到/var/www/nextcloud/apps/目录下,解压缩:
tar -xvf rainloop.tar.gz
删除压缩文件:
rm rainloop.tar.gz
如上所述方法把rainloop目录的所有者和组更改为www-data。
用管理员(admin)账号登录web界面,右上角点头像,下拉菜单点应用,点左侧您的应用,就可以看到所有已安装的插件了,往下拉到最后可以看到RainLoop字样,点击右侧启用,就可以看到网页顶端蓝条上出现RainLoop图标了,点击图标自己愉快的玩耍吧。
5.SSH登录服务器列目录,发现中文文件夹或者文件名称显示乱码
原因是系统初始区域设置为en_US.UTF-8,需要通过如下命令添加中文编码:
dpkg-reconfigure locales
用空格键选中zh_CN开头的4个编码,然后按下“Tab”键把红色光标移动到< OK >上按下回车,系统会自动安装相应的软件。安装完成后再用ls -la列目录就能正常显示中文文件名了。配置界面如下: