Config.php参数详解-1

Posted by 橙叶 on Sun, May 6, 2018

Nextcloud使用config/config.php文件来控制服务端的运行。config/config.sample.php示例文件中列出了所有可配置的参数,包括示例和默认值。本文将对这些参数进行更细致的讲解。其中大多数参数都可以在管理页面配置,所以如果你想修改一项配置,没必要非得去编辑config/config.php

[infobox]

在安装之初,config/config.php中就已经有了一些基本的参数,一般情况下保持这些参数就可以了。如果需要添加,仅添加你需要的参数即可,不要将config/config.sample.php中全部的内容复制进去。简单来说,就是量体裁衣,取舍有度。 [/infobox]

Nextcloud支持同时使用多个配置文件。Nextcloud可以识别config/目录下所有后缀名为.config.php的文件,并将它们作为config.php的一部分来使用。例如你可以专门为邮件配置创建一个mail.config.php,或为应用(APP)的配置专门创建一个app.config.php。这样你就可以更加轻松的创建和管理自定义配置,以应付大型复杂的配置文件。这些自定义配置文件中的参数将优先于config.php

默认参数

这些参数将有Nextcloud在安装时自动创建,它们都是Nextcloud运行所必需的关键参数。
'instanceid' => '',
这个参数用于唯一地标识一个Nextcloud实例,由安装程序自动生成。以下仅仅只是一个示例,请不要将它应用于你的示例中。这个标识在安装时就可以被自动创建。
'passwordsalt' => '',
密码盐。用于哈希加密所有的密码,由Nextcloud安装程序自动生成。(也可以为每个用户分别加盐)。如果丢失了盐,也就意味着你将丢失所有的密码。这个示例只用来在这儿做演示,请不要动它。
'trusted_domains' =>
  array (
    'demo.example.org',
    'otherdomain.example.org',
  ),
这个列表包含了所有可以用于登录Nextcloud的域名。指定信任域可以抵御HTTP Host头攻击的威胁,所以不要删除它,这是Nextcloud必要的安全检查。

array()中的参数可以是:

[ssbluelist]

  • 主机或虚拟主机的确切主机名,例如demo.example.org,
  • 具有允许端口的确切主机名,例如demo.example.org:443,从其它端口的访问会被拒绝,
  • 使用*做通配符,例如ubos-raspberry-pi*.local,你可以通过ubos-raspberry-pi-1.local和ubos-raspberry-pi-2.local等域名访问。
[/ssbluelist]
'datadirectory' => '/var/www/nextcloud/data',
指定用户数据存储目录的位置。如果你使用SQLite作为数据库,那么SQLite文件也会存放这里面。

默认的目录是/data,在安装Nextcloud可以在Web安装页面上对这一项进行修改。

'version' => '',

当前安装的Nextcloud的版本。当你升级Nextcloud时,这一项会被自动修改,不需要额外的维护。

'dbtype' => 'sqlite',

表明当前使用的数据库的类型,另请参阅config选项supportedDatabases。 可用的数据库对应的参数: [ssbluelist]

  • sqlite(SQlite3)
  • mysql(MySQL/MariaDB)
  • pgsql(PostgreSQL)
[/ssbluelist]

默认值为sqlite

'dbhost' => '',

数据库服务的地址,一般为本地localhost,或者是hostname, hostname.example.com,也可以使用IP地址。 使用hostname:[port]可指定端口号;使用localhost:/path/to/socket可使用Unix socket进行通信。

'dbnname' => 'nextcloud',

Nextcloud数据库名,在安装Nextcloud需进行的设置项之一,如果数据库服务没有什么变动的话,不需要修改。

'dbuser' => '',

Nextcloud用于读写数据库的用户,这在使用相同SQL数据库的Nextcloud实例中必须是唯一的。这同样是在安装过程中设置的,所以你不需要修改它。

'dbpassword' => '',

数据库用户的密码,这同样是在安装过程中设置的,所以你不需要修改它。

'dbtableprefix' => '',

Nextcloud数据库的表前缀,如果要将多个Nextcloud放到一个库(不推荐),需要保证表前缀不同。 默认值为_oc

'installed' => false,

表明Nextcloud实例是否已成功安装; true表示安装成功,false表示安装失败。 默认为false 。

默认的config.php的例子

如果你使用SQLite作为Nextcloud数据库,你的condig.php看起来就会像下面这样。SQLite数据库存放在data/目录下。SQLite是一个简洁、轻量级的数据库嵌入式数据库,适用于测试和简单的安装,但在生产环境中需要使用MySQL或PostgreSQL。
 'occ6f7365735',
  'passwordsalt' => '2c5778476346786306303',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'studio',
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'sqlite3',
  'version' => '7.0.2.1',
  'installed' => true,
);
这是一个使用MairaDB作为数据库的Nextcloud的配置文件的示例:
 'oc8c0fd71e03',
  'passwordsalt' => '515a13302a6b3950a9d0fdb970191a',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'studio',
    2 => '192.168.10.155'
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'mysql',
   'version' => '7.0.2.1',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'oc_carla',
  'dbpassword' => '67336bcdf7630dd80b2b81a413d07',
  'installed' => true,
);
 

用户体验

这些参数可以设置用户界面的一些内容的默认样式。
'default_language' => 'en',
这会在您的Nextcloud服务器上设置默认语言,使用ISO_639-1语言代码,例如en代表英语,zh代表中文,fr代表法语。它会覆盖公共页面上的自动语言检测功能,例如登录或共享项目。在“个人 - >语言”下配置的用户语言首选项会在登录后覆盖此设置。Nextcloud为德语“de”和“de_DE”提供两种不同的语言代码。 'de'用于非正式的德语,'de_DE'用于正式的德语。通过将此值设置为'de_DE',您可以强制执行德语的正式版本,除非用户明确选择了不同的东西(同样适用于中文的简体zh-cn与繁体zh-hk、zh-tw)。 默认语言为en
'force_language' => 'en',
这一项设置可以强制用户使用某种语言,用户无法在Web页面上进行修改。如果需要让用户使用不同的语言,但不允许他们修改,可以将这一项设置为true来代替语言代码。
'defaultapp' => 'files',
当用户登录时启用的第一个应用(APP)。在Apps菜单中点击该app,这个app的名字会出现在URL中,例如documents、calendar、gallery(在apps/目录里也可以看到)。你可以添加多个app,使用逗号来分隔他们,如果用户登录时第一个app启动失败,就会启动第二个……以此类推。 如果不设置此项,默认为Files app。 默认值为files
'knowledgebaseenabled' => true,
设置为true将启用用户菜单中的帮助菜单项(Nextcloud Web界面的右上角)。设置为false则不显示帮助项目。
'allow_user_to_change_display_name' => true,
设置为true将允许用户修改他们的显示名(在Personal页面中),设置为false不允许用户修改。
'remember_login_cookie_lifetime' => 60*60*24*15,
用户登陆Cookie的生命周期,当用户在登陆页面勾选“保持登陆”时应用此设置。 默认为60*60*24*15秒(15天)。
'session_lifetime' => 60 * 60 * 24,
当用户进入不活跃的状态后,session的有效期。默认为60*60*24(24小时)。
'session_keepalive' => true,
当用户登录到Web UI时启用或禁用会话保持活动状态。启用此功能会向服务器发送“心跳”以防止超时。 默认为true
'token_auth_enforced' => false,
为客户端强制执行令牌认证,这会阻止使用用户密码的请求以增强安全性。用户需要在个人设置中生成令牌,并将其用作客户端的密码。 默认关闭false
'auth.bruteforce.protection.enabled' => true,
是否启用Nextcloud附带的暴力保护功能。 出于安全考虑,不要禁用此功能。 默认值为为true
'skeletondirectory' => '/path/to/nextcloud/core/skeleton',
默认文件所在的目录。当有新用户创建时,Nextcloud会将该目录下的文件复制进用户的存储目录里。将这一项留空则不复制任何文件。 {lang}可以用作用户语言的占位符。如果该目录不存在,它将回到非方言(从de_DE到de)。如果它也不存在,则会回到默认状态。

默认值为core/skeleton



comments powered by Disqus