ローカルサーバー用にONLYOFFICE Docsをコンパイルする
はじめに
ONLYOFFICE Docsは、テキスト、スプレッドシート、プレゼンテーション用のビューアーとエディターを含むオンラインオフィススイートであり、Office Open XML形式(.docx、.xlsx、.pptx)と完全に互換性があり、リアルタイムでの共同編集を可能にします。
特別に設計されたbuild_toolsを使用して、ONLYOFFICE Docsをソースコードから簡単にコンパイルし、ローカルサーバーにソリューションをデプロイできます。build_toolsは、コンパイルプロセスに必要なすべてのコンポーネントを自動的に取得およびインストールし、ONLYOFFICE Docsの正しい動作に必要なすべての依存関係を取得し、最新バージョンのONLYOFFICE Docsソースコードを取得してすべてのコンポーネントをビルドすることができます。
masterブランチからビルドされた製品の正しい動作のみ保証できます。
システム要件
ハードウェア
- CPU: 4コア
- RAM: 少なくとも8 GB(ホストOSによる。多いほど良い)
- SSD: 少なくとも100 GBの空き容量
- SWAP: 少なくとも4 GB(ホストOSによる。多いほど良い)
ソフトウェア
- OS: 64ビットUbuntu 24.04
このソリューションはUbuntu 24.04でテストされています。他のディストリビューションでは特定のアクションが必要になる場合がありますが、ここでは説明していません。
依存関係のインストール
コンピュータにPythonとGitがまだインストールされていない場合は、次のコマンドを使用してインストールする必要があります。
sudo apt-get install -y python3 git
ONLYOFFICE Docsソースコードのビルド
-
build_toolsリポジトリをクローンします:
git clone https://github.com/ONLYOFFICE/build_tools.git -
build_tools/tools/linuxディレクトリに移動します:cd build_tools/tools/linux -
automate.pyスクリプトをserverパラメータを指定して実行し、ONLYOFFICE Docsをコンパイルします:python3 ./automate.py server
スクリプトの実行が完了するまで待ちます。コンピュータの性能によって、このプロセスにはかなりの時間がかかる場合があります。たとえば、4x2.3GHz vCPUsでは少なくとも3時間かかります。
スクリプトは、ONLYOFFICE Docsの一部であるすべての依存関係とコンポーネントをコンパイルします。
ビルドされたONLYOFFICE Docsは、../../out/linux_64/onlyoffice/documentserver/ディレクトリにあります。
NGINXのインストールと設定
ONLYOFFICE Docsは、WebサーバーとしてNGINXを使用します。
NGINXのインストールと設定
-
NGINXをインストールします:
sudo apt-get install nginx -
デフォルトのウェブサイトを無効にします:
sudo rm -f /etc/nginx/sites-enabled/default -
/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;}} -
新しく作成したウェブサイトへのシンボリックリンクを
/etc/nginx/sites-availableディレクトリに追加します:sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver -
変更を適用するためにNGINXを再起動します:
sudo nginx -s reload
フォントデータの生成
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コンポーネントはフォアグラウンドプロセスとして実行されます。そのため、各コンポーネントを実行するために別々のターミナルコンソールが必要です。または、フォアグラウンドプロセスをバックグラウンドモードで実行できる特定のツールが必要です。
-
FileConverterサービスを開始します:
cd out/linux_64/onlyoffice/documentserver/server/FileConverterLD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./converter -
DocServiceサービスを開始します:
cd out/linux_64/onlyoffice/documentserver/server/DocServiceNODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice