ConoHa WINGにNextcloudをインストールしてOnlyOfficeを使う

色々とあってグループウェアのような機能が欲しいと思い、Nextcloudを構築して使ってみています。

実際に運用する上での課題は24時間365日の稼働(特に夏場)とバックアップだったので、ひとまずディスク容量に余裕のあるレンタルサーバー(ConoHa WING)にインストールしてみることにしました。

ConoHa WINGを使う(個人的な)メリット

追加費用が不要

このブログ自体がConoHa WINGを使っているため、Nextcloud用のVPSやサーバーが不要な点は大きなメリットでした。

レンタルサーバーなので当然24時間稼働でも安心できる上、自動バックアップで運用の課題も解決できます。

加えて、ブログだけの利用だとディスク容量がかなり余っていたのでもう少し有効に利用したいのもありました。

1年以上経っていますが300GB中4GBしか使っていません…。

インストールの実例が公開されていた

知識や経験を惜しげもなく公開してくれている皆様には非常に感謝しています。

インストールの方法がわかっていたので、後は試してみるだけです。

参考サイト

安いVPSよりも(理論上の)スペックに余裕がある

NextcloudだけでもPHPのメモリは512Mが推奨になっていますが、費用の安いVPSでは割り当てられるCPUコア数・メモリ容量とも少ないです。

その点ConoHa WINGでは、共有サーバーなのであくまで理論値にはなりますが、ベーシックプランでも仮想6コア・8Gメモリとスペック上の余裕があります。

手順

正直、インストールの手順は上記の参考リンクに沿って進めるだけです。

ですが、ファイルマネージャーでzipファイルをアップロードするとエラーになったり、SSHで接続後のダウンロードはオプションが必要だったりしたので、誰でも構築できるように改めて手順を残しておきます。

必要のない部分は読み飛ばして下さい。

ローカルで使っているPCがWindowsのため、ConoHa WINGへのSSH接続はPowerShellで行っています。

ConoHa WINGのコントロールパネルで操作

詳細な手順が必要な場合は、ConoHa WINGのサポートページをご覧ください。

インストール先のサブドメインを作成

使っているドメインのままサブフォルダにインストールしても問題ないと思いますが、何か起きた時にWordPressが影響を受けても困るのでNextcloud用にサブドメインを作成します。

「サーバー管理」ー「ドメイン」からサブドメインを追加します、今回の場合は「cloud.~.~」でサブドメインを作成しました。

Nextcloud用のデータベースとユーザーを作成

続いて、Nextcloudで使用するデータベースとユーザーを作成します。

サイト管理からデータベースとユーザーを作成して下さい。

SSH接続の設定(必要な場合)

ConoHa WINGのSSHアカウントを作っていない場合は、SSHアカウントを作成してプライベートキーをダウンロードします。

「サーバー管理」ー「SSH」から公開鍵認証のキーを作成してダウンロードします。

プライベートキーは、管理しやすいフォルダに移動させて下さい(個人的には「ユーザーフォルダ」ー「.ssh」に保存しています)。

ローカルPCでの操作

ConoHa WINGへのSSH接続

色々とアプリをインストールする事が嫌いなので、PowerShellで接続します。

>ssh -p ポート番号 -i プライベートキーを保存したパス ユーザー名@ConoHa WINGのホスト名

ポート番号、ユーザー名、ConoHa WINGのホスト名は作成したSSH Keyから確認してください。

プライベートキーを保存したパスの入力が面倒な時は、「~/.ssh/プライベートキーの最初数文字」を入力後にTABキーを押せば補完してくれます。

NextcloudのzipファイルとWebインストーラのダウンロード

SSHの接続後、作成したサブドメインのディレクトリに移動後、必要ファイルのダウンロードとファイル名を変更します。

cd public_html/サブドメイン名
wget https://download.nextcloud.com/server/releases/latest.zip --no-check-certificate
mv latest.zip nc.zip
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php --no-check-certificate

webインストーラの実行

Webブラウザから「https://サブドメイン名/setup-nextcloud.php」にアクセスしてセットアップスクリプトを実行します。

別のPCにインストールした時のスクリーンショットのため、データフォルダーの場所が違っていますが気にしないで下さい。

データベース名は、ネームタグの表示名では無くConoHa WINGのデータベース名をそのまま入力してください。

セットアップの終了後、リダイレクトで「このページは表示できません」となるかもしれませんが、NextcloudをインストールしたサブドメインのURL(かサブディレクトリ)にアクセスするとログイン画面が表示されます。

再度ConoHa WINGのコントロールパネルで操作

表示されるセットアップの警告にユーザー側の操作で可能な範囲で対応します。

いくつかの警告は残りますが、今のところ実際の使用で大きな問題は起きていません。

「サイト管理」ー「サイト設定」ー「応用設定」から.htaccessとPHPのバージョン変更、php.iniを修正します。

.htaccessの修正

「Webサーバーは適切にホスト名"/.well-known/XXXX" が引けるように設定されていません。…」と、「"Strict-Transport-Security" HTTPヘッダが最低でも “15552000" 秒に設定されていません。…」に対応するため、.htaccessを編集します。

記載内容

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
    RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
    RewriteRule ^\.well-known/webfinger /nextcloud/index.php%{REQUEST_URI} [R=301,L]
    RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php%{REQUEST_URI} [R=301,L]
    RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
    RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
Header set Strict-Transport-Security "max-age=15552000"

PHPバージョンとphp.iniの変更

初期設定ではPHP7.2で「PHPのバージョンが~」と警告が出ていたので、8.1に変更します。

変更したバージョンのphp.iniを編集して「PHPのメモリ制限は推奨値512MBを下回ります。」への対応と、念のためアップロード可能なファイルサイズを修正しています。

記載内容

max_execution_time = 300
memory_limit = 512M
post_max_size = 500M
upload_max_filesize = 500M
opcache.enable=On
opcache.memory_consumption=128
opcache.interned_strings_buffer=8

「PHPのOPcacheモジュールが~」の対応のためにopcacheの設定も加えましたが、キャッシュ自体がすぐに一杯になるようで警告は出たり消えたりしています。

ジョブスケジューラ(cron)の登録

バックグラウンドジョブを実行するため、「サーバー管理」ー「ジョブスケジューラ」からジョブスケジューラを設定します。

cronを選択して、月~時間までは全て「*」を入力、分は「*/5」を入力します。

コマンドは

php -f /home/ユーザー名/public_html/Nextcloudのドメイン名/インストールディレクトリ/cron.php

を入力します。

入力例

SSHで直接cronを登録したので「未設定」となっていますが、動作はしています。

config.phpの修正

「リバースプロキシヘッダ~」「安全な接続で~」に対応するため、「サイト管理」ー「ファイルマネージャー」からNextcloudのインストールディレクトリ – configを開いてconfig.phpを修正します。

修正するためにサーバーのIPアドレスが必要になるため、「サーバー管理」ー「契約情報」からIPアドレスを確認して下さい。

config.phpに追記

'trusted_proxies' =>
 array (
   0 => 'サーバーのIPアドレス',
 ),
 'overwriteprotocol' => 'https',

Nextcloudにログインして最終設定

バックグラウンドジョブの設定

「管理者設定」ー「基本設定」からバックグラウンドジョブをcronで選択します。

メール設定

メールサーバの設定は使いやすいメールサーバで大丈夫です。

今回は、せっかくなので登録したサブドメインで作成したメールアドレス・サーバーで設定しています。

ここまでで一通りNextcloudは問題なく使えるようになりました、後は必要なアプリをインストールして、使いやすく整えて下さい。

Community Document ServerとOnlyOfficeのインストール

Nextcloudで使えるオフィスアプリはOnlyOfficeとNextcloud Officeがありますが、ConoHa WINGではOnlyOfficeしか動作しませんでした。

原因は不明ですが、今回はOnlyOfficeをインストールしてオフィスファイルをブラウザ上で表示・編集できるようにします(モバイルデバイスは表示のみ)。

OnlyOfficeを使うためにDocument Serverへの接続が必要になり、「1.別でホストされたDocument Serverの利用」と「2.Community Document Serverアプリの利用」の2種類があります。

どちらでも動作する事は確認していますが、ConoHa WINGだけで完結できる「2.Community Document Serverアプリの利用」が便利だと思います。

Community Document Serverはコミュニティエディションのため、利用規約を確認の上でご利用ください。

インストール自体はNextcloud上で「アプリ」ー「Office & テキスト」からCommunity Document ServerとOnly Officeをダウンロードして有効化すると終わります。

設定も自動で終わります。

動作確認

Wordファイルを開いて編集できるようになりました。

テキストボックスを使ったファイル等は、場合によってはレイアウト崩れが起きる可能性が高いです。

とは言え、基本的な文書やスプレッドシートの表示・編集は問題無いので、OnlyOfficeも導入できればグループウェアとしてもかなり使いやすくなると思います。

まとめ

PTAや子ども会用として当初は自宅のサーバーでNextcloudをホストしようと思っていましたが、昨今の電気代高騰と、夏場の温度管理に悩んでいたので、ConoHa WINGでNextcloudとOnlyOfficeが使える事が確認できたことはとても嬉しいです。

また、自宅で構築したメールサーバーはOP25B対策も必要になりますが、ConoHa WINGだとメールサーバーがそのまま使える点も助かります。

今のところは一人で各種アプリの動作確認中ですが、少しずつユーザーを追加して実際の使用感も試してみたいと思います。