Nextcloud自动配置-适用于批量安装

Posted by 橙叶 on Sun, Oct 15, 2017

如果Nextcloud需要安装在多台服务器上,按通常的步骤,你需要对多台服务器分别做配置和部署。即使借助命令行安装的方式,工作量也不小。为了解决这个问题,可以使用Nextcloud提供的自动配置功能。通过编辑 

/conf/autoconfig.php

 就可以为Nextcloud提供一个安装的“模板”,节省配置所用的时间。

现在我们来看看如何使用这个功能:

[infobox]

这个autoconfig.php中的一些参数与config.php中相似,大部分可以直接挪用,但是有两个参数不同的:

autoconfig.php config.php
directory datadirectory
dbpass dbpassword
[/infobox]

配置选项

在未安装的Nextcloud的

conf/

 目录下创建一个名为

autoconfig.php

 的文件。你也可以将它放在下载好的Nextcloud安装包中,编辑完后分发出去

data目录位置

这是一个示例:

<?php
$AUTOCONFIG = array(
  "directory"     => "/www/htdocs/nextcloud/data",
);

这个示例指明了data目录的位置为

/www/htdocs/nextcloud/data

 ,你也可以将它改为其它的位置,比如

/cloudserver/data

 :

<?php
$AUTOCONFIG = array(
  "directory"     => "/cloudserver/data",
);

目录名要求为绝对目录。而且要保证这个目录的存在并且权限正确。

如果

autoconfig.php

 中只有以上内容,那么在浏览器中访问Nextcloud时仍然会要求你输入其它的信息。

SQLite数据库

如上,如果你只在

autoconfig.php

 中只填写有关了SQLite数据库的配置信息,那么在浏览器中访问Nextcloud时仍然会要求你输入其它的信息。

这是一个示例:

<?php
$AUTOCONFIG = array(
"dbtype" => "sqlite",
"dbname" => "nextcloud",
"dbtableprefix" => "",
);

在上面的示例中,

dbtype

 指明了数据库类型为

sqlite

 ,当然你也可以将它改为

mysql

 之类以使用其它数据库,如果这样的话后面的机箱就会有所不同,这个我将在下面谈到;而

dbname

 则指明了数据库的名字为

nextcloud

 ;

dbtableprefix

 则指明了数据库每行的前缀,如果你要把多个Nextcloud安装到同一数据库(不推荐)而不彼此冲突的话,需要保证这一项的不同。

MySQL数据库

除了SQLite数据库,还可以使用MySQL数据库,连接MySQL数据库所需的几项配置都可以在其中一次性指定。

下面是一个示例:

<?php
$AUTOCONFIG = array(
  "dbtype"        => "mysql",        //数据库类型:mysql
  "dbname"        => "nextcloud",    //数据库名:nextcloud
  "dbuser"        => "username",     //数据库用户名:username
  "dbpass"        => "password",     //用户密码:password
  "dbhost"        => "localhost",    //数据库的地址
  "dbtableprefix" => "",             //行前缀(参见SQLite Database中的介绍)
);

[infobox]有一点需要注意的是,这个自动配置文件并不会自动创建数据库。所以要求在安装Nextcloud时,数据库已经存在[/infobox]

PostgreSQL 数据库

同样的,autoconfig也可以配置Nextcloud所支持的PostgreSQL,其配置项与MySQL中的相仿:

<?php
$AUTOCONFIG = array(
  "dbtype"        => "pgsql",        //数据库类型:pgsql
  "dbname"        => "nextcloud",    //数据库名:nextcloud
  "dbuser"        => "username",     //数据库用户名:username
  "dbpass"        => "password",     //用户密码:password
  "dbhost"        => "localhost",    //数据库的地址
  "dbtableprefix" => "",             //行前缀(参见SQLite Database中的介绍)
);

[infobox]有一点需要注意的是,这个自动配置文件并不会自动创建数据库。所以要求在安装Nextcloud时,数据库已经存在[/infobox]

一次性配置

如前文所说,如果在

autoconfig.php

 中只设置了安装Nextcloud所需的部分参数,那么在首次访问Nextcloud时,仍然会要求你设置其余的参数。如果所有所需配置已在其中指明,那么访问Nextcloud时就可以直接登录。

下面是一个完整的示例:

<?php
$AUTOCONFIG = array(
  "dbtype"        => "mysql",
  "dbname"        => "nextcloud",
  "dbuser"        => "username",
  "dbpass"        => "password",
  "dbhost"        => "localhost",
  "dbtableprefix" => "",
  "adminlogin"    => "root",
  "adminpass"     => "root-password",
  "directory"     => "/www/htdocs/nextcloud/data",
);

在这个示例中的大部分参数已经在前文中介绍过了,注意两个新的参数:

adminlogin

 和

adminpass

 ,这两个参数指明了管理员账户的用户名和密码:

 "adminlogin"    => "root",             //管理员用户名为root
 "adminpass"     => "root-password",    //管理员密码为root-password

使用

autoconfig.php

 可以帮助你解决配置Nextcloud的诸多麻烦,它也可以与Shell脚本配置使用,实现更强大的功能。



comments powered by Disqus