NextCloud工具的安装

安装NextCloud所需的运行环境LAMP(Linux、Apache、MySQL、PHP)

安装Apache2

  • Linux终端下执行命令sudo apt-get update 先升级所有软件的依赖信息
  • 安装Apache2sudo apt-get install apache2
  • 检验是否安装成功进入浏览器地址localhost:80查看,如果出现了apache2的基础界面就表示apache安装成功了

安装PHP

  • 执行安装命令
sudo apt-get install php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php-imagick php7.2-xml php7.2-zip
sudo apt-get install libapache2-mod-php7.2
  • 测试安装情况,执行php -v能看到php版本就ok
  • 测试apache2 能否解释php
  • 在/var/www/html 下创建一个phpinfo.php文件,其中的内容为
<?php
phpinfo()
?>
  • 重启apache2服务service apache2 restart
  • 浏览器访问 localhost:80/phpinfo.php,如果顺利跳出php的信息页面,表示apache能正常解释php,至此php配置成功

安装MySQL

  • sudo apt-get install mysql-server mysql-client
  • 此时需要登录MySQL,root密码未知无法登录
  • 打开/etc/mysql/debian.cnf文件,该文件中记录了一个debian用户及其密码,使用该用户进入MySQL,然后修改root密码,之后用root登录
mysql -u debian-sys-maint -p  # 使用debian-sys-maint用户登录

# 进入mysql后修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# root用户登录
mysql -u root -p
  • 创建Nextcloud的数据库及用户与授权
create database nextcloud;
create user 'nextcloud'@'%' identified by 'nextcloud';
grant all privileges on nextcloud.* to 'nextcloud'@'%';

NextCloud配置HTTPS

  • 利用openssl 生成自签证书
openssl genrsa -out onlyoffice.key 2048
openssl req -new -key onlyoffice.key -out onlyoffice.csr
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
openssl dhparam -out dhparam.pem 2048
  • 这里NextCloud部署在apache2上,所以拷贝生成的证书和密钥到/etc/apache2/cert
  • a2enmod ssl执行该命令为apache2开启ssl模块
  • sites-avaliable下的站点文件default-ssl中修改一些内容,修改SSLCertificateFile 参数的值为你的 .crt文件的路径,修改SSLCertificateKeyFile 参数值为你的 .key文件的路径
  • 最后执行’a2ensite default-ssl’来将该站点配置启用
  • 最后restart你的apache2服务器即可通过https访问

NextCloud官网下载NextCloud的压缩包

  • 解压到/var/www/html/ 目录下
  • 此时在浏览器访问localhost:80/nextcloud如果出现权限不够的问题时
  • 执行以下命令
cd /var/www/html
chown www-data nextcloud -Rf
chmod 770 nextcloud -Rf
  • 重启Apache服务service apache2 restart
  • 再次访问localhost:80/nextcloud就可以正常进行nextcloud的安装配置了

全文搜索插件nextant安装

  • 官网app下载nextant的压缩包,需要找对应的版本
  • 解压到/var/www/html/nextcloud/apps下
  • 配置solr服务
  • 管理员用户登录nextcloud,在设置的app中启用nextant,之后在设置中的附加设置中找到nextant的配置,填写solr的服务地址后点击保存于测试,测试成功表示该插件可以正常使用了
  • 具体安装过程百度上有个 橙叶博客 我也是在这里学习的

安装office预览插件onlyoffice

  • 安装Dockersudo apt-get install docker.io
  • 拉取ONLYOFFICE Document Server 的Docker镜像sudo docker pull onlyoffice/documentserver这一步可能会出现源速度慢无法下载的问题,你需要修改为国内源
  • 启动Docker容器,以查看onlyoffice运行情况`sudo docker run -i -t -d -p 82:80 onlyoffice/documentserver
  • 能正常在浏览器82端口看到onlyoffice is running后我们就可以着手配置HTTPS了
  • 同样需要SSL证书,可以新生成或者使用之前的
  • 在主机的下创建映射目录用来将你的证书映射到docker容器中mkdir -p /app/onlyoffice/DocumentServer/data/certs,复制你的证书相关文件到该目录下
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
  • 开始运行容器并映射证书目录
sudo docker run -i -t -d -p 444:443  -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
  • 此时访问浏览器 https://localhost:444 查看onlyoffice的https配置成功否
  • 之后你需要在nextcloud中安装onlyoffice的app并进行配置,配置过程有很多问题
  • 还需要进入你的onlyoffice的容器中去修改配置文件,首先使用sudo docker ps获取你onlyoffice容器的容器ID,然后进入该容器中去修改sudo docker exec xxxxxx /bin/bash,之后进入/etc/onlyoffice/..../default.json的配置文件中将reject开头的一个验证的配置设置为false,然后保存退出,你对容器的修改只在本次有效,下次进入容器修改就会消失,所以需要执行sudo docker commit xxxxxxxID onlyoffice/mine来保存你对容器的修改为一个新的镜像image
  • 然后退出docker容器,在你的服务器上去修改nextcloud的配置,位于/var/www/html/nextcloud/config/config.php文件,在文件的结尾添加上
'onlyoffice' =>
array(
'verify_peer_off' =>true
)
  • 重启apache2
  • 进入nextcloud中配置onlyoffice(注意这里配置onlyoffice服务必须是HTTPS的),此时如果不在出现bad Request应该就是完成了上面的配置了,如果出现一个download…的Error,个人认为就是有onlyoffice服务不能跟nextcloud位于同一域名下的问题,解决这个问题的方法,本人是通过在局域网中使用其他设备来配置,配置的ip为服务器的ip就可以成功配置,网上好像是通过反向代理来解决这个问题的
  • 配置成功后打开一个office文件,如果出现红字提示…请联系管理员,很有可能是因为一个js文件无法加载,无法加载好像是因为SSL证书的缘故,此时你单独在网页中打开这个js文件的URL去手动使浏览器可以访问这个js文件,之后再刷新就可以解决问题了。(js文件的地址是https://yourip:444/web-apps/apps/api/documents/api.js)