更新时间:2022-12-20 11:35:07浏览次数:718+次
本文介绍在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,并按以下截图操作:
现在可以通过HTTPS访问Collabora。
5、将Nextcloud连接到Collabora Online
登录到Nextcloud仪表板,导航到Apps->Office and Text。在此期间,请确保下载并启用Collabora Online,如下所示:
现在转到“设置”->“管理”->“办公室”(Settings->Administration->Office)。您需要将Nextcloud连接到Collabora Online。单击“使用自己的服务器(use tour own server)”并提供Collabora URL,保存并确保服务器可访问:
此外,允许Collabora使用Open XML(OOXML),以便创建的文件与Microsoft Office软件兼容。完成以上设置后,转到文件选项卡并创建所需的文档。通过单击新建文档并为其指定名称来创建word文档。接下来的操作都非常简单,只要有点Office操作基础就可以独立完成工作。
当前可以使用Collabora在线创建电子表格文件,其演示文稿也可以使用Collabora创建等等。
到这里,在Ubuntu上部署Collabora Online Office的工作全部完成了,其功能都相当的实用,使用者可随时享用这些功能。
相关资讯