NextcloudのPHPメモリ制限警告を修正する

NextcloudのPHPメモリ制限警告を解消するには、 Webサーバーで使用されているPHP設定でメモリをmemory_limit少なくとも512MBに設定し512M、関連するPHPサービスを再起動またはリロードしてください。Nextcloudの現在の安定版管理マニュアルでは、このPHP設定に少なくとも512MBを推奨しています。ファイルを編集した後も警告が残る最も一般的な理由は、WebサーバーがコマンドラインPHPインストールとは異なるPHP設定を使用しているためです。

デプロイメントに合った手順を選択してください。Apacheとmod_php、ApacheまたはNginxとPHP-FPM、コンテナ、または管理対象のNextcloudパッケージphp.iniから選択できます。ホストのランダムな設定を編集して、すべてのデプロイメントでそれが使用されると想定しないでください。Webアプリケーションの設定が反映されているNextcloudの管理画面の概要ページで結果を確認してください。

その警告は何を意味するのですか?

PHP の ` memory_limit-

PHPの制限値を引き上げることで、設定に関する警告を解消し、メモリを大量に消費するリクエストに余裕を持たせることができます。ただし、容量不足のホストにRAMを追加したり、メモリリークを修復したり、すべてのアプリケーションが正常に完了することを保証したりすることはできません。サーバーが既にメモリ不足の状態にある場合、リクエストごとの上限値を引き上げると、同時実行されるPHPワーカーがシステムRAMを使い果たしてしまうリスクが高まる可能性があります。

どのPHP設定を編集すればよいですか?

まず、PHP が Nextcloud をどのように実行しているかを確認します。ターミナルでphp --iniコマンドを実行すると、コマンドラインインターフェース (CLI) の設定が表示されます。Nextcloud の Web リクエストは、別の Apache モジュールまたは PHP-FPM サービスを使用し、php.ini別の設定ファイルやプールオーバーライドを使用する場合があります。Nextcloud は、Web と CLI の PHP で異なる設定ファイルを使用する可能性があることを特に明記しています。

Debian系システムにおける一般的な配置場所としては、/etc/php/8.x/apache2/php.iniApacheのPHPモジュール用と/etc/php/8.x/fpm/php.iniPHP-FPM用があります。実際のPHPバージョンとディレクトリ名は異なります。他のディストリビューションでは、共有パスなど、異なるパスが使用されることがよくあります/etc/php.ini。これらはあくまで例であり、パッケージマネージャ、サービス設定、PHPランタイムを使用して、アクティブなファイルを見つけてください。

CLIの設定を確認するには、以下を実行します。

php --ini
php -i | grep -i '^memory_limit'

これらのコマンドは、コマンドラインからPHPを呼び出すスケジュール済みジョブには便利ですが、ブラウザ側のNextcloudプロセスが同じ値を使用していることを証明するものではありません。phpinfo()サーバー上に公開ページを残さないようにしてください。パス、モジュール、実行時の詳細が漏洩する可能性があります。

ApacheまたはPHP-FPMの制限を設定するにはどうすればよいですか?

変更する前に、アクティブな構成ファイルをバックアップしてください。正しいファイルでphp.ini、既存の行を見つけて、それをまたはワークロードに合わせて選択したより高い値memory_limitに設定します。512M

memory_limit = 512M

複数のファイルの末尾に重複した行を追加するのではなく、1つのアクティブな設定を使用してください。PHP-FPM プールはワーカーの値を定義することもできるため、値が反映されphp.iniない場合はプール構成を確認してください。一部の PHP デプロイメントではディレクトリごとの設定がサポートされています.user.ini。これがアクティブかどうかはサーバー構成によって異なるため、管理者に確認してください。

mod_php を使用する Apache

Apacheで使用されるファイルを編集してphp.ini保存し、Apacheを再起動してモジュールの設定を再読み込みします。サービス名はシステムによって異なります。DebianまたはUbuntuでは、サービスは一般的に です。RHELapache2系システムでは、サービスは一般的に ですhttpd。ご使用のオペレーティングシステムとメンテナンス手順に合わせてサービス名を使用してください。

sudo systemctl restart apache2

ディストリビューションで異なるユニット名を使用している場合は、置き換えてくださいapache2。Nextcloudがmod_phpではなくPHP-FPM経由で提供されている場合、Apacheを再起動するだけではPHPワーカーは再ロードされません。

PHP-FPMを使用したApacheまたはNginx

サイトで実際に使用されている PHP-FPM の設定を編集します。変更を保存したら、該当する PHP-FPM サービスを再起動またはリロードします。ユニットには、たとえば PHP のバージョンが含まれる場合もあればphp8.3-fpm、ベンダー固有の別の名前が使用される場合もあります。

sudo systemctl restart php8.3-fpm

インストールされている PHP バージョンに合った正しいサービス名を使用してください。Nginx は PHP リクエストを FPM に渡すため、PHP の設定を変更する場合は通常、FPM にも変更を適用する必要があります。Nginx を再起動しても PHP のメモリ制限は再読み込みされません。PHP-FPM プール構成で上書きされている場合はmemory_limit、プール設定を調整するか、上書きを削除してからプールを再起動してください。

NextcloudがDocker、AIO、Snap、または別のパッケージで動作している場合はどうでしょうか?

そのインストール方法に適した設定メカニズムを使用してください。ホストの PHP ファイルを編集しても、コンテナ内または隔離されたパッケージ内の PHP ランタイムは通常変更されません。公式の Nextcloud Docker イメージにはPHP_MEMORY_LIMIT環境変数が記載されており、現在のイメージのドキュメントではデフォルト値が512M設定されています。Compose ファイルまたはコンテナ構成でこの環境変数を設定し、デプロイメントの手順に従ってアプリケーション コンテナを再作成または再起動してください。

environment:
  PHP_MEMORY_LIMIT: 512M

その設定をすべてのインストールタイプにコピーしないでください。Nextcloudのマニュアルには、AIO、Snap、NCP、Community Dockerなどのターンキー環境にはPHPが事前設定済みであり、カスタマイズについてはパッケージ固有の手順を参照するように管理者に指示されています。これらの環境では、そのパッケージでサポートされているインターフェースまたはドキュメントを使用してください。永続ボリュームのマウントや生成された構成によって、一度限りの手動編集が上書きされる場合もあります。

警告が修正されたことをどのように確認できますか?

  1. 変更内容をWeb向けPHP設定に適用し、関連するWeb/PHPサービスを再起動またはリロードしてください。
  2. 管理者として Nextcloud にサインインし、[設定] > [管理] > [概要]を開きます。
  3. ページを更新して、設定に関する警告を確認してください。PHPのメモリ制限に関する警告が消えていることを確認してください。
  4. 以前に警告が発生した際に使用した代表的な操作(影響を受けたアプリタスクなど)を実行し、NextcloudとPHPのログを確認してメモリ不足のメッセージを探してください。

システムcron経由でNextcloudのバックグラウンドジョブも実行している場合は、CLIのPHP設定を別途確認してください。CLIジョブがまだ低い制限値を使用している状態でも、Webに公開されている警告は解消できます。cronコマンドで使用されているのphp --iniとphp -i同じPHPバイナリに対して、CLIの値を確認してください。

値を512M以上に引き上げるべきタイミングはいつですか?

警告が消えたにもかかわらず、ドキュメント化されたワークロードがまだ PHP の制限に達している場合、またはアプリのサポートガイダンスでより多くのメモリが要求されている場合にのみ、この値を上げてください。まず、実際のサーバーメモリ、PHP-FPM ワーカー数、データベースメモリ、およびその他のサービスを確認してください。PHP はスクリプトごとに制限を適用するため、複数のビジーワーカーが同時に大量のメモリを使用する可能性があります。PHP-1のドキュメントではメモリ制限がないとされている を使用する代わりに、ホストのメモリ予算に合った測定された制限を設定してください。

警告が消えてもサーバーの速度が低下したり、プロセスが強制終了される場合は、システムメモリとスワップの使用状況、PHP-FPM ログ、および Nextcloud ログを確認してください。特定のアプリケーションまたはリクエストが過剰なメモリを消費していないか確認してください。APCu や Redis などのメモリ キャッシュは、キャッシュとパフォーマンスの問題に対処するものであり、PHP の設定の代替となるものではありませんmemory_limit。結果が改善されたかどうかを確認できるように、一度に 1 つの要素を変更してください。

症状別クイックチェック

  • php.iniを編集した後も警告が表示される場合は、 Apache/FPMのファイルではなくCLIファイルを編集したか、プール設定によって上書きされていないかを確認してください。
  • 警告は解消されるが、cronタスクは依然として失敗する。CLI PHPバイナリとその個別の設定を確認してください。
  • ウェブサーバーが再起動後にエラーを返す場合:ウェブサーバーまたはPHP-FPMサービスのステータスとログを確認し、設定変更が原因で起動に失敗した場合はバックアップを復元してください。
  • 警告は解消されますが、ホストのRAMが不足します。PHPの制限をさらに引き上げる前に、同時実行数を減らすか、メモリを追加するか、メモリを使用しているプロセスを特定してください。
  • コンテナまたはターンキーパッケージを使用する場合は、ホストのphp.iniではなく、パッケージでサポートされているPHP設定を変更してください。

公式資料

コメントを残す

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrixボットを構築し、認証とデプロイのオプションを比較し、コマンドをテストし、代わりにmatrix-nioを使用すべき場合を理解します。

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

DNS、ファイアウォールルール、公式リポジトリ、Let's Encrypt SSL、サービスチェック、NATトラブルシューティングを含むJitsi MeetをUbuntu 24.04にインストールします。

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloud Desktopの同期証明書エラーを修正するには、サーバーURL、証明書名と証明書チェーン、システムクロック、クライアントバージョン、および信頼済みCAストアを確認してください。

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

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

PhpRedis、APCu、ループバック専用のRedisサービス、および実践的な検証手順を使用して、Ubuntu 24.04上でNextcloud向けにRedisファイルロックと分散キャッシュを設定します。

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

デバイス認証、キーのバックアップ、リカバリキー、および紛失したルームキーを確認することで、メッセージ履歴を損なうことなく、Element Webの復号化エラーをトラブルシューティングします。

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudの2要素認証プロバイダーを有効にする方法、ユーザーまたはグループに対して2要素認証を強制する方法、復旧を準備する方法、ログインとクライアントアプリを検証する方法を学びましょう。

ZimbraでIPアドレスによる送信メールリレーを制限する方法

ZimbraでIPアドレスによる送信メールリレーを制限する方法

zimbraMtaMyNetworks を使用すると、Zimbra で認証されていない送信メールのリレーを信頼できる IP アドレスに制限できます。許可リストを安全に検査、更新、再読み込み、検証する方法を学びましょう。

NextcloudのPHPメモリ制限警告を修正する

NextcloudのPHPメモリ制限警告を修正する

Nextcloud の PHP メモリ制限を少なくとも 512M に設定し、適切な Web PHP 設定を見つけて、Apache または PHP-FPM を再起動し、警告が解消されたことを確認してください。

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

CoturnをSynapseと連携させて、Matrix WebRTC通話を設定します。共有認証情報、NAT、ファイアウォールポート、TLSオプションを設定し、従来のTURNとMatrixRTCおよびLiveKitを区別します。

NextcloudメールアプリをOAuth2認証で設定する方法

NextcloudメールアプリをOAuth2認証で設定する方法

Nextcloud MailをGmailまたはMicrosoft 365向けにOAuth2で設定し、IMAP/SMTPアクセスを確認し、リダイレクトの問題をトラブルシューティングし、制限事項を把握します。