在局域网中搭建公司内部使用的个人网盘系统,方便大家分享文档和保存文档使用,采用了 NextCloud + Collabora 的方式搭建。
# yum install -y nana wget
# vim /etc/sysconfig/selinux
SELINUX=disabled
# yum install httpd -y
# yum install -y epel-release
# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# yum -y install yum-utils
查看可安装的 PHP 版本:
# yum repolist all | grep php
选择 php74 版本(也可以安装其他版本)
# yum-config-manager --enable remi-php74
安装:
# yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
查看 php 版本:
# php -v
PHP 7.4.30 (cli) (built: Jun 7 2022 08:38:19) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
调整 httpd 配置,添加默认首页格式 index.php
DirectoryIndex index.html index.php
创建 php 测试文件:
# vim /var/www/html/info.php
打开 httpd 服务:
# systemctl start httpd
打开测试页面:
在浏览器打开:10.2.179.225/info.php
打开 phpinfo 页面即为 php 安装运行正常;
我本机已经安装好了 MySQL,在里面创建数据表;
> create database nextcloud character set utf8mb4 collate utf8mb4_general_ci;
创建用户并赋权限
> grant all on nextcloud.* to nextcloud@'%' identified by 'nextcloud'; flush privileges;
下载及安装
# wget https://download.nextcloud.com/server/releases/nextcloud-24.0.3.zip
解压缩到 httpd 的目录:
# unzip nextcloud-24.0.3.zip -d /var/www/html
# cd /var/www/html
# chown apache -Rf nextcloud
# chmod 770 -Rf nextcloud
重启 httpd 服务
# systemctl restart httpd
运行安装向导
先在本地机器的 hosts 上(用户使用的机器)中添加域名绑定(当然也可以在局域网中搭建 named 服务):
10.2.179.225 nextcloud.zsoft.com
用浏览器打开 http://nextcloud.zsoft.com/nextcloud
- 用户名:nextcloud
- 密码:nextcloud
- 数据目录:/var/www/html/nextcloud/data (此项为默认值)
- 配置数据库
- MySQL/MariaDB
- 数据库用户:nextcloud
- 数据库密码:nextcloud
- 数据库名:nextcloud
- 数据库主机:127.0.0.1:3306
- 点击“安装”
生成 SSL 证书
# openssl genrsa -out privkey.pem 2048
# openssl req -new -x509 -key privkey.pem -out server.pem -days 3650
生成 2 个证书文件:privkey.pem 和 server.pem
配置 SSL
# yum install mod_ssl
# mkdir /var/www/certs
# cp privkey.pem /var/www/certs
# cp server.pem /var/www/certs
# vim /etc/htttpd/conf.d/ssl.conf
打开如下两行配置的注释,并修改为自己的域名DocumentRoot "/var/www/html" ServerName nextcloud.zsoft.com:443 更改证书文件路径 SSLCertificateFile /var/www/certs/server.pem 更改证书私钥路径 SSLCertificateKeyFile /var/www/certs/privkey.pem
重启服务
# systemctl restart httpd
处理“通过不被信任的域名访问”
配置 SSL 后通过 https://nextcloud.zsoft.com/nextcloud 访问的时候会报“通过不被信任的域名访问”的错误
解决:
在 /var/www/html/nextcloud/config/config.php 配置中添加一行配置:1 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1':$_SERVER['SERVER_NAME'],
# vim /var/www/html/nextcloud/config/config.php
array ( 0 => '10.2.179.225', 1 => preg_match('/cli/i',php_sapi_name())?'127.0.0.1':$_SERVER['SERVER_NAME'], ),
不用重启服务,再次用浏览器访问,此报错即消失;
collabora online 要使用 docker,因此要安装 docker
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum install epel-release -y
# yum install -y yum-utils
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum list docker-ce --show-duplicates
# yum install docker-ce-19.03.4-3.el7
# system enable docker
# vim /home/docker/daemon.json
{ "graph": "/home/docker", "storage-driver": "overlay2", "insecure-registries": ["registry.access.redhat.com", "quay.io"], "registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"], "bip": "172.179.225.1/24", "exec-opts": ["native.cgroupdriver=systemd"], "live-restore": true}
# mkdir /home/docker
# systemctl start docker
拉取镜像
使用 Docker 安装,拉取镜像:
# docker pull collabora/code:22.05.4.1.1
运行
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE collabora/code 22.05.4.1.1 e5dc7128ef8d 3 weeks ago 1.52GB
# docker run -t -d -p 9980:9980 -e "aliasgroup1=https://nextcloud\.zsoft\.com:443" -e "username=admin" -e "password=123456" --restart always e5dc7128ef8d
指定 aliasgroup1 的域名,其中 . 前面用两个 \\ 转义,多个域名时用 | 分割,多个组时增加 -e "aliasgroup2=https://xxx1\\.xxx\\.com|https://xxx2\\.xxx\\.xxx:443":
设置 hosts
因为本地安装是使用的 hosts 方式绑定的域名,因此要在 docker 容器中也要设置好 hosts,否则会在加载文档时报错,当然如下设置会在 docker rm xxx 删除容器后再 docker run 生成容器时还需要重新再执行一遍,也可以通过 Dockerfile 自己打包一个镜像放到 harbor 中,这样就一劳永逸了,当前是修改的容器中配置;
查看 docker 容器的 CONTAINER ID:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdc78b8b2da95 e5dc7128ef8d "/start-collabora-on…" 24 minutes ago Up 24 minutes 0.0.0.0:9980->9980/tcp lucid_kilby
进入镜像:
# docker exec -u root dc78b8b2da95 /bin/bash
安装 vim
> apt-get update
> apt-get install vim
> vim /etc/hosts
文件最后添加:
10.2.179.225 nextcloud.zsoft.com
保存退出;
浏览器访问
在浏览器打开管理页面:
https://nextcloud.zsoft.com:9980/browser/dist/admin/admin.html
用户名:admin,密码:123456
在 NextCloud 的管理界面(http://10.2.179.225/nextcloud)中点击右上角的圆形图标 -- 应用
左侧选择“Office & text”
找到“Collabora Online - Built-in CODE Server”,点击“下载并启用”
这样在页面下载常出现超时等报错,因此可以在安装 nextcloud 的服务器上运行如下命令进行安装:
# sudo -u apache php -d memory_limit=512M ./occ app:install richdocumentscode
等待一会,安装完后在应用页面看 Collabora Online - Built-in CODE Server 应用显示已经安装
再应用页面再安装 "Nextcloud Office" 应用;
打开 “设置” 页面
左侧选择 “管理” - “Next'cloud 办公套件”
选择“使用您的自有服务器”
- 在线协作服务器的 URL(和端口):https://nextcloud.zsoft.com:9980
- ✔禁用证书校验(不安全)
点击 “Save”
在 nextcloud.zsoft.com 中 “文件” 下创建新文档或新表格,打开新创建的文件时,会使用在线编辑格式打开,安装完成!
来源地址:https://blog.csdn.net/zhy0414/article/details/126180767