てんこ製作

Tenco Works

Nextcloudインストール直後の警告を解消

ConoHa WINGにNextcloudをインストールした直後は、設定画面のセキュリティー&セットアップ警告の画面にいろいろ表示されるので、それを解決します。

警告内容の確認

Nextcloudの管理者アカウントでログインしたら、画面右上の自分のユーザーアイコンをクリックして、ドロップダウンメニューから設定をクリックします。

設定画面のサイドメニューから概要をクリックすると、セキュリティ&セットアップ警告画面が表示されます。

てんこの環境でも「セットアップに関するいくつかのエラーがあります。」とか表示されました。

エラー一覧

  1. PHPのメモリ制限が推奨値の512MB以下です。
  2. リバースプロキシヘッダーの構成が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。そうでない場合、これはセキュリティに問題があり、攻撃者がNextcloudを表示できるようにIPアドレスを偽装することができます。詳細については、ドキュメント↗をご覧ください。
  3. 安全な接続でインスタンスにアクセスしていますが、インスタンスは安全でないURLを生成しています。これは、リバースプロキシの背後にあり、構成設定変数が正しく上書きされていない可能性があります。これについては、ドキュメントページ↗をお読みください。
  4. Strict-Transport-Security "HTTP ヘッダーの秒数が少なくとも"15552000" に設定されていません。セキュリティを強化するには、セキュリティのヒント↗で説明されているようにHSTSを有効にすることをお勧めします。
  5. メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。
  6. ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに "default_phone_region" を設定ファイルに追加してください。
  7. メモリーキャッシュが構成されていません。パフォーマンスを向上させるために、可能な場合はmemcacheを構成してください。詳細については、ドキュメント↗をご覧ください。
  8. PHP OPcacheモジュールが正しく設定されていません。詳細は ドキュメント を参照してください。
  9. OPcacheのインターン化文字列バッファーがまもなく一杯になります。全てのスクリプトをキャッシュに保管できるようにするには、opcache.interned_strings_bufferの値を8より多い値で、PHP設定に適用することを推奨します。
  10. MySQLのバージョン "5.7.27-log" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。

対処していきます

メールは使用しない運用を考えているので5番の警告は放置します。

10番のエラーもConoHa WINGで使われているMySQLのバージョンが上がらないと解決しないので、ConoHaの対応待ちです。ここでは放置します。

参考にしたサイト

note.com

twinturbo-power.com

.htaccess設定

ConoHaの管理画面に入って、サイト管理→サイト設定→応用設定をクリックしていきます。

.htaccess設定がありますので、そこに設定を追記します。

<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
 RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
 RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L]
 RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
</IfModule>

RewriteRuleで2番めの引数に指定するファイルパスは、Nextcloudをインストールした場所によって適宜パスを書いてあげる必要があります。上の例はサイトのドキュメントルートにNextcloudをインストールした場合。

例えば/nextcloud配下にインストールした場合は/nextcloud/public.phpなどとすれば良いみたい。

php.ini設定

同じ応用設定の画面にPHP設定があります。ここがphp.iniを設定するところです。

ここにPHPの設定を追記します。

memory_limit = 512M
opcache.interned_strings_buffer=64
apc.enable_cli = 1

ここで指定する数値の適量が難しいですが・・・

memory_limitはNextcloudにアップする可能性がある最大サイズを目安にしてみました。

opcache.interned_strings_bufferはデフォルトで8(単位はMB)だそうですが、このままだと確かに同期するときに意味不明なエラーが出るのですよね・・・かと言って適切な量もわからず。徐々に上げてみて結局64で落ち着きました。

config.php設定

Nextcloudの設定ファイルconfig.phpに設定を追記していきます。

ConoHaの管理画面からファイルマネージャーに入ります。

Nextcloudをインストールしたフォルダーにconfigというフォルダーができています。その下を覗くと、config.phpというファイルがあるので、このファイルに設定を追加していきます。

$CONFIG = array (
// 途中省略
  'trusted_proxies' =>
   array (
     0 => 'xxx.xxx.xxx.xxx',
   ),
 'overwriteprotocol' => 'https',
 'default_phone_region' => 'JP',
 'memcache.local' => '\OC\Memcache\APCu',
);

trusted_proxiesに設定するIPアドレスは、ConoHaの自分のWebサーバーのIPアドレスです。管理画面で確認できます。

ここまででだいぶ警告を減らすことができました。