NextcloudのパブリックURLを設定して、Nextcloud自身がアクセスできるようにする
Nextcloudの送信アドレスが見つからないという警告を修正するには、正規URLを設定し、サーバー自体からDNS、HTTPS、およびリバースプロキシルーティングを確認してください。
Nextcloud 34.0.2 では、Redis 互換のバックエンドがバンドルされているKeyValueCacheため、現在の Nextcloud では PHP の Redis 拡張機能をインストールすることなく Redis を使用できます。単一の Ubuntu 24.04 サーバーでは、高速なローカル キャッシュには APCu を、分散キャッシュとトランザクション ファイル ロックには Unix ソケット経由で接続された Redis を使用します。これにより、Redis をネットワークから切り離し、Nextcloud に PHP リクエスト間で機能する共有キャッシュを提供できます。
現在の Nextcloud 35 管理マニュアルには、2 つの Redis パスが記載されています。Nextcloud 34.0.2 以降では、KeyValueCacheNextcloud にバンドルされている Predis を使用することをお勧めします。Redis サーバーをインストールして を設定しますmemcache.kvstoreが、 は必要ありませんphp-redis。古い Nextcloud リリースでは、PhpRedis 拡張機能と別のconfig.phpブロックを使用します。 でバージョンを確認しsudo -u www-data php /var/www/nextcloud/occ status、インストール先が別の場所にある場合はパスを置き換えてください。
このガイドでは、Nextcloud と Redis が同じ Ubuntu ホスト上で実行され、Web サーバーが として実行されwww-data、PHP と Redis を直接管理することを前提としています。Snap、AIO、Docker、またはその他のアプライアンスを使用して Nextcloud をインストールした場合は、ホストレベルのコマンドを盲目的に適用するのではなく、そのパッケージのサービスとファイルシステムの規則に従ってください。APCu は Redis よりもローカル キャッシュが高速ですが、Redis は分散キャッシュとファイル ロックに適しています。Nextcloudのメモリ キャッシュに関するドキュメントを参照してください。
Ubuntuのパッケージインデックスを更新し、RedisサーバーとAPCu PHPモジュールをインストールし、起動時にRedisを有効にします。
sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server

Ubuntu 24.04 では、デフォルトの PHP ラインは 8.3 で、 はphp-apcuディストリビューションのパッケージ名です。Redis は別のサービスであり、APCu は PHP によってロードされます。APCu をインストールした後、Web に面する PHP プロセスがモジュールをロードするように、PHP ハンドラを再起動してください。PHP-FPM を使用している場合は、通常は ですphp8.3-fpm。Apache が mod_php を使用している場合は、 を再起動してくださいapache2。再起動する前に、アクティブなサービス名を確認してください。
このシングルホスト構成では、Unixソケットを使用し、RedisのTCPリスナーを無効にします。編集します/etc/redis/redis.conf。複数の競合するコピーを残すのではなく、既存のアクティブなディレクティブを更新してから、以下を設定します。
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770

port 0TCPポートを無効にします。Redisは代わりにソケットパスを介してリッスンします。パーミッションモードで770は、Redisの所有者とグループがソケットにアクセスできますが、他のローカルユーザーはアクセスできません。WebサーバーアカウントをRedisグループに追加します。
sudo usermod -aG redis www-data
sudo systemctl restart redis-server
グループメンバーシップを変更した後は、PHP-FPMサービスまたはApacheを再起動してください。実行中のプロセスは古いグループリストを保持するためです。NextcloudのPHPを実際に実行しているサービスを使用してください。Redisのドキュメントでは、信頼できるクライアントへのアクセスを制限することを推奨しています。ローカルソケットを使用すると、インターネットに面したインターフェースでキャッシュポートを公開する必要がなくなります。Redisのセキュリティガイダンスを参照してください。
バックアップを取ってconfig/config.phpから、既存のPHP設定配列内にこれらのエントリを追加してください。ファイルの残りの部分は置き換えないでください。Nextcloudのインストール場所のパスを使用してください。
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => '/run/redis/redis-server.sock',
],
],

ホストパスの先頭のスラッシュは、Nextcloud の KeyValueCache に Unix ソケットを使用するように指示するため、TCP ポートやプロトコルの設定は不要です。Redis はmemcache.distributedと の両方を提供しますmemcache.locking。後者はトランザクション ファイル ロックをデータベースから分離します。memcache.local低遅延のローカル キャッシュ アクセスを実現するには、APCu を有効にしてください。正確なエントリとソケット オプションについては、Nextcloud のKeyValueCache と Unix ソケットの手順、およびトランザクション ファイル ロック ガイドを参照してください。
まず、Redisサービスがアクティブであり、ソケットが応答することを確認してください。
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping

2 番目のコマンドに対する期待される応答は ですPONG。次に、Nextcloud にサインインして、管理設定の概要を開きます。ローカル キャッシュの警告が消えていることを確認し、Redis またはキャッシュの警告が残っている場合は Nextcloud のログを確認します。sudo -u www-data php /var/www/nextcloud/occ statusインスタンスがまだロードされていることを確認するには、 を実行することもできます。このコマンドは、キャッシュ自体ではなく、Nextcloud の可用性を確認します。
Redis が「Permission denied」と報告したり、Nextcloud が接続できない場合は、ソケットが存在すること、ソケットがグループwww-dataに属しているredisこと、ソケットのグループとモードでアクセスが許可されていることを確認してください。グループメンバーシップを変更した後は、Redis と PHP ハンドラを再起動してください。Redis がソケットを作成できない場合は、設定パスにタイプミスがないか確認し、ソケットを検査してくださいsudo journalctl -u redis-server -n 50。Redis をパブリックネットワークに公開することでソケットの権限の問題を解決しないでください。
Nextcloud のバージョンが 34.0.2 より古い場合は、Nextcloud で使用されている PHP バージョンに一致する PHP Redis 拡張機能をインストールしてください。標準の Ubuntu 24.04 PHP 8.3 環境では、パッケージは ですphp-redis。Ubuntu では、PHP 8.3 Redis 拡張機能としてリストされています。インストール後、アクティブな PHP ハンドラを再起動してください。 ではconfig.php、上記の KeyValueCache エントリの代わりに、従来の Redis クラスと接続ブロックを使用してください。
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis-server.sock',
'port' => 0,
],
UbuntuのNobleパッケージリストでphp-redisパッケージのマッピングを確認してください。両方のバックエンドを同時に設定しないでください。一致する設定を保存したら、ソケットpingとNextcloud管理画面の概要チェックを再度実行してください。
Nextcloudの送信アドレスが見つからないという警告を修正するには、正規URLを設定し、サーバー自体からDNS、HTTPS、およびリバースプロキシルーティングを確認してください。
Nextcloudのキャッシュとファイルロックのために、ローカルのUnixソケットを介してAPCuとRedisを設定する手順を、最新版および旧版のNextcloudリリースごとに説明します。
Nextcloudのcronモードを確認し、systemdサービスとタイマーを修復し、起動後および5分ごとにバックグラウンドジョブが実行されていることを確認してください。
信頼性の高いNextcloudファイルロックを有効にし、適切なRedisまたはValkeyバックエンドを選択し、同時ファイル変更のリスクを冒すことなく警告が解消されることを確認してください。
最新のアップデート、HTTPSおよびHSTS、正確なリバースプロキシの信頼設定、およびパブリックサーバーに対するチェックによって、Nextcloudのスキャンでよく見られる問題を修正します。
必要なストレージに対してNextcloud SSEを設定し、暗号化キーを保護し、既存ファイルを暗号化する前に転送量とCPUへの影響を測定します。
Nextcloudのファイル検索機能をElasticsearchに接続し、ドキュメントの内容をインデックス化し、サーバーとセキュリティのニーズに合った設定を選択してください。
Nextcloudを設定して、削除されたファイルを一定期間後に削除するようにし、バックグラウンドジョブを確実にスケジュールし、すべてのユーザーのゴミ箱を空にするコマンドを回避するようにします。
NextcloudのOCC修復を安全に実行し、データベースの変更をプレビューして、警告が残る理由を確認してください。
PHP、Nginx、Apache、一時ストレージ、タイムアウトの設定を調整することで、Nextcloudブラウザからのより大きなファイルアップロードを可能にし、どの制限がファイルのアップロードを妨げているかを確認してください。