64ビットARMアーキテクチャのCentOSまたはRHELにONLYOFFICE Docs Community Editionをインストールする方法

## はじめに

バージョン7.1より、ONLYOFFICE Docsは64ビットARMアーキテクチャのCentOSまたはRHELにインストールできるようになりました。

Community Editionでは、ONLYOFFICE Docsをローカルサーバーにインストールし、オンラインエディタを[ONLYOFFICEコラボレーションプラットフォーム](https://helpcenter.onlyoffice.com/installation/groups-index.aspx)や[他の一般的なシステム](https://helpcenter.onlyoffice.com/integration.aspx)と統合することができます。

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

### 機能概要

* ドキュメントエディタ
* 表計算エディタ
* プレゼンテーションエディタ
* モバイルWebビューアー
* 共同編集機能
* ヒエログリフのサポート
* すべての一般的な形式をサポート：doc, docx, txt, odt, rtf, odp, epub, ods, xls, xlsx, csv, pptx, html

ONLYOFFICE Docs Community Editionで利用できる機能の詳細は[こちら](https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-document-server-editions)をご覧ください。

ONLYOFFICE Groupsと連携することで、以下のようなことが可能になります。

* ファイルの共有
* ドキュメントへのアクセス権管理
* Webサイトにドキュメントを埋め込む
* ONLYOFFICEに接続されたDrive、Box、Dropbox、OneDrive、OwnCloudに保存されたファイルの閲覧、編集

:::note warn
ONLYOFFICE DocsとONLYOFFICE Groupsを併用する場合、2つのマシンにインストールする必要があります。
:::

このガイドでは、64ビットARMアーキテクチャのCentOS 8またはRHEL 8にONLYOFFICE Docs Community Edition Linuxバージョン7.1以降をインストールする方法をご紹介します。

## システム要件

* **CPU**：64-bit ARM プロセッサ
* **RAM**：2GB以上
* **HDD**：40GB以上の空き容量
* **追加要件**：4GB以上のスワップ
* **OS**：RHEL 8またはCentOS 8（arm64用
* **その他の要件**：
  * **PostgreSQL**：バージョン 12.9 以降
  * **NGINX**：バージョン1.3.13またはそれ以降
  * **RabbitMQ**

## 依存関係のインストール

### 最新のNGINXパッケージバージョンのインストール

RHEL/CentOS用の`yum`リポジトリを設定するには、`/etc/yum.repos.d/nginx.repo`というファイルを作成して、以下の内容を記述します。

```
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
```

以下のファイルを削除してください。

```
sudo rm /etc/nginx/conf.d/default.conf
```

[公式ガイド](http://nginx.org/en/linux_packages.html#stable)

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

```
sudo yum install nginx
```

その後、`/etc/nginx/nginx.conf` NGINX設定ファイルを編集し、以下のようにします。

```
user                  nginx;
worker_processes      1;
error_log             /var/log/nginx/error.log warn;
pid                   /var/run/nginx.pid;
events {
  worker_connections  1024;
}
http {
  include             /etc/nginx/mime.types;
  default_type        application/octet-stream;
  log_format          main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
  access_log          /var/log/nginx/access.log  main;
  sendfile            on;
  #tcp_nopush         on;
  keepalive_timeout   65;
  #gzip               on;
  include             /etc/nginx/conf.d/*.conf;
}
```

### EPELリポジトリのインストール

```
sudo yum install epel-release
```

### PostgreSQLのインストールと設定

お使いのCentOSのバージョンに含まれるPostgreSQLのバージョンをインストールします。

```
sudo yum install postgresql postgresql-server
```
::: note warn
PostgreSQLリポジトリから他のバージョンのPostgreSQLをインストールしたい場合は、PostgreSQLの[公式ドキュメント](https://www.postgresql.org/download/linux/redhat/)をご参照ください。
:::

**PostgreSQLデータベースの初期化**

```
sudo service postgresql initdb 
sudo chkconfig postgresql on
```

IPv4とIPv6のlocalhostの認証方式を`trust`にします。


テキストエディタで`/var/lib/pgsql/data/pg_hba.conf`ファイルを開いてください。


`host all all 127.0.0.1/32 ident`文字列を探し、以下の文字列に置き換えます。

```
host    all             all             127.0.0.1/32            trust
```

次に、`host all all ::1/128 ident`文字列を探し、以下の文字列に置き換えます。

```
host    all             all             ::1/128                 trust
```

変更を保存します。

**PostgreSQLサービスを再起動します。**

```
sudo service postgresql restart
```

**PostgreSQLのデータベースとユーザーを作成します。**

::: note warn
ユーザー名とパスワードは任意で指定できます。
:::


まず、次のコマンドを実行します。

```
cd /tmp
```

このコマンドは、rootから実行した場合の`could not change directory to "/root"`という警告を防止します。その後、データベースとユーザーを作成する必要があります。

```
sudo -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
```

### RabbitMQのインストール

Erlangをインストールします。

```
sudo yum install erlang
```

`/etc/yum.repos.d/rabbitmq-server.repo` ファイルを次の内容で作成します。

```
[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
```

`rabbitmq-server`をインストールします。

```
sudo yum install rabbitmq-server-3.8.12
```

rabbitmqサービスを起動し、ブート時に起動するようにします。

```
sudo service rabbitmq-server start
sudo systemctl enable rabbitmq-server
```

### mscorefontsのインストール

`cabextract` と `xorg-x11-font-utils` パッケージをインストールします。

```
sudo yum install cabextract xorg-x11-font-utils
```

CentOS 7.8(2003)の場合は、`fontconfig`も必要です。

```
sudo yum install fontconfig
```

msttcore fonts パッケージをインストールします。

```
sudo rpm -i https://deac-ams.dl.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
```

## ONLYOFFICE Docsのインストール

### ONLYOFFICE Docsレポジトリの追加

以下のコマンドで、yum ONLYOFFICE Docsのリポジトリを追加します。

```
sudo yum install https://download.onlyoffice.com/repo/centos/main/noarch/onlyoffice-repo.noarch.rpm
```

### ONLYOFFICE Docsのインストール

以下のコマンドを実行します。

```
sudo yum install onlyoffice-documentserver
```

依存するサービスを実行し、ブート時に起動できるようにします。

```
sudo service supervisord start
sudo systemctl enable supervisord
sudo service nginx start
sudo systemctl enable nginx
```

その後、ONLYOFFICE Docsはプロセスとして実行されます。パッケージは、他のrpmパッケージと同様に更新されます。

## ONLYOFFICE Docsのデフォルトポートの変更

ONLYOFFICE Docsのデフォルトでは、80番ポートを使って着信接続をリッスンしています。バージョン4.3以降、デフォルトのポートではなく、ONLYOFFICE Docsを使用する予定であれば、ポートを変更することができます。

::: note warn
デフォルトのポートを変更する場合、そのポートが着信/発信接続のために開いていることを確認してください。ONLYOFFICE Docsで使用されるポートの[完全なリスト](https://helpcenter.onlyoffice.com/server/docker/document/open-ports.aspx)を参照してください。
:::

これを行うには、コマンドを実行しているDS_PORT環境変数を編集する必要があります。

```
export DS_PORT=<PORT_NUMBER>
```

上記コマンドの`<PORT_NUMBER>`の代わりにポート番号を記述してください。

::: note warn
ご注意
ONLYOFFICE DocsのプロトコルをHTTPSに変更する場合は、ポートを443に変更せず、[本ガイド](https://helpcenter.onlyoffice.com/server/linux/document/switch-to-https.aspx)をご使用ください。
:::

その後、ONLYOFFICE Docsの設定を継続することができます。

## ONLYOFFICE Docsの設定

### 設定スクリプトの実行

`documentserver-configure.sh`スクリプトを実行します。

```
bash documentserver-configure.sh
```

PostgreSQLとRabbitMQの接続パラメータを指定するように指示されます。以下のデータを使用します。

**PostgreSQL**の場合：

* **ホスト**：localhost
* **データベース**：onlyoffice
* **ユーザー**：onlyoffice
* **パスワード**：onlyoffice

**RabbitMQ**の場合：

* **ホスト**：localhost
* **ユーザー**：guest
* **パスワード**：guest

### ファイアウォール例外を追加する

```
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
```

## ブラウザでONLYOFFICE Docsを起動する

設定が完了したら、ブラウザのアドレスバーに [http://localhost](http://localhost/) を入力して、ONLYOFFICE Docsのウェルカムページを開いてください。そこには、[提供されたAPI](http://api.onlyoffice.com/editors/basic)を使用して、ドキュメント例を有効にしたり、オンラインエディタをあなたのウェブアプリケーションに統合する方法についての詳しい説明が記載されています。

ONLYOFFICE DocsをONLYOFFICE Groupsに接続するには、[この手順](https://helpcenter.onlyoffice.com/server/linux/document/connect-document-server.aspx)をご参照ください。

ONLYOFFICE Docsを[今すぐダウンロード](https://www.onlyoffice.com/download-docs.aspx?from=qiita)