CentOS 7 上構築する DzzOffice と OnlyOffice 統合環境

本手順では、CentOS 7 をベースに、LNMP(Linux + Nginx + MySQL + PHP)スタックを構成し、DzzOffice プラットフォームと Docker 経由の OnlyOffice Document Server を連携させる方法を解説します。

1. LNMP 環境の準備

Nginx、MySQL(または MariaDB)、PHP 7.4 以上をインストールします。公式リポジトリに加え、epel-release および remi-php74 リポジトリを有効化して、最新安定版を導入します:

yum install -y epel-release
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y nginx mariadb-server php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-opcache

2. DzzOffice の取得と展開

公式 Gitee リポジトリから最新リリースアーカイブをダウンロードし、Web サーバーのドキュメントルート(例:/usr/share/nginx/html)へ展開します:

cd /tmp
curl -L -O https://gitee.com/zyx0814/dzzoffice/repository/archive/master.zip
unzip master.zip -d /usr/share/nginx/html/
chown -R nginx:nginx /usr/share/nginx/html/
chmod -R 755 /usr/share/nginx/html/

3. 初期設定とアプリケーション登録

ブラウザで http://[サーバーIP] にアクセスし、データベース接続情報や管理者アカウントを設定します。初期セットアップ完了後、「管理 → アプリマーケット」から必要アプリ(例:ファイル管理、メモ、カレンダー)をインストール可能です。

4. OnlyOffice Document Server の Docker デプロイ

Docker エンジンを導入し、OnlyOffice 公式イメージをポート 9010 で公開します:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker && systemctl start docker
docker run -d \
  --name onlyoffice \
  -p 9010:80 \
  --restart=always \
  -v /app/onlyoffice/logs:/var/log/onlyoffice \
  -v /app/onlyoffice/data:/var/www/onlyoffice/Data \
  -v /app/onlyoffice/lib:/var/www/onlyoffice/DocumentServerData \
  onlyoffice/documentserver

5. OnlyOffice の動作確認

http://[サーバーIP]:9010 にアクセスし、「Welcome to ONLYOFFICE」ページが表示されれば正常起動です。

6. DzzOffice との連携設定

「管理 → アプリマーケット」より「OnlyOffice」アプリを検索・インストール後、「既にインストール済み」タブ → 設定を開きます。API エンドポイントには、実際のサーバー IP またはドメイン名を用いた URL を指定します(例:http://192.168.1.100:9010/web-apps/apps/api/documents/api.js)。保存後に「有効化」をオンにして適用します。

7. TLS/SSL 証明書関連エラー対応(非HTTPS環境向け)

内部ネットワークなど HTTPS 未使用環境で編集時にトークン検証エラーが発生する場合、以下のようにコンテナ内の設定を調整します:

  1. コンテナ ID を確認:docker ps --filter "ancestor=onlyoffice/documentserver" --format "{{.ID}}"
  2. 設定ファイルをホストにコピー:docker cp <CONTAINER_ID>:/etc/onlyoffice/documentserver/local.json ./local.json
  3. local.json"inbox""outbox""browser" の各 "enable" 値を false に変更
  4. 変更をコンテナに反映しサービス再起動:docker cp local.json <CONTAINER_ID>:/etc/onlyoffice/documentserver/ && docker exec <CONTAINER_ID> supervisorctl restart all

再起動ログに複数のサービスが started と表示されれば、設定は正常に適用されています。

タグ: dzzoffice onlyoffice centos7 Docker nginx

5月27日 20:11 投稿