【Nextcloud】ConoHa WINGへのインストール手順と初期設定

2023-03-08

はじめに結論(2024.2月追記)

以前は問題なく使えていましたがNextcloudのバージョンアップの影響か、ファイル数が多い場合やファイル容量が大きい場合に「不明なエラーが発生しました」と表示されることがあります。

使えないことは無いですが、若干不安が残ります。

アプリケーションもおおむね動作しますが、Officeファイル関連(OnlyOffice、NextcloudOffice)の組み込みサーバーは動作しませんでした。

外部サーバーを使っての動作は未検証です。

簡単なファイル共有やグループウェア機能は使えますが、本格的なクラウドストレージサービスとして使いたい場合は他の運用を考えた方が良さそうです。

以下の記事は2023.3月時点のままですが、操作自体は同様で進める事ができます。

Introduction

実機サーバーでのNextcloudのインストールは何とか完了しました。

ですが、実運用には24時間365日の稼働(特に夏場)とバックアップの課題が残り、使用頻度や追加コストを考えると自宅サーバーでNextcloudを運用するメリットが少ないな、と。

実例が公開されていたことやストレージ容量にも余裕があったので、今後の運用も考えてレンタルサーバー(ConoHa WING)にインストールしました。

参考サイト

ConoHa WINGを使うメリット

稼働時間とバックアップの課題解決

レンタルサーバーなので安心して24時間365日稼働ができます。また、自動バックアップもあるので運用の課題は解決できます。

追加費用が不要(個人的な理由)

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

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

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

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

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

インストール手順

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

事前準備

ConoHa WINGでインストールに必要な設定を済ませます。

Nextcloudのインストール

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

CohoHa WINGにSSHで接続後に操作します。

署名の検証でエラーになったため、wgetは「–no-check-certificate」を追加しています(信頼できるかどうかは個人で判断してください)。

#インストールディレクトリへ移動
cd public_html/サブドメイン名
#Nextcloudのダウンロード
wget https://download.nextcloud.com/server/releases/latest.zip --no-check-certificate
#Webインストーラー用にNextcloudのファイル名変更
mv latest.zip nc.zip
#Webインストーラーのダウンロード
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',
 'default_phone_region' => 'JP',

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

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

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

メール設定

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

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

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