使用命令行安装Nextcloud

Posted by 橙叶 on Sat, Sep 9, 2017

Nextcloud和我们熟悉的很多php程序一样,可以通过Web页面完成安装。但是在Web页面安装可能会遭到不怀好意的人干扰,而且在安装时刷新或者关闭浏览器都可能会造成安装失败。所以你可以选择更稳妥的使用OCC命令安装Nextcloud。

认识OCC命令

occ命令是ownCloud/Nextcloud的命令行界面。您可以使用occ执行许多常见的服务器操作,例如安装和升级ownCloud/Nextcloud,管理用户,加密,密码,LDAP设置等。

准备

在官网下载Nextcloud压缩包,解压到网站根目录里:

设置权限,这是使用occ命令的关键一步:

chown www-data:www-data -R /var/www/html

[infobox]本文演示所用的是基于Docker运行的Ubuntu系统,Apache默认用户和组为www-data。可能与你的环境有所不同,在安装过程中请稍作注意。[/infobox]

设置完毕后,执行

ls -l

 查看权限,如下图所示。

更细致的目录权限设置可以在这篇文章中找到:VPS快速完美部署ownCloud/Nextcloud全过程(1)

执行:

sudo -u root www-data php occ

因为Nextcloud尚未安装,所以只有有限的命令可用。

开始

我们要用的是maintenance:install 命令。先help一下,看看我们可以安装Nextcloud会用到的一些选项:

sudo -u www-data php occ help maintenance:install
Nextcloud is not installed - only a limited number of commands are available
Usage:
 maintenance:install [--database="..."] [--database-name="..."]
[--database-host="..."] [--database-user="..."] [--database-pass[="..."]]
[--database-table-prefix[="..."]] [--admin-user="..."] [--admin-pass="..."]
[--data-dir="..."]

Options:
 --database               #数据库类型(默认为"sqlite")
 --database-name          #数据库名
 --database-host          #数据库地址(默认为"localhost")
 --database-user          #连接数据库所用的账号
 --database-pass          #连接数据库所用的密码
 --database-table-prefix  #表前缀(默认为"oc_")
 --admin-user             #设置管理员的用户名
 --admin-pass             #设置管理员的密码
 --data-dir               #data目录的位置(默认为"/var/www/nextcloud/data")
 --help (-h)              #显示帮助信息
 --quiet (-q)             #静默安装,不输出任何信息
 --verbose (-v|vv|vvv)    #输出信息的详细程度(1为一般详细,2为更详细的输出,3为调试)
 --version (-V)           #显示应用版本
 --ansi                   #强制使用ANSI编码输出
 --no-ansi                #禁用ANSI编码输出
 --no-interaction (-n)    #不进行任何对话

这是一个安装示例(我喜欢先引入一个示例,这样更清晰):

sudo -u www-data php occ maintenance:install \
--database "mysql" \
--database-name "nextcloud"  \
--database-user "root" \
--database-pass "password" \
--admin-user "admin" \
--admin-pass "password"
Nextcloud is not installed - only a limited number of commands are available
Nextcloud was successfully installed

我们来看看这个示例中都用了哪些选项吧。

--database "mysql"

 申明了要使用的数据库类型为MySQL,当然你也可以将

mysql

 替换成其它的:

sqlite (SQLite3 -仅限Nextcloud社区版使用)
mysql (MySQL/MariaDB)
pgsql (PostgreSQL)
oci (Oracle - 仅限Nextcloud企业版使用)
--database-name "nextcloud"

 指明了使用的数据库名,这个数据库一般要求提前创建;

--database-user "root"

 指明使用root作为数据库用户(这个其实不太推荐);

--database-pass "password"

 指明数据库用户的密码为password;

--admin-user "admin"

 指明Nextcloud的管理员用户的用户名(登录名)将被设置为admin;

--admin-pass "password"

 指明管理员用户的密码设置为password。

很显然没必要用上所有的选项。

我想一个与Web安装页面的对照图能让你更好地明白每个选项的用法:

上图中的完整命令应该是:

sudo -u www-data php occ maintenance:install \
--database "mysql" \
--database-user "ncuser" \
--database-pass "password456" \
--database-name "ncdatabase" \
--database-host "localhost" \  #这个也可以去掉,因为默认就是localhost
--admin-user "ChengYe" \
--admin-pass "password123" \
--data-dir "/path/to/data"

OK,你现在应该可以按照自己的需要选择安装命令了。

小结

本文给出了安装Nextcloud的另一种途径,这种方法更适合统一安装,减少了安装步骤。

 



comments powered by Disqus