在Ubuntu上部署Collabora Online Office的方法

本文介绍在Ubuntu Linux上部署Collabora Online Office的方法。Collabora Online是一款开源的基于LibreOffice的强大在线办公软件,支持大多数文档格式,如电子表格、演示文稿等,该在线办公套件可以集成到任何web应用程序中。要先声明的是,在Ubuntu 20.04、18.04上部署Collabora Online Office之前,我们将首先满足构建它的基本要求,请按以下方法操作。

部署Collabora Online Office的方法

1、在Ubuntu上安装LAMP stack

LAMP服务器可以使用以下单个命令安装在Ubuntu 20.04、18.04上:

sudo apt-get install lamp-server^

启用Apache反向模块:

sudo a2enmod proxy

sudo a2enmod proxy_http

sudo a2enmod ssl

sudo a2enmod proxy_https

sudo a2enmod proxy_ajp

sudo a2enmod rewrite

sudo a2enmod deflate

sudo a2enmod headers

sudo a2enmod proxy_balancer

sudo a2enmod proxy_connect

sudo a2enmod proxy_html

sudo a2enmod proxy_wstunnel

2、在Ubuntu上安装Docker

由于我们将以docker容器的形式运行Collabora Online Office,因此我们需要在Ubuntu 20.04、18.04上安装并运行docker。

在Ubuntu上安装Docker容器引擎:

sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh

在Ubuntu 20.04、18.04上启动并启用docker:

sudo systemctl enable docker

sudo systemctl start docker

检查服务状态:

$ systemctl status docker

docker.service - Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

Active: active (running)

3、部署Collabora Online Office容器

首先,得要在系统中安装有Nextcloud,并确保Nexcloud可通过HTTPS访问,并可由运行Collabora服务的服务器访问,因为Collabora Online应使用与服务器安装相同的协议。

满足要求的前提下,我们将继续部署Collabora Online容器。

对于下一个云域,按如下所示运行容器。记住替换Nextcloud运行的子域和域:

sudo docker run -t -d -p 127.0.0.1:9980:9980 \

-e 'domain=subdomain\\.domain\\.com' \

-e 'username=UserName' -e 'password=Your-Password' \

--cap-add MKNOD collabora/code

例如,在我的例子中,该命令将显示如下:

sudo docker run -t -d -p 127.0.0.1:9980:9980 \

-e 'domain=nextcloud\\.example\\.com' \

-e 'username=thor' -e 'password=StrongPassword' \

--cap-add MKNOD collabora/code

在本例中,我提供了nextcloud.example.com的Nextcloud服务器URL。并创建了一个Collabora用户thor,密码为StrongPassword。

如果使用localhost作为域,请使用--net host,以便容器访问Nextcloud服务器:

sudo docker run -t -d -p 127.0.0.1:9980:9980 \

-e 'domain=localhost --net host' \

-e 'username=thor' -e 'password=StrongPassword' \

-e "extra_params=--o:ssl.enable=false --o:ssl.termination=true" \

--restart always collabora/code

您还可以为多个Nextcloud域部署Collabora Docker容器:

sudo docker run -t -d -p 127.0.0.1:9980:9980 \

-e 'domain=subdomain1\\.domain\\.com|subdomain2\\.domain\\.com' \

-e 'username=UserName' -e 'password=Your-Password' \

--cap-add MKNOD collabora/code

现在验证容器是否按如下方式运行,运行以下命令就可以查看到了:

$ sudo docker ps

4、配置Apache反向代理

现在,容器在本地主机上运行,端口9980暴露在端口9980/TCP上。我们现在希望将Apache配置为能够通过HTTPS使用IP地址或域名访问Collabora。

创建VirtualHost,如下所示:

sudo vi /etc/apache2/sites-available/collabora-online.conf

在文件中,添加以下内容:

<VirtualHost *:443>

ServerName collabora.example.com:443

# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!

SSLEngine on

SSLProtocol             all -SSLv2 -SSLv3

SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

SSLHonorCipherOrder     on

# Encoded slashes need to be allowed

AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate

SSLProxyEngine On

SSLProxyVerify None

SSLProxyCheckPeerCN Off

SSLProxyCheckPeerName Off

# keep the host

ProxyPreserveHost On

# static html, js, images, etc. served from coolwsd

# browser is the client part of LibreOffice Online

ProxyPass           /browser https://127.0.0.1:9980/browser retry=0

ProxyPassReverse    /browser https://127.0.0.1:9980/browser

# WOPI discovery URL

ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0

ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

# Main websocket

ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon

# Admin Console websocket

ProxyPass   /cool/adminws wss://127.0.0.1:9980/cool/adminws

# Download as, Fullscreen presentation and Image upload operations

ProxyPass           /cool https://127.0.0.1:9980/cool

ProxyPassReverse    /cool https://127.0.0.1:9980/cool

# Endpoint with information about availability of various features

ProxyPass           /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0

ProxyPassReverse    /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities

</VirtualHost>

记住替换collabora.example.com与适当的服务器名称。激活您的网站:

sudo a2ensite collabora-online.conf

sudo systemctl reload apache2

为Apache安装Certbot:

sudo apt install python3-certbot-apache

为域名安装SSL证书:

sudo certbot --authenticator standalone --installer apache \

-d collabora.example.com --pre-hook "service apache2 stop" \

--post-hook "service apache2 start"

在代码中,替换collabora.example.com,并按以下截图操作:

在Ubuntu上部署Collabora Online Office的方法

现在可以通过HTTPS访问Collabora。

5、将Nextcloud连接到Collabora Online

登录到Nextcloud仪表板,导航到Apps->Office and Text。在此期间,请确保下载并启用Collabora Online,如下所示:

在Ubuntu上部署Collabora Online Office的方法

现在转到“设置”->“管理”->“办公室”(Settings->Administration->Office)。您需要将Nextcloud连接到Collabora Online。单击“使用自己的服务器(use tour own server)”并提供Collabora URL,保存并确保服务器可访问:

在Ubuntu上部署Collabora Online Office的方法

此外,允许Collabora使用Open XML(OOXML),以便创建的文件与Microsoft Office软件兼容。完成以上设置后,转到文件选项卡并创建所需的文档。通过单击新建文档并为其指定名称来创建word文档。接下来的操作都非常简单,只要有点Office操作基础就可以独立完成工作。

在Ubuntu上部署Collabora Online Office的方法

在Ubuntu上部署Collabora Online Office的方法

当前可以使用Collabora在线创建电子表格文件,其演示文稿也可以使用Collabora创建等等。

到这里,在Ubuntu上部署Collabora Online Office的工作全部完成了,其功能都相当的实用,使用者可随时享用这些功能。

栏目相关文章