本手順では、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 未使用環境で編集時にトークン検証エラーが発生する場合、以下のようにコンテナ内の設定を調整します:
- コンテナ ID を確認:
docker ps --filter "ancestor=onlyoffice/documentserver" --format "{{.ID}}" - 設定ファイルをホストにコピー:
docker cp <CONTAINER_ID>:/etc/onlyoffice/documentserver/local.json ./local.json local.jsonの"inbox"・"outbox"・"browser"の各"enable"値をfalseに変更- 変更をコンテナに反映しサービス再起動:
docker cp local.json <CONTAINER_ID>:/etc/onlyoffice/documentserver/ && docker exec <CONTAINER_ID> supervisorctl restart all
再起動ログに複数のサービスが started と表示されれば、設定は正常に適用されています。