見出し画像

レンタルサーバでNextCloudを動かしたときの追加設定の記録

インストールすると管理画面のダッシュボードに表示されるエラーと警告のうち、消すことができたものをメモしておきます。
バージョンはNextcloud Hub 9 (30.0.2)。

出ていた警告の処理

Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも 15552000” に設定されていません。

nextcloud直下の .htaccsess に追記

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

データベースにいくつかのインデックスがありません。

SSH接続でサーバに接続して、コマンドラインから以下を入力。

$ php occ db:add-missing-indices

今まで使ってきたシステムの場合、DBをメンテンスしておくと良いかも。

$ php occ maintenance:repair

Web サーバーは `.well-known` URL を解決するように適切に設定されていません。

サブドメイン直下の.htaccessに以下を追加。
※サーバによっては効かない場合もあるので、諦めることも大事。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^.well-known/carddav /cloud00/remote.php/dav [R=301,L]
RewriteRule ^.well-known/caldav /cloud00/remote.php/dav [R=301,L]
RewriteRule ^.well-known/webfinger /cloud00/index.php/.well-known/webfinger [R=301,L]
RewriteRule ^.well-known/nodeinfo /cloud00/index.php/.well-known/nodeinfo [R=301,L]
</IfModule>

バックグラウンド処理について

最後のバックグラウンドジョブの実行は … でした。何かがおかしいようです。

色々様々な原因が絡んでエラーが解消しない場合があります。
ウチのサーバも同様で、原因はWebPアニメでした。
※なおPHPのバグらしいので、該当ファイルを消す以外方法はありません。

一時的にPHP Memory Limitを上げてあげることで解消する場合もありますが、エラーログを見て個別に対応するしかありません。

どれを設定しておけばよいか?

基本的にはcronに設定しておくのが良いです。

0 */2 * * * /usr/local/php -d memory_limit=1G -d apc.enable_cli=1 /home/nextcloud/cron.php

うちの場合はサーバのcornジョブに上記を参考に2時間ごとにコマンドを走ってもらうように仕込んでおきました。(そこまで頻度が高くないので)
Memory Limitを一時的に上げておかないと失敗しましたので、そのオプションと -d apc.enable_cli=1 オプションでAPCuキャッシュをCLIで有効にする設定を入れてあります。(いらないサーバもあると思う)

config.phpへの追記

/home/nextcloud/config/config.php (パスは各自で変わります)に以下を追記しました。

'session_lifetime' => 86400,
'session_keepalive' => true,
'maintenance_window_start' => 1,
'trashbin_retention_obligation' => 'auto,30',

session_lifetime => 86400(セッションの有効期間を設定)
ユーザーがログインしてから24時間後にセッションが自動的に切れるようになります。
session_keepalive => true(セッションの有効期間を延長するかどうか)
ユーザーがアクティブな場合、セッションの有効期間が自動的に延長されます。
maintenance_window_start => 1(メンテナンスウィンドウの開始時間)
毎日午前1時にメンテナンスウィンドウが開始されます。
この時間帯にメンテナンス作業を行うことで、ユーザーへの影響を最小限に抑えることができます。
trashbin_retention_obligation => ‘auto,30’(ゴミ箱に移動されたファイルの保持期間)
ゴミ箱に移動されたファイルは最大30日間保持され、その後自動的に削除されます。
※ゴミ箱のファイルは自動的に削除されないので、この設定はおすすめ。

とりあえずこれだけの設定で警告とエラーはほぼ消えました。
あとはレンタルサーバでは同仕様もない警告だけ。


いいなと思ったら応援しよう!