ONLYOFFICE’s diary

OSSドキュメントエディタの使い方やヒントをご紹介します

ONLYOFFICE Docsをローカルサーバー用にコンパイルする方法

はじめに

ONLYOFFICE Docsは、テキスト、スプレッドシート、スライドのビューアとエディタからなるオンラインオフィススイートで、Office Open XMLフォーマットと完全な互換性を持っています。DOCX、XLSX、PPTXに完全対応し、リアルタイムでの共同編集を可能にします。

ONLYOFFICE Docsソースコードから簡単にコンパイルし、特別に設計されたbuild_toolsを使用して、ローカルサーバーにソリューションを展開することができます。build_toolsは、コンパイルプロセスに必要なすべてのコンポーネントONLYOFFICE Docsの正しい動作に必要なすべての依存関係を自動的に取得しインストールすることができ、また最新版のONLYOFFICE Docsソースコードを取得し、そのすべてのコンポーネントをビルドすることができます。

ご注意! 私たちは、masterブランチだけからビルドされた製品の正しい動作を保証できます。

システム必要条件

ハードウエア

ソフトウェア

  • OS:64ビット Ubuntu 16.04

ご注意! このソリューションは、Ubuntu 16.04でテストされています。他のディストリビューションでは、ここに記載されていない特殊な動作が必要になる場合があります。

依存関係のインストール

PythonGitがまだパソコンにインストールされていない場合は、インストールする必要があります。これは、以下のコマンドで行うことができます。

sudo apt-get install -y python git

ONLYOFFICE Docsのソースコードをビルドする

1.build_tools リポジトリをクローンします。

git clone https://github.com/ONLYOFFICE/build_tools.git

2.build_tools/tools/linux ディレクトリに移動します。

cd build_tools/tools/linux

3.ONLYOFFICE Docsコンパイルするために、serverパラメータを指定したautomate.pyスクリプトを実行します。

./automate.py server

ご注意! このスクリプトをパラメータなしで実行すると、ドキュメントビルダーデスクトップエディタと一緒にONLYOFFICE Docsを構築します。

./automate.py

必要であれば、必要な製品に対応するパラメータでスクリプトを実行することにより、一度に複数の製品をビルドすることができます。ドキュメントビルダーコンパイルについては、こちらの記事をご覧ください。デスクトップエディタコンパイルについては、こちらの記事をご覧ください。

スクリプトが実行される間、少々お待ちください。お使いのパソコンの性能によっては、この処理にはかなりの時間がかかる場合があります。例えば、Intel Core i7-7700の場合、最低でも3時間かかります。

スクリプトは、ONLYOFFICE Docsの一部であるすべての依存関係とコンポーネントコンパイルします。

ビルドされたONLYOFFICE Docsは、../../out/linux_64/onlyoffice/documentserver/ディレクトリで利用できるようになります。

NGINX、PostgreSQL、RabbitMQのインストールと設定

ONLYOFFICE Docsでは、WebサーバーとしてNGINXを、データベースとしてPostgreSQLを利用しています。また、ONLYOFFICE Docsが正常に動作するためには、RabbitMQが必要です。

NGINX のインストールと設定

1.NGINXをインストールします。

sudo apt-get install nginx

2.デフォルトのウェブサイトを無効にします。

sudo rm -f /etc/nginx/sites-enabled/default

3.ここで、新しいウェブサイトを設定する必要があります。そのためには、/etc/nginx/sites-available/onlyoffice-documentserverファイルを作成し、以下の内容を記述してください。

map $http_host $this_host {
  "" $host;
  default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
  default $http_x_forwarded_proto;
  "" $scheme;
}
map $http_x_forwarded_host $the_host {
  default $http_x_forwarded_host;
  "" $this_host;
}
map $http_upgrade $proxy_connection {
  default upgrade;
  "" close;
}
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_tokens off;
  rewrite ^\/OfficeWeb(\/apps\/.*)$ /web-apps$1 redirect;
  location / {
    proxy_pass http://localhost:8000;
    proxy_http_version 1.1;
  }  
}

4.etc/nginx/sites-available ディレクトリに、新しく作成した Web サイトへのシンボリックリンクを追加します。

sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver

5.そして、変更を適用するためにNGINXを再起動します。

sudo nginx -s reload

PostgreSQLのインストールと設定

以下のコマンドでPostgreSQLをインストールします。

sudo apt-get install postgresql

PostgreSQLをインストールしたら、以下のコマンドを実行して、PostgreSQLのデータベースとユーザを作成します。

ご注意! 作成したデータベースは、ユーザー、パスワードともにonlyofficeである必要があります。

sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;" とします。
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';".
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

以下のコマンドを実行し、データベースの設定を行います。

psql -hlocalhost -Uonlyoffice -d onlyoffice -f ../../out/linux_64/onlyoffice/documentserver/server/schema/postgresql/createdb.sql

ご注意! その際、onlyoffice PostgreSQLユーザのパスワードの入力を要求されます。onlyofficeのパスワードを入力してください。

RabbitMQのインストール

以下のコマンドでRabbitMQをインストールします。

sudo apt-get install rabbitmq-server

フォントデータの生成

cd out/linux_64/onlyoffice/documentserver/
mkdir fonts
LD_LIBRARY_PATH=${PWD}/server/FileConverter/bin server/tools/allfontsgen \
  --input="${PWD}/core-fonts" \
  --allfonts-web="${PWD}/sdkjs/common/AllFonts.js" \
  --allfonts="${PWD}/server/FileConverter/bin/AllFonts.js" \
  --images="${PWD}/sdkjs/common/Images" \
  --selection="${PWD}/server/FileConverter/bin/font_selection.bin" \
  --output-web='fonts' \
  --use-system="true"

スライドテーマの生成

cd out/linux_64/onlyoffice/documentserver/
LD_LIBRARY_PATH=${PWD}/server/FileConverter/bin server/tools/allthemesgen \
  --converter-dir="${PWD}/server/FileConverter/bin"\
  --src="${PWD}/sdkjs/slide/themes"\
  --output="${PWD}/sdkjs/common/Images"

ONLYOFFICE Docsの実行

ご注意! ONLYOFFICE Docsのすべてのコンポーネントは、フォアグラウンドプロセスとして動作します。したがって、それらを実行するために別のターミナルコンソールが必要になるか、フォアグラウンドプロセスをバックグラウンドモードで実行できる特定のツールが必要になります。

1.FileConverterサービスを起動します。

cd out/linux_64/onlyoffice/documentserver/server/FileConverter
LD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux 
NODE_CONFIG_DIR=$PWD/../Common/config ./converter

2.DocServiceサービスを起動します。

cd out/linux_64/onlyoffice/documentserver/server/DocService
NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice