版本:15.0.0
运行环境:请参考官方文档
安装本体
创建服务器专属用户和组
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
数据库
MariaDB是MySQL的一个分支,包含在CentOS7的默认程序列表之中,当然要想正常使用还需要一些包,用yum -y install mariadb-*
可以直接安装全部。
- 启动服务
systemctl start mariadb // 立刻启动
systemctl enable mariadb // 设为开机启动
- 安全配置
mysql_secure_installation // 主要是为了设置root密码
- 创建Nextcloud专用的数据库和用户
mysql -u root -p // 以root或者其他具有权限的用户登录
create database nextcloud; // 创建nextcloud数据库
// 创建nextcloud用户
create user nextcloud@localhost identified by 'password';
// 授予用户对nextcloud数据库的所有权限
grant all privileges on nextcloud.* to nextcloud@localhost identified by 'password';
flush privileges; // 刷新数据库权限
php
CentOS默认的php版本比较低,需要手动更新rpm,这里使用Webstatic.com提供的镜像,安装方式如下:
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
通过yum list php*
可以查看有哪些可供安装的php包,这里使用的是7.2版本,偷个懒直接安装所有相关的包。
yum -y install php72w*
- 配置php-fpm
找到配置文件/etc/php-fpm.d/www.conf
,更改用户和组。
user = www
group = www
- 启动php-fpm
systemctl start php-fpm
systemctl enable php-fpm
nginx
- 安装
请参考菜鸟教程。 - 配置
找到nginx.conf
,更改用户和组。
user www www;
- Nextcloud
把官方配置复制到nginx.conf
的http
中即可,将server_name
、ssl_certificate
和ssl_certificate_key
等改为自己的,像[::]:
、http2
这些,如果服务器没有安装相应的模块就去掉。
注意Nextcloud文件夹的路径要与server
中的root
一致,并且Nextcloud文件夹的所有权限要对服务器专属用户和组开放。用wget下载Nextcloud比较慢,可以用迅雷从官网下载之后再上传到服务器。
chown -Rf www:www nextcloud // 更改nextcloud文件夹所属的用户和组
chmod -Rf 770 nextcloud // 对所属用户和组开放所有权限
安装插件
Callobora Online
Callobora Online是官方支持的文档在线协作插件,前身是Libreoffice Online,所以千万别看浏览器报错Libreoffice Online not loaded yet
就大惊失色,去搜索Libreoffice Online,二者是一个东西。
- 安装镜像
docker安装镜像,参考官网,注意下面的domain是Nextcloud的域名而非Callobora Online的域名。如果填错,Callobora Online会拒绝来自Nextcloud的访问,也就是文档会加载不出来。
docker pull collabora/code
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.nextcloud\\.com' --restart always --cap-add MKNOD collabora/code
- nginx配置
配置参考官方文档。 - 常见问题
不能正常使用要用docker logs mirror_name
去查docker镜像的日志。
无法打开文件,文件是否格式不正确或者已损坏。在日志里会发现某个地址访问不了的错误:
Requesting address is denied: ::ffff:172.17.0.1
向docker配置文件/etc/docker/daemon.json
中加入相应网关即可。然后重新加载配置文件,重启docker。
"bip": "172.17.0.1/24" // 加的网关配置
systemctl daemon-reload // 重新加载配置文件
systemctl start docker // 重启docker