如果Nextcloud需要安装在多台服务器上,按通常的步骤,你需要对多台服务器分别做配置和部署。即使借助命令行安装的方式,工作量也不小。为了解决这个问题,可以使用Nextcloud提供的自动配置功能。通过编辑
/conf/autoconfig.php
就可以为Nextcloud提供一个安装的“模板”,节省配置所用的时间。
现在我们来看看如何使用这个功能:
[infobox]
这个autoconfig.php中的一些参数与config.php中相似,大部分可以直接挪用,但是有两个参数不同的:
autoconfig.php | config.php |
---|---|
directory | datadirectory |
dbpass | dbpassword |
在未安装的Nextcloud的
conf/
目录下创建一个名为
autoconfig.php
的文件。你也可以将它放在下载好的Nextcloud安装包中,编辑完后分发出去
这是一个示例:
<?php $AUTOCONFIG = array( "directory" => "/www/htdocs/nextcloud/data", );
这个示例指明了data目录的位置为
/www/htdocs/nextcloud/data
,你也可以将它改为其它的位置,比如
/cloudserver/data
:
<?php $AUTOCONFIG = array( "directory" => "/cloudserver/data", );
目录名要求为绝对目录。而且要保证这个目录的存在并且权限正确。
如果
autoconfig.php
中只有以上内容,那么在浏览器中访问Nextcloud时仍然会要求你输入其它的信息。
如上,如果你只在
autoconfig.php
中只填写有关了SQLite数据库的配置信息,那么在浏览器中访问Nextcloud时仍然会要求你输入其它的信息。
这是一个示例:
<?php $AUTOCONFIG = array( "dbtype" => "sqlite", "dbname" => "nextcloud", "dbtableprefix" => "", );
在上面的示例中,
dbtype
指明了数据库类型为
sqlite
,当然你也可以将它改为
mysql
之类以使用其它数据库,如果这样的话后面的机箱就会有所不同,这个我将在下面谈到;而
dbname
则指明了数据库的名字为
nextcloud
;
dbtableprefix
则指明了数据库每行的前缀,如果你要把多个Nextcloud安装到同一数据库(不推荐)而不彼此冲突的话,需要保证这一项的不同。
除了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]
同样的,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