ConoHa WINGにNextcloudをインストールした直後は、設定画面のセキュリティー&セットアップ警告の画面にいろいろ表示されるので、それを解決します。
警告内容の確認
Nextcloudの管理者アカウントでログインしたら、画面右上の自分のユーザーアイコンをクリックして、ドロップダウンメニューから設定をクリックします。
設定画面のサイドメニューから概要をクリックすると、セキュリティ&セットアップ警告画面が表示されます。
てんこの環境でも「セットアップに関するいくつかのエラーがあります。」とか表示されました。
エラー一覧
- PHPのメモリ制限が推奨値の512MB以下です。
- リバースプロキシヘッダーの構成が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。そうでない場合、これはセキュリティに問題があり、攻撃者がNextcloudを表示できるようにIPアドレスを偽装することができます。詳細については、ドキュメント↗をご覧ください。
- 安全な接続でインスタンスにアクセスしていますが、インスタンスは安全でないURLを生成しています。これは、リバースプロキシの背後にあり、構成設定変数が正しく上書きされていない可能性があります。これについては、ドキュメントページ↗をお読みください。
- Strict-Transport-Security "HTTP ヘッダーの秒数が少なくとも"15552000" に設定されていません。セキュリティを強化するには、セキュリティのヒント↗で説明されているようにHSTSを有効にすることをお勧めします。
- メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。
- ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに "default_phone_region" を設定ファイルに追加してください。
- メモリーキャッシュが構成されていません。パフォーマンスを向上させるために、可能な場合はmemcacheを構成してください。詳細については、ドキュメント↗をご覧ください。
- PHP OPcacheモジュールが正しく設定されていません。詳細は ドキュメント を参照してください。
- OPcacheのインターン化文字列バッファーがまもなく一杯になります。全てのスクリプトをキャッシュに保管できるようにするには、opcache.interned_strings_bufferの値を8より多い値で、PHP設定に適用することを推奨します。
- MySQLのバージョン "5.7.27-log" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。
対処していきます
メールは使用しない運用を考えているので5番の警告は放置します。
10番のエラーもConoHa WINGで使われているMySQLのバージョンが上がらないと解決しないので、ConoHaの対応待ちです。ここでは放置します。
参考にしたサイト
.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アドレスです。管理画面で確認できます。
ここまででだいぶ警告を減らすことができました。