Nextcloudの警告を解決してみた

レンタルサーバー(ConoHa WING)にNextcloudをインストールしてみました。
インストールは大きな問題もなく完了して初期画面(ダッシュボード)が表示されるところまではいったのですが、いろいろと警告が表示されていたのでそちらを一つ一つ解決していこうと思います。

各種警告

Nextcloudのインストールについてはこちらの記事をご覧ください。

関連記事

Nextcloudという、オンラインストレージを構築するためのソフトウェアがあります。 プライベートなサーバーにインストールすれば自分専用オンラインストレージを構築することができます。 最近は無料で使えるオンラインストレ[…]

WebDAVインターフェースが動作していないようです。

WebDAVインターフェースが動作していないようです。Webサーバーは、ファイルの同期を許可するよう適切に設定されていません。

この警告が出る原因はConoHa WINGのWAFです。

WAFのログ

WAFのログにしっかりと出ています。
WAFを無効にすることで解決できます。

PHPのメモリ制限が推奨値の512MB以下です。

PHPのメモリ制限が推奨値の512MB以下です。

PHPの設定を変更できるレンタルサーバーであれば解決できます。
ConoHa WINGの場合はコントロールパネルからphp.iniの編集が可能です。

php.iniの編集

「サイト管理」→「サイト設定」→「応用設定」→「PHP設定」→「php.ini編集」で下記設定を追加してください。

memory_limit = 512M

リバースプロキシヘッダーの設定が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。

リバースプロキシヘッダーの設定が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。 そうでない場合、これはセキュリティの問題であり、攻撃者はNextcloudに見えるように自分のIPアドレスを偽装することができます。より詳しい情報はドキュメントで参照できます。

ConoHa WINGはリバースプロキシとしてNginxが動いています。
その影響で出ている警告だと思われます。
Nextcloudのconfigファイル(config/config.php)に下記の設定を追加することで解決できます。

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

サーバーのIPアドレスはコントロールパネルなどから確認できます。
ConoHa WINGの場合はコントロールパネルの「サーバー管理」→「契約情報」にある「スペック」の部分で確認可能です。

サーバーのIPアドレス

Webサーバーは適切にホスト名 “/.well-known/〜” が引けるように設定されていません。

Webサーバーは適切にホスト名 "/.well-known/webfinger" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
Webサーバーは適切にホスト名 "/.well-known/nodeinfo" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
Webサーバーは適切にホスト名 "/.well-known/caldav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
Webサーバーは適切にホスト名 "/.well-known/carddav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。

ドキュメントルートにある.htaccessファイルに下記の設定を追加することで解決できます。
nextcloudをインストールしたディレクトリにある.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>

.htaccessファイルの編集は、サーバーにSSHログインして行う、コントロールパネルから行う、ファイルマネージャーから行う、などいくつかの方法があると思います。

Your installation has no default phone region set.

Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add "default_phone_region" with the respective ISO 3166-1 code ↗ of the region to your config file.

Nextcloudのconfigファイル(config/config.php)に下記の設定を追加することで解決できます。

'default_phone_region' => 'JP',

メモリキャッシュが設定されていません。

メモリキャッシュが設定されていません。可能であれば、パフォーマンスを向上するため、memcacheを設定してください。より詳しい情報はドキュメントで参照できます。

サーバーにSSHログインして下記コマンドを実行したとき、「APCu Support => 〜」という結果が返ってくるサーバーで、かつphp.iniの編集を行えるのであればAPCuを使うように設定することで解決できます。

php -i | grep -i apcu

「APCu Support => Disabled」の場合、php.iniに下記設定を追加します。

apc.enable_cli = 1

追加後、再度上記コマンドを実行したとき、「APCu Support => Enabled」に変わらなければAPCuは使えないレンタルサーバーなので残念ですが解決は諦めてください。

Enabledに変わった場合はNextcloudのconfigファイル(config/config.php)に下記の設定を追加します。

'memcache.local' => '\OC\Memcache\APCu',

“Strict-Transport-Security” HTTPヘッダが最低でも “15552000” 秒に設定されていません。

"Strict-Transport-Security" HTTPヘッダが最低でも "15552000" 秒に設定されていません。セキュリティを強化するには、セキュリティTips ↗で解説しているHSTSを有効にすることを推奨します。

ドキュメントルートにある.htaccessファイルに下記の設定を追加することで解決できます。
nextcloudをインストールしたディレクトリにある.htaccessではない点にご注意ください。

Header set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

尚、この設定をすることでブラウザは当該ドメイン及びサブドメインに必ずhttpsでアクセスするようになります。
httpでのアクセスが必要な場合は設定しない方がいいと思います。

Nextcloud 21 はMySQL バージョン “5.7.27-log”をサポートしなくなりました。

Nextcloud 21 はMySQL バージョン "5.7.27-log"をサポートしなくなりました。MySQL 8 もしくはそれ以上のバージョンのものを使用してください。

これについてはホスティング業者がDBサーバーのアップグレードをしてくれるのを待つしかないと思います。


まとめ

上記の対応をすることで大部分の警告を解決することができると思います。

ほぼ解決

ConoHa WINGはApacheなので.htaccessの編集を行いましたが、Nginxだとconfファイルの編集になります。
これについては要望があった場合に記事にしたいと思います。

この記事がNextcloudの警告に困っている方の参考になれば幸いです。