Nextcloud默认文件的自定义

Posted by 橙叶 on Sat, Dec 2, 2017

在完成Nextcloud安装后,或者创建了一个新用户之后,(该用户)的根目录下就会出现这些目录和文件:

在Nextcloud尚未安装时,这些文件存放在core/skeleton目录中,在安装或创建用户时,这些文件将会被自动复制到data/目录中,所以在如果用户删除这些文件的话,是不会影响到core/skeleton中的原文件的。

换个思路,如果用自己的文件替换core/skeleton中的内容,就可以自定义新用户默认的文件。

示例

如图,我在一个尚未完成安装的Nextcloud实例上,在core/skeleton 目录中添加了Winterfell-background.png文件:
root@5df28f05c05b:/var/www/html/core/skeleton# ls -l
total 5024
drwxr-xr-x 2 www-data root    4096 Nov 18 06:42 Documents
-rw-r--r-- 1 www-data root 4143672 Nov 18 06:42 Nextcloud Manual.pdf
-rw-r--r-- 1 www-data root  462413 Nov 18 06:42 Nextcloud.mp4
drwxr-xr-x 2 www-data root    4096 Nov 18 06:42 Photos
-rw-r--r-- 1 www-data root  525833 Dec  2 11:16 Winterfell-background.png
注意权限要与其它文件保持一致,至少可读。
  • 文件权限为:644 ,用户和组:apache:apache
  • 目录权限为:755,用户和组:apache:apache
接下来我们完成Nextcloud的安装。

完成安装后,进入Nextcloud,我们就可以看到刚才添加的文件了,它和其它文件一样可以查看、编辑、删除。

我们来看看用户的在data目录下的文件:

root@5df28f05c05b:/var/www/html/data/ORGLEAF/files# ls
Documents  Nextcloud Manual.pdf  Nextcloud.mp4	Photos	Winterfell-background.png

可以看到,Winterfell-background.png已经和其它文件一起被复制了进去。

自定义默认文件目录

如果你按照上述步骤来自定义默认文件的话,就会出现一个问题:当Nextcloud升级时,这个core/skeleton就会被替换,你所做的修改也就不存在了。当然你也可以再重新修改一次,不过还有更好的方法。

你可以在config/config.php文件中添加一个参数,这个参数可以自定义默认文件目录的名字,例如我在core/下创建一个custom_skeleton目录,想让它作为存放默认文件的目录,那么就可以这样写(添加到?>之前):

'skeletondirectory' => 'core/custom_skeleton',

这样,Nextcloud在安装或创建新用户时就会从core/custom_skeleton复制文件,当Nextcloud更新时,这个目录也不会被替换以至于丢失自定义的默认文件。

P.S.如果你将‘skeletondirectory’ => 后面的参数留空,像这样:

'skeletondirectory' => '',

那么Nextcloud就不会去复制任何文件,这样用户的文件夹默认就是空的。



comments powered by Disqus