‘lool’ カテゴリーのアーカイブ
LibreOffice Online デモサーバを構築してみた。
- 2018/06/13
- fumikura
Nextcloud との連携編
前回の記事で、loolwsdのインストール・起動までを取り上げましたが、loolwsd単体では、実用性がほぼありません。
そこで、今回は、loolwsdのUIとなるべきフロントエンドとなるNextcloudのインストールと連携を取り上げます。
Nextcloud のインストール
http、PHPの必要モジュール等のインストール
まずはhttpdと必要なモジュールなどをインストールします。
[lool@scw-6b31f8 ~]$ sudo yum install httpd mod_ssl
[lool@scw-6b31f8 ~]$ sudo yum install --enablerepo=epel,webtatic mod_php72w php72w-mbstring php72w-common php72w-mysqlnd php72w-gd php72w-xml php72w-pdo
/etc/httpd/conf/httpd.confの設定
/etc/httpd/conf/httpd.confを編集し、初期設定を行います。
今回は差分を掲載しておきます。
[lool@scw-6b31f8 ~]$ diff -urw /etc/httpd/conf/httpd.conf.orig /etc/httpd/conf/httpd.conf
--- /etc/httpd/conf/httpd.conf.orig 2018-04-11 05:27:26.000000000 +0900
+++ /etc/httpd/conf/httpd.conf 2018-05-28 17:49:27.559577372 +0900
@@ -94,6 +94,15 @@
#
#ServerName www.example.com:80
+ServerTokens Prod
+Header unset X-Powered-By
+Header append X-Frame-Options SAMEORIGIN
+Header set X-XSS-Protetion "1; mode=block"
+Header set X-Content-Type-Options nosniff
+RequestHeader unset Proxy
+TraceEnable Off
+ServerSignature Off
+
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
@@ -141,14 +150,16 @@
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
- Options Indexes FollowSymLinks
+ #Options Indexes FollowSymLinks
+ Options FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
- AllowOverride None
+ #AllowOverride None
+ AllowOverride All
#
# Controls who can get stuff from this server.
バーチャルホストの設定
nextcloud,libre,loolの3ホストを利用します。libre,loolに関しては、同一サーバ内で構築する場合は不要かもしれません。(未検証)
今回のデモサーバを構築する前に検証用として構築していたサーバの構成が、Nextcloudサーバとloolwsdサーバが別サーバである
環境であった為、3ホストでの構成となってます。
Nextcloud <->libre(Proxy)<->lool
libreサーバはProxyとして入っています。
Nextcloud内のLibreOfficeとの連携アプリ「Collabora Online」がhttps接続のみしか受け付けない仕様となっていたので、
https(ポート443番)で受けて、loolサーバのポート番号9980番へ中継するという形です。
libreサーバを設けず、loolサーバのポート443番で受けて、loolサーバか、もしくはlocalhostの9980へ中継するという構成の方が妥当かもしれません。さらに言うならば…loolに関しては…loolwsdサーバそのものが通信相手なので、certbotでSSL証明書を更新し続けるためのダミーだったりします。
が、今回は…3ホスト構成という事で…(LB構成を意識したのはナイショです。)
Nextcloudのバーチャルホスト設定
<VirtualHost *:443>
Servername nextcloud.lancardcom.xyz
DirectoryIndex index.html index.php
DocumentRoot /var/www/nextcloud/
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/nextcloud.lancardcom.xyz/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.lancardcom.xyz/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/nextcloud.lancardcom.xyz/chain.pem
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/nextcloud/ssl_access_log_%Y%m%d 86400 540" combined
ErrorLog /var/log/httpd/nextcloud/ssl_error_log
<Directory "/var/www/nextcloud/">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:80>
Servername nextcloud.lancardcom.xyz
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
DirectoryIndex index.html index.php
DocumentRoot /var/www/nextcloud/
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/nextcloud/access_log_%Y%m%d 86400 540" combined
ErrorLog /var/log/httpd/nextcloud/error_log
<Directory "/var/www/nextcloud/">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>
libreのバーチャルホスト設定
<VirtualHost *:443>
Servername libre.lancardcom.xyz
DirectoryIndex index.html index.php
DocumentRoot /var/www/libre/
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/libre.lancardcom.xyz/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/libre.lancardcom.xyz/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/libre.lancardcom.xyz/chain.pem
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 loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://lool.lancardcom.xyz:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://lool.lancardcom.xyz:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://lool.lancardcom.xyz:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://lool.lancardcom.xyz:9980/hosting/discovery
# Main websocket
ProxyPassMatch "lool/(.*)/ws$" wss://lool.lancardcom.xyz:9980/lool/$1/ws nocanon
# Admin Console websocket
ProxyPass /lool/adminws wss://lool.lancardcom.xyz:9980/lool/adminws
# Download as, Fullscreen prezentation and Image upload operations
ProxyPass /lool https://lool.lancardcom.xyz:9980/lool
ProxyPassReverse /lool https://lool.lancardcom.xyz:9980/lool
Loglevel debug
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/libre/ssl_access_log_%Y%m%d 86400 540" combined
ErrorLog /var/log/httpd/libre/ssl_error_log
#Header always set Content-Security-Policy "default-src 'none'"
<Directory "/var/www/libre/">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:80>
Servername libre.lancardcom.xyz
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
DirectoryIndex index.html index.php
DocumentRoot /var/www/libre/
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/libre/access_log_%Y%m%d 86400 540" combined
<Directory "/var/www/libre/">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>
loolのバーチャルホスト設定
このバーチャルホストはLet’s EncryptでSSL証明書を取るためのダミーだったりします。
オレオレ証明書で起動した際、Nextcloudとの連携時に不具合が出た為、正規のSSL証明書で運用する事になりました。
<VirtualHost *:80>
Servername lool.lancardcom.xyz
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
DirectoryIndex index.html index.php
DocumentRoot /var/www/lool/
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/lool/access_log_%Y%m%d 86400 540" combined
ErrorLog /var/log/httpd/lool/error_log
<Directory "/var/www/lool/">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>
loolwsd 側の設定
連携時に必要なloolwsd側の設定です。
online/loolwsd.xmlにて設定します。
今回は差分を掲載しておきます。
設定の要はSSL証明書の格納場所と通信許可ホストとWOPIホストの設定です。
--- loolwsd.xml.orig 2018-06-04 09:59:41.709736164 +0900
+++ loolwsd.xml 2018-06-07 10:49:16.111249275 +0900
@@ -3,7 +3,7 @@
<!-- Note: 'default' attributes are used to document a setting's default value as well as to use as fallback. -->
<!-- Note: When adding a new entry, a default must be set in WSD in case the entry is missing upon deployment. -->
- <allowed_languages desc="List of supported languages on this instance." default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</allowed_languages>
+ <allowed_languages desc="List of supported languages on this instance." default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">ja de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</allowed_languages>
<tile_cache_path desc="Path to a directory where to keep the tile cache." type="path" relative="false" default="/usr/local/var/cache/loolwsd"></tile_cache_path>
<sys_template_path desc="Path to a template tree with shared libraries etc to be used as source for chroot jails for child processes." type="path" relative="true" default="systemplate"></sys_template_path>
@@ -39,7 +39,7 @@
<color type="bool">true</color>
<level type="string" desc="Can be 0-8, or none (turns off logging), fatal, critical, error, warning, notice, information, debug, trace" default="trace">trace</level>
<file enable="true">
- <property name="path" desc="Log file path.">/tmp/loolwsd.log</property>
+ <property name="path" desc="Log file path.">/opt/lool/loolwsd.log</property>
<property name="rotation" desc="Log file rotation strategy. See Poco FileChannel.">never</property>
<property name="archive" desc="Append either timestamp or number to the archived log filename.">timestamp</property>
<property name="compress" desc="Enable/disable log file compression.">true</property>
@@ -65,16 +65,19 @@
<net desc="Network settings">
<proto type="string" default="all" desc="Protocol to use IPv4, IPv6 or all for both">all</proto>
<post_allow desc="Allow/deny client IP address for POST(REST)." allow="true">
- <host desc="Regex pattern of ip address to allow.">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
+ <host desc="Regex pattern of ip address to allow.">localhost</host>
+ <host desc="Regex pattern of ip address to allow.">nextcloud.lancardcom.xyz</host>
+ <host desc="Regex pattern of ip address to allow.">libre.lancardcom.xyz</host>
+ <host desc="Regex pattern of ip address to allow.">lool.lancardcom.xyz</host>
</post_allow>
</net>
<ssl desc="SSL settings">
<enable type="bool" default="true">true</enable>
<termination desc="Connection via proxy where loolwsd acts as working via https, but actually uses http." type="bool" default="true">false</termination>
- <cert_file_path desc="Path to the cert file" relative="false">/etc/loolwsd/cert.pem</cert_file_path>
- <key_file_path desc="Path to the key file" relative="false">/etc/loolwsd/key.pem</key_file_path>
- <ca_file_path desc="Path to the ca file" relative="false">/etc/loolwsd/ca-chain.cert.pem</ca_file_path>
+ <cert_file_path desc="Path to the cert file" relative="false">/etc/letsencrypt/live/lool.lancardcom.xyz/cert.pem</cert_file_path>
+ <key_file_path desc="Path to the key file" relative="false">/etc/letsencrypt/live/lool.lancardcom.xyz/privkey.pem</key_file_path>
+ <ca_file_path desc="Path to the ca file" relative="false">/etc/letsencrypt/live/lool.lancardcom.xyz/chain.pem</ca_file_path>
<cipher_list desc="List of OpenSSL ciphers to accept" default="ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"></cipher_list>
<hpkp desc="Enable HTTP Public key pinning" enable="false" report_only="false">
<max_age desc="HPKP's max-age directive - time in seconds browser should remember the pins" enable="true">1000</max_age>
@@ -94,6 +97,9 @@
<filesystem allow="false" />
<wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true">
<host desc="Regex pattern of hostname to allow or deny." allow="true">localhost</host>
+ <host desc="Regex pattern of hostname to allow or deny." allow="true">nextcloud.lancardcom.xyz</host>
+ <host desc="Regex pattern of hostname to allow or deny." allow="true">libre.lancardcom.xyz</host>
+ <host desc="Regex pattern of hostname to allow or deny." allow="true">lool.lancardcom.xyz</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
<host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
httpd、loolwsdサービスの再起動
httpdとloolwsdを再起動して、これまでの設定を有効化します。
エラーが出る場合は、設定の見直しや必要なディレクトリやパーミッションの設定など調整してください。
例)構築中に実際にあったエラー原因
* ログ用のディレクトリを未作成、もしくはオーナー、パーミッションの設定間違い
* SSL証明書のディレクトリのパーミッション設定(700でroot以外読めなかった)
* ドキュメントルートのディレクトリを未作成
* 単純なconfファイルのタイポ
Nextcloudのインストール
ここまで長かったですが…やっとNextcloud本体のインストールです。
まぁ、ソースダウンロードして、ドキュメントルートにおいて、あとは、WebUIの指示に従ってインストールするだけなので、ほぼこれまでの準備が肝だったり。あ…Nextcloud用のDBの準備忘れてました。
Nextcloud用DBの作成
[root@scw-6b31f8 ~]# mysql -u root -p
Enter password:
elcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE データベース名;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON データベース名.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード' ;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> QUIT
Bye
Nextcloudのソースのダウンロードと配置
[lool@scw-6b31f8 Archives]$ wget https://download.nextcloud.com/server/releases/nextcloud-13.0.2.zip
[lool@scw-6b31f8 Archives]$ unzip nextcloud-13.0.2.zip
[lool@scw-6b31f8 Archives]$ sudo cp -rp nextcloud/* /var/www/nextcloud/
[lool@scw-6b31f8 Archives]$ sudo chown -R apache. /var/www/nextcloud
[lool@scw-6b31f8 Archives]$ sudo systemctl restart httpd
後は、ブラウザで、Nextcloud用に設定したURLを開いて、画面の指示に従ってインストールを完了させます。
もしWebUIでのインストールがわからない…という方は…ドキュメントを読み直してください。
(すみません。画像貼るのが面倒なので手抜きさせてください。)
こちらのサイトなどを参照していただけると丁寧に解説されてます。
CentOS7にNextcloudインストール | server-memo.net
CentOS 7 : NextCloud インストール : Server World
Nexcloud側の連携設定
最後に、NexcloudのWebUI上の「アプリ」から「Collabora Online」を有効にします。
すると、「設定」の左サイドメニューに「Collabora Online」の項目が表示されますので、そこで、loolwsdサーバを指定します。
今回の場合は…Proxyであるlibreを指定するので、「https://」から始まるアドレスを入力して「適用」をクリックして完了です。
おそらくここまでの記事で設定を進めてこれた方であれば、見ればわかるので、スクリーンショットなど付けた説明は割愛させていただきます。
(さらにリンクを貼るのも手抜きさせてください。)
最後に構築後、操作してみた感じ
実際に、操作してみた感じですが、やはり…入力、変換等は通信ラグ等により、もっさり感がぬぐえません。まだ完全にLibreOfficeの全機能に対応してはいない為、メニューにはあるのに機能しない部分もちらほらありました。loolwsdのログを見て気が付いたのですが、なぜかUTC表示からローカル時刻への変更ができません。
上記の現象と同一の原因だと思われますがCalc(表計算)のNOW()関数などの結果もUTCで表示される為、その辺が難点になるかと思われます。
やはり…Microsoft Office365やGoogleAppsなどの大手商用サービスと比較すると、ユーザビリティに一歩劣る感は否めませんでした。
ただし…
– どうしてもデータをクラウド上に置けない。オンプレミスである必要がある。
->(社内規定などによるセキュリティ上の制限がある。)
– 内部での共有のみで、外部とのドキュメント等のやり取りをほぼ行わない。
->(MicrosoftのWard、Excelファイル等と互換はありますが、それほど互換性は高くないです。)
– ライセンスにコストをかけたくない
->(オープンソースなので構築コスト・保守コスト以外はかかりません。)
と言った場合には最適のソリューションではないでしょうか。
LibreOffice Online デモサーバを構築してみた。
- 2018/06/12
- fumikura
LibreOffice Online デモサーバを構築してみた。
loolサーバ構築編
前回、デモサーバをご案内した続き、構築方法編です。
環境は以下の通り
今回の構築環境
- scaleway上の最小インスタンス
- OSはCentOS Linux release 7.5.1804 (Core)
- グループパッケージ、Base,DevelopmentToolsをインストール済み
- 追加リポジトリにepel,webtatic(デフォルト無効化)
- PHP7.2,MariaDB5.5.56インストール済み
- DNSにDNSにnexcloud.lancardcom.xyz,libre.lancardcom.xyz,lool.lancardcom.xyzを設定、FQDNでのアクセスが可能。
- SSL証明書はLet’s Encryptを利用
インストール作業・サービス稼働用ユーザ”lool”の作成
[root@scw-6b31f8 ~]# useradd -d /opt/lool lool
[root@scw-6b31f8 ~]# visudo #ユーザloolをsudo使用可能にする。
[root@scw-6b31f8 ~]# su - lool
[lool@scw-6b31f8 ~]$ pwd
/opt/lool
LibreOffice のコンパイル
ほぼ下記の参照URL通りです。
参照URL:https://librepc.jp/blog_20.html
LibreOfficeの依存関係の解消
yum-builddepはBaseグループパッケージにてインストールされています。
ない場合は、yum-utilsをインストールしてください。
[lool@scw-6b31f8 ~]$ sudo yum-builddep libreoffice
日本語フォントをインストール
[lool@scw-6b31f8 ~]$ sudo yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
gitからのインストール
LibreOfficeのソースコードをダウンロードします。
[lool@scw-6b31f8 ~]$ git clone git://anongit.freedesktop.org/libreoffice/core
[lool@scw-6b31f8 ~]$ cd core/
[lool@scw-6b31f8 core]$ ./autogen.sh --with-lang="ja"
autogen.sh 実行時に以下のWARNINGが出ますが、影響ないそうなので無視していいそうです。
* WARNING : no suitable nasm (Netwide Assembler) found for internal libjpeg-turbo
コンパイルします。SSH端末上なので、長時間のmakeでは切断等の恐れがありますので、
nohupコマンドを使います。前後にdateを実行してるのは、単にmakeにかかった時間を知りたかったからです。
[lool@scw-6b31f8 core]$ nohup sh -c 'date ; make ; date' &
あとは一旦放置です。11時間半かかってました…
Thu May 31 00:17:48 JST 2018
mkdir -p /opt/lool/core/instdir
/opt/lool/core/solenv/bin/install-gdb-printers -a /opt/lool/core/instdir -c
make -j 2 -rs -f /opt/lool/core/Makefile.gbuild all
[build C ] solenv/bin/concat-deps.c
…………
[build BIN] top level modules: libreoffice
[build ALL] top level modules: build-non-l10n-only build-l10n-only
Thu May 31 11:45:03 JST 2018
loolwsd のインストール
pocoライブラリのインストール
loolをインストールする前にコンパイルに必要なpocoライブラリをインストールします。
最新版は、poco-1.9.0です。poco-1.9.0-all のソースをダウンロードしてください。
[lool@scw-6b31f8 Archives]$ wget https://pocoproject.org/releases/poco-1.9.0/poco-1.9.0-all.tar.gz
[lool@scw-6b31f8 Archives]$ tar zxvf poco-1.9.0-all.tar.gz
[lool@scw-6b31f8 Archives]$ cd poco-1.9.0-all/
[lool@scw-6b31f8 poco-1.9.0-all]$ ./configure --prefix=/opt/lool/poco
[lool@scw-6b31f8 poco-1.9.0-all]$ make
[lool@scw-6b31f8 poco-1.9.0-all]$ sudo make install
必要ライブラリなどのインストール
[lool@scw-6b31f8 ~]$ sudo yum install libcap-devel
polibのインストール
[lool@scw-6b31f8 ~]$ sudo yum install --enablerepo=epel python-pip
[lool@scw-6b31f8 ~]$ sudo pip install --upgrade pip
[lool@scw-6b31f8 ~]$ sudo pip install polib
jakeのインストール
yum でnpmをインストールした場合、jakeの古いバージョンが入る為、npmをアップデートします。
ただし、普通にアップデートした際、エラーが出る為、ユーザ環境にnpmを再インストールして、
jakeをインストールするようにします。。
[lool@scw-6b31f8 ~]$ sudo yum install --enablerepo=epel npm
[lool@scw-6b31f8 ~]$ mkdir ~/.npm-global
[lool@scw-6b31f8 ~]$ npm config set prefix '~/.npm-global'
[lool@scw-6b31f8 ~]$ vim .bash_profile
[lool@scw-6b31f8 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$HOME/.local/bin:$HOME/bin:$HOME/.npm-globl/bin:$PATH #<-PATHに追加、$PATHが頭にある場合は後ろに持ってくる事
export PATH
[lool@scw-6b31f8 ~]$ source .bash_profile
[lool@scw-6b31f8 ~]$ npm install -g npm
[lool@scw-6b31f8 ~]$ npm install -g n
[lool@scw-6b31f8 ~]$ n latest
[lool@scw-6b31f8 ~]$ npm update -g npm
[lool@scw-6b31f8 ~]$ npm install -g jake
loolのソースダウンロード
[lool@scw-6b31f8 ~]$ git clone git://anongit.freedesktop.org/libreoffice/online
loolのビルド
[lool@scw-6b31f8 ~]$ cd online/
[lool@scw-6b31f8 online]$ ./autogen.sh
[lool@scw-6b31f8 online]$ ./configure --enable-silent-rules \
> --with-lokit-path=/opt/lool/core/include \
> --with-lo-path=/opt/lool/core/instdir \
> --with-poco-includes=/opt/lool/poco/include \
> --with-poco-libs=/opt/lool/poco/lib \
> --enable-debug
[lool@scw-6b31f8 online]$ make
lool証明書用ディレクトリ作成
[lool@scw-6b31f8 online]$ sudo mkdir /etc/loolwsd
[lool@scw-6b31f8 online]$ sudo cp etc/* /etc/loolwsd/
loolキャッシュ用ディレクトリ作成
[lool@scw-6b31f8 online]$ sudo mkdir -p /usr/local/var/cache/loolwsd
[lool@scw-6b31f8 online]$ sudo chown lool. /usr/local/var/cache/loolwsd
loolのサービス化
[lool@scw-6b31f8 online]$ sudo vim /usr/lib/systemd/system/loolwsd.service
[lool@scw-6b31f8 online]$ cat /usr/lib/systemd/system/loolwsd.service
[Unit]
Description=LibreOffice Online WebSocket Daemon
After=network.target
[Service]
ExecStart = /opt/lool/online/loolwsd --o:sys_template_path=/opt/lool/online/systemplate --o:lo_template_path=/opt/lool/core/instdir --o:child_root_path=/opt/lool/online/jails --o:storage.filesystem[@allow]=true --o:admin_console.username=ka管理者ID --o:admin_console.password=管理者パスワード
Restart = always
Type = simple
User=lool
[Install]
WantedBy=multi-user.target
[lool@scw-6b31f8 online]$ sudo systemctl daemon-reload
[lool@scw-6b31f8 online]$ sudo systemctl enable loolwsd
[lool@scw-6b31f8 online]$ sudo systemctl start loolwsd
[lool@scw-6b31f8 online]$ sudo systemctl status loolwsd
●loolwsd.service - LibreOffice Online WebSocket Daemon
Loaded: loaded (/usr/lib/systemd/system/loolwsd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2018-06-04 11:13:43 JST; 16s ago
Main PID: 24320 (loolwsd)
CGroup: /system.slice/loolwsd.service
├─24320 /opt/lool/online/loolwsd --o:sys_template_path=/opt/lool/online/systemplate --o:lo_template_path=/...
├─24324 /opt/lool/online/loolforkit --losubpath=lo --systemplate=/opt/lool/online/systemplate --lotemplate...
└─24328 /opt/lool/online/loolforkit --losubpath=lo --systemplate=/opt/lool/online/systemplate --lotemplate...
Jun 04 11:13:43 scw-6b31f8 loolwsd[24320]: Or for the Admin Console:
Jun 04 11:13:43 scw-6b31f8 loolwsd[24320]: https://admin:admin@localhost:9980/loleaflet/dist/admin/admin.html
Jun 04 11:13:44 scw-6b31f8 loolwsd[24320]: Init vcl
Jun 04 11:13:45 scw-6b31f8 loolwsd[24320]: preload: comphelper unordf ucpchelp1 sfx msforms vbaobj xo pcr vbaswo...handl
Jun 04 11:13:46 scw-6b31f8 loolwsd[24320]: Whitelisted languages: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru
Jun 04 11:13:46 scw-6b31f8 loolwsd[24320]: Preloading dictionaries: en_US en_GB
Jun 04 11:13:46 scw-6b31f8 loolwsd[24320]: Preloading thesauri: en_US en_GB
Jun 04 11:13:46 scw-6b31f8 loolwsd[24320]: Preload icons
Jun 04 11:13:46 scw-6b31f8 loolwsd[24320]: Preload languages
Jun 04 11:13:47 scw-6b31f8 loolwsd[24320]: Ready to accept connections on port 9980.
Hint: Some lines were ellipsized, use -l to show in full.
今回はloolwsdの起動までを一通り上げてみました。
ただし、loolwsd単体では、ドキュメントの作成・保存などは、できない事はないですが、ほぼ無理筋なため、次回はより直感的にloolwsdを利用可能にするGUI環境のフロントエンドとしてNextcloudとの連携の記事を上げます。
LibreOffice Online のご紹介
- 2018/06/06
- fumikura
“自社オリジナルのGoogle Appsっぽい環境はいかがですか?”
LibreOffice とは?
LibreOffice公式サイト https://ja.libreoffice.org/
LibreOfficeとは…簡単に言いますと、MicrosoftのOfficeシリーズと類似した機能をもつオープンソースの無料のソフトウェアです。
公式サイトによりますと、以下のように説明されています。
「LibreOfficeは強力なオフィススイートです; クリーンなインターフェイスと強力なツールであなたの創造性を解き放ち、生産性を高めます。LibreOfficeはその市場において最も強力なフリーかつオープンなオフィススイートとなっています。これは次のようなさまざまなアプリケーションのためです: ワードプロセッサのWriter、表計算アプリケーションのCalc、プレゼンテーションエンジンのImpress、ドローイングおよびフローチャートのためのDraw、データベースおよびそのフロントエンドとなるBase、そして数式を編集するためのMathです。」
LibreOffice Online(lool) とは?
上記のLibreOfficeにOnline版です。略称で「lool」と呼ばれています。
Online版になると何が変わるのかといいますと…
各個のPCにソフトウェアをインストールしなくても使えるのが大きな特徴です。
サーバからプログラムを呼出して、各PCのブラウザ上で実行されるのです。
現在もなお開発中で、上記の機能の内でよく使われる、ワープロ、表計算、プレゼンが実装されています。
デモ用サーバのご案内
昨年(2017年)の10月頃にその存在を知らされて、一度、利用環境を構築してみたもののとても実用に耐えるレベルではなかった為、お蔵入りとなっていたネタだったのですが、それから約半年…開発が進み、かなりいい感じになってきました。
そこで今回デモ用に構築したサーバを公開します。実際に触ってみるのが手っ取り早いでしょう。
デモ用サーバURL: https://nextcloud.lancardcom.xyz
ユーザID: guestuser
パスワード: guest1234
次回の記事では、lool環境の構築方法について書こうと思います。