Nextcloud和我们熟悉的很多php程序一样,可以通过Web页面完成安装。但是在Web页面安装可能会遭到不怀好意的人干扰,而且在安装时刷新或者关闭浏览器都可能会造成安装失败。所以你可以选择更稳妥的使用OCC命令安装Nextcloud。
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的另一种途径,这种方法更适合统一安装,减少了安装步骤。