Ubuntu 24.04でNextcloudのRedisキャッシングを設定する方法

Nextcloud の現行の管理マニュアルには、Redis キャッシュとトランザクションファイルロックのための PhpRedis 拡張機能が引き続き記載されています。また、Nextcloud 34.0.2 で追加された、拡張機能不要の新しい KeyValueCache バックエンドについても記載されています。このガイドでは、Ubuntu 24.04 に PHP 8.3 Redis 拡張パッケージが搭載されているため、既存の PhpRedis 構成を使用しています。新しいバックエンドは、お使いの Nextcloud リリースがサポートしている場合はオプションとして利用できますが、構成キーが異なるため、両方の例を混同しないでください。

その結果、Nextcloudホストのみが利用できるローカルRedisサービス、Redisを基盤とした分散キャッシュとファイルロック、そして高速なローカルキャッシュを実現するAPCuが利用できるようになります。これは一般的なシングルサーバー構成です。WebサーバーとPHPサーバーが複数のホストに分散している場合は、以下のlocalhost設定の代わりに、適切なネットワーク制御を備えた共有Redisエンドポイントを使用してください。

RedisがNextcloudのインストールで変更する点

RedisはNextcloudに、分散キャッシュエントリとトランザクションファイルロックのためのキーバリューサービスを提供します。これらのロックは、複数のリクエストがファイルを操作する際の競合操作を防ぐのに役立ちます。RedisはNextcloudのデータベース、ファイルストレージ、PHP OPcache、またはバックアッププランを置き換えるものではありません。単一サーバーでは、一般的にAPCuの方がローカルプロセス内キャッシュが高速ですが、Redisは共有キャッシュとロックを処理します。Nextcloudはまた、特に複数のWebサーバーを使用する場合、Redisをローカルキャッシュとして使用することは推奨されないと警告しています。

Nextcloud の最新マニュアルでは、サポートされているバックエンドとして Redis が示されており、拡張機能ベースの方法には PhpRedis 2.2.6 以降が指定されています。Ubuntu 24.04 のパッケージ アーカイブには、php8.3-redisおよびが含まれていますredis-server。Ubuntu がアップデートを公開するとパッケージのリビジョンが変わる可能性があるため、古いガイドからコピーしたバージョンを固定するのではなく、構成済みの Ubuntu リポジトリからインストールしてください。2026 年 10 月 6 日に確認された参照: Nextcloud のメモリ キャッシュに関するドキュメント、Ubuntu 24.04 PhpRedis パッケージ一覧、およびUbuntu 24.04 Redis サーバー パッケージ一覧。

始める前に

  • Nextcloud のインストールディレクトリと Web サイトで使用される PHP ランタイムを確認します。以下のコマンドは、PHP 8.3、Apache または PHP-FPM、および Web サービス アカウントを含む標準的な Ubuntu パッケージのインストールを前提としていますwww-data。
  • バックアップを取りconfig/config.php、復元方法をメモしておきましょう。正確なパスは状況によって異なります。たとえば、パッケージインストールの場合は を使用するかもしれませんが/var/www/nextcloud/config/config.php、手動インストールの場合は別の場所に保存される可能性があります。
  • サーバーがアクティブなファイルアップロードを処理する場合は、メンテナンスウィンドウを使用してください。ApacheまたはPHP-FPMを再起動すると、Webリクエストが一時的に中断されます。

1. Redis、PhpRedis、およびAPCuをインストールします。

パッケージのメタデータを更新し、デーモンとPHP拡張機能をインストールします。

sudo apt update
sudo apt install redis-server php-redis php-apcu

Ubuntuのphp-redisパッケージは、インストールされているPHPバージョンに対応する拡張機能を選択します。複数のPHPバージョンを管理している場合、またはサードパーティのPHPリポジトリを使用している場合は、Nextcloudで使用されているPHPバージョンと完全に一致する拡張機能がインストールされていることを確認してください。コマンドラインPHPランタイム用に有効化されたモジュールだけでは、ApacheやPHP-FPMがそれをロードできるとは限りません。

起動時にRedisを有効にして起動し、その後サービスの状態を確認してください。

sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping

最後のコマンドに対するローカル Redis の正常な応答は次のとおりですPONG。サービスが非アクティブの場合は、sudo journalctl -u redis-server -n 50 --no-pagerNextcloud の設定を変更する前に確認してください。

2. Redisリスナーをローカルに保持する

単一ホスト環境の場合、Redisはパブリックインターフェースでリッスンする必要はありません。Ubuntuのパッケージ化された設定は通常、ローカルアクセスと保護モード向けに設計されています。/etc/redis/redis.conf変更する前に必ず確認してください。

sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf

Redis をループバック (通常は127.0.0.1と) にバインドしたままにして、保護モードを有効にしておきます。このローカル設定では、ポートをインターネットに::1公開したり、 にバインドしたりしないでください。Redis の設定を変更した後は、サービスを再起動して を繰り返してください。63790.0.0.0redis-cli ping

このガイドでは、ソケットのパーミッション変更を最小限に抑えるため、localhost 上で TCP を使用します。Unix ソケットもサポートされているローカルオプションの一つで、接続オーバーヘッドを削減できますが、Redis ソケットのパス、グループ所有権、パーミッション、および Nextcloud の設定がすべて一致している必要があります。意図的にその方法を選択する場合は、Nextcloud マニュアルのソケットの例に従ってください。

3. PHPが両方の拡張機能を読み込めることを確認する

コマンドラインPHPモジュールを確認してください。

php -m | grep -Ei '^(apcu|redis)$'

両方の名前が表示されるはずです。どちらか一方が表示されない場合は、有効になっているモジュール ファイルを確認しphp --ini、PHP のバージョンに合ったパッケージをインストールしてください。Web サイトで使用される PHP ハンドラを再起動して、ワーカーが新しいモジュールをロードするようにします。mod_php を使用する Apache の場合は、 を実行しますsudo systemctl restart apache2。PHP 8.3 を使用する PHP-FPM インストールの場合は、 を実行しますsudo systemctl restart php8.3-fpm。デプロイメントの要件に応じて、Web サーバーを再起動またはリロードしてください。

CLIによるチェックは、ウェブランタイムが正常に動作していることを示す最初の目安としては役立ちますが、完全な証明にはなりません。その後、Nextcloudの管理設定、サーバー情報、またはPHP情報ビューを使用して、ウェブプロセスがキャッシュモジュールを認識していることを確認してください。

4. Nextcloudにキャッシュ設定を追加する

既存のconfig/config.phpファイルをエディタで開きます。まずファイルをバックアップし、既存のPHP配列を閉じる前に、これらのエントリをマージしてください);。ファイル全体を置き換えたり、既に存在するキーのコピーを再度追加したりしないでください。

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

明示的なループバックアドレスは、ローカルのRedisサービスと一致します。代わりにUnixソケットを使用する場合は、ソケットパスをRedisホストとして使用し、デーモンと権限をそれに合わせて設定してください。Redisで認証が必要な場合は、正しいRedis ACLのユーザー名とパスワードをredis配列に追加し、それに応じてRedisを設定してください。共有サンプルや公開サポート投稿に実際のパスワードを貼り付けないでください。

instanceidデータベース認証情報、信頼済みドメイン、データディレクトリなどの既存の設定は変更しないでください。PHP配列の構文は重要です。エントリ間にカンマを入れ、各設定が一度だけ出現するようにしてください。

5. キャッシュとファイルのロックを検証する

インストールディレクトリからWebサービスユーザーとしてNextcloudのコマンドラインステータスチェックを実行してください。インストール場所が異なる場合は、例のパスを置き換えてください。

cd /var/www/nextcloud
sudo -u www-data php occ status

管理設定のWebインターフェースでセットアップ警告を確認し、RedisモジュールとAPCuモジュールがWeb PHPランタイムから認識されていることを確認してください。次に、重要度の低い小さなファイルを使用して、通常のファイル操作(アップロード、名前変更、ダウンロード、削除)をテストします。ローカルキャッシュが正しく構成されていれば、管理ページにメモリキャッシュが見つからないというエラーは表示されなくなります。

成功したPONGとしても、RedisがローカルCLIクライアントに応答していることしか証明できません。Nextcloudの管理者チェックとルーチンファイル操作は、PHP拡張機能、Webサーバーの権限、Redis接続設定、およびアプリケーション構成をまとめて検証するのに役立ちます。1回のテストでページ読み込みが速くなったからといって、パフォーマンスが向上したと断定しないでください。ワークロード、ストレージ、データベース、PHPワーカーの容量など、すべてが応答時間に影響します。

よくある問題のトラブルシューティング

管理ページでは依然としてメモリキャッシュがないと表示されます

重複またはスペルミスのあるキャッシュキーがないか確認し、それがmemcache.localAPCuを指していることを確認した上で、適切なApacheまたはPHP-FPMサービスを再起動してください。CLIのみでインストールされたPHPは、Webサイトで使用されているPHPランタイムとは異なる場合があります。

Redisは実行されていますが、Nextcloudが接続エラーを報告しています

hostとportをconfig.phpのリスナーと比較してください/etc/redis/redis.conf。 でローカルアクセスを確認しredis-cli -h 127.0.0.1 -p 6379 ping、Redis と Web サーバーのログを確認してください。ソケットまたはパスワードを使用している場合は、パスまたは認証情報が両側で一致していることを確認してください。

変更後にファイル操作が失敗する

インスタンスが使用不能になった場合は、バックアップを一時的に復元しconfig.php、PHPとWebサーバーのログを確認してください。配列の句読点を確認し、Redisサービスがアクティブであることを確認し、ファイアウォールやカスタムRedis ACLがWebプロセスをブロックしていないことを確認してください。トラブルシューティングの最初のステップとしてRedisデータをクリアすることは避け、キャッシュやロックエントリを削除する前に、接続と構成を調査してください。

この設定ではカバーできないこと

これはシングルサーバー構成であり、高可用性Redis設計ではありません。Redisレプリケーション、Sentinel、TLS、リモートキャッシュホスト、セッションストレージ、クラスタ化されたNextcloudデプロイメントは構成されません。マルチサーバーのNextcloudノードは、同じ分散キャッシュとロックバックエンドを共有する必要があります。各ノードのlocalhostでは、個別のRedisインスタンスが作成され、この要件を満たせなくなります。リモートまたはクラスタ化されたトポロジの場合は、該当するNextcloud構成セクションに従い、その環境のRedis通信を保護してください。

設定が安定したら、Redisのメモリ使用量とNextcloudの管理画面の概要を監視してください。キャッシュとロックのアクティビティに十分なメモリを割り当て、ロックデータを破棄する可能性のある未検証の削除ポリシーを避け、通常のデータベースとファイルのバックアップを維持してください。Redisのキャッシュはキャッシュとロックのオーバーヘッドを削減できますが、これはNextcloudの健全なインストール環境の一部であり、キャパシティプランニングの代替手段ではありません。

コメントを残す

ノジマオンラインの個人情報漏えい:対象情報と利用者が確認すべき対策

ノジマオンラインの個人情報漏えい:対象情報と利用者が確認すべき対策

ノジマは2026年11月2日、会員管理システムへの不正アクセスと約700万件の情報漏えいを公表。対象サイト、暗号化パスワードとカード情報の違い、サービス休止状況、利用者の対策を11月3日時点で整理します。

ネットワーク上のデバイスを見つけるためのベスト10ピングスキャンツール

ネットワーク上のデバイスを見つけるためのベスト10ピングスキャンツール

迅速なLAN検出、クロスプラットフォームスキャン、IPアドレス管理のための10種類のpingスイープツールを比較します。スイープで何がわかるのか、何がわからないのかを理解しましょう。

パフォーマンス追跡に最適なネットワーク管理ツール6選

パフォーマンス追跡に最適なネットワーク管理ツール6選

SNMP対応範囲、マッピング、アラート、導入モデル、コストのトレードオフなど、パフォーマンス監視のための6つのネットワーク管理ツールを比較します。

Ping Monitor:ネットワーク可用性を確認するための7つの無料オープンソースツール

Ping Monitor:ネットワーク可用性を確認するための7つの無料オープンソースツール

フルネットワークスイートからレイテンシに特化したプローブまで、7つの無料オープンソースpingモニターを比較し、可用性、パケット損失、履歴など、ニーズに最適なものを選びましょう。

Windows、iOS、Android向けのおすすめWi-Fiアナライザー

Windows、iOS、Android向けのおすすめWi-Fiアナライザー

Windows、iPhone、Android向けのWi-Fiアナライザーのおすすめを比較検討しましょう。チャネルの混雑状況、信号カバレッジ、ヒートマップ、ネットワークのトラブルシューティングツールなどが含まれています。

安全なファイル転送のための最適なSFTPサーバーソフトウェア

安全なファイル転送のための最適なSFTPサーバーソフトウェア

WindowsおよびLinux向けの信頼性の高いSFTPサーバーソフトウェア(OpenSSH、Bitvise、SolarWinds、SFTPGoなど)を比較検討しましょう。セキュリティとファイル転送のニーズに最適なソフトウェアを見つけてください。

デバイスとIPアドレスを検出するためのベストネットワークスキャナーツール10選

デバイスとIPアドレスを検出するためのベストネットワークスキャナーツール10選

迅速なデバイス検出、クロスプラットフォームIPスキャン、エンタープライズIPAMを実現するネットワークスキャナーツールを比較し、それぞれのオプションをネットワークに合わせて選択するためのガイダンスを提供します。

ネットワークチーム向けのおすすめIPアドレス管理ツール7選

ネットワークチーム向けのおすすめIPアドレス管理ツール7選

サブネット検出、DNSとDHCPの連携、ネットワークインベントリ、オープンソースIPAMに対応した7つのIPアドレス管理ツールを比較します。

ネットワーク監視のベストプラクティス:追跡すべき項目と使用すべきツール

ネットワーク監視のベストプラクティス:追跡すべき項目と使用すべきツール

明確なデバイスカバレッジ、有用なパフォーマンス指標、実用的なアラート、そしてSolarWinds NPM、PRTG、OpManagerの比較機能を備えた、実用的なネットワーク監視システムを構築します。

デバイス、ホスト、トラフィックを監視するためのLinuxネットワーク監視ツール6選

デバイス、ホスト、トラフィックを監視するためのLinuxネットワーク監視ツール6選

SNMPデバイス検出、インターフェースグラフ、ホストメトリック、サービスチェック、トラフィックフローに関する6つのLinuxネットワーク監視ツールを比較します。