Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する
Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。
求める結果は単に「警告が消えた」ということではありません。適切な修正とは、実際にownCloud 10を動作させているPHPプロセスが少なくとも512MBのメモリ制限を報告し、ownCloud管理画面の警告が解消され、スケジュールされたジョブやCLIジョブも適切な制限を使用し、ホストにはPHP、Webサーバー、データベース、バックグラウンドジョブを重いスワッピングなしで実行できるだけの十分な物理メモリが残っている状態を指します。
ownCloud Classic 10.16 の場合、公式の Docker 環境では、OWNCLOUD_MEMORY_LIMIT=512Mが推奨されるデフォルトとして使用されます。ownCloud のドキュメントでは、Web サーバーで使用される PHP 設定と、で使用される設定を区別していますphp-cli。この区別が、管理者がを変更してサービスを再起動しても、同じ警告が表示されることがある主な理由ですmemory_limit。
このガイドでは、まず影響の少ないチェックから始め、次にApache、PHP-FPM、CLI、Dockerのパスを示します。また、制限をさらに引き上げるべき場合と、PHPの設定自体ではなくホストのRAM不足が本当の問題である場合についても説明します。
| チェック | 良い結果 | 失敗した場合 |
|---|---|---|
| ownCloud管理者概要 | 「PHPメモリ制限が推奨値以下」という警告は表示されません。 | PHPの設定ファイルを誤って編集したか、正しいサービスを再起動しなかった可能性があります。 |
| Web PHP ランタイム | memory_limit512M以上を表示 | Webリクエストで使用されているロード済み設定ファイルを見つけてください。 |
| CLI / cron ランタイム | php -r 'echo ini_get("memory_limit");'意図した値を示します | CLI固有の設定php.iniも編集してください。 |
| ホストメモリ | 十分なRAM容量があり、スワップ負荷はほとんど、あるいは全くない。 | PHPの制限値をむやみに増やし続けないでください。PHPワーカー数やホストのサイジングを見直してください。 |
| ログ | 「許可されたメモリサイズが超過しました」というエラーは繰り返し発生しません。 | メモリ制限を再度引き上げる前に、メモリを消費しているワークロードを特定してください。 |

ownCloudの管理設定を開き、メモリ制限の警告を確認してください。変更を加える前に、ownCloudのバージョン、PHPのバージョン、Webサーバーの種類、および現在のメモリ制限を記録しておきましょう。これにより基準値が得られ、複数のPHPバージョンがインストールされているシステムで誤ったPHPインストールを変更してしまうことを防ぐことができます。
ownCloudの最新版10.16のドキュメントによると、サーバー要件はユーザー数、ファイル数、アクティビティに大きく依存するとのことです。Dockerの設定ではOWNCLOUD_MEMORY_LIMIT=512M、このデフォルト値を維持することを推奨しています。そのため、512MBは警告を解決するための妥当な基準値であり、すべてのワークロードが512MB以内に収まることを保証するものではありません。
公式資料:ownCloudの導入に関する推奨事項およびownCloudのDocker環境変数。

php --iniPHP CLI の設定を報告します。これは、ownCloud を配信するために Apache または PHP-FPM が使用する PHP 設定とは異なる場合があります。以下のコマンドを実行して、コマンドラインPHPプロセスが何を使用しているかを確認してください。
php --ini
php -r 'echo ini_get("memory_limit"), PHP_EOL;'
これはcronジョブには便利ですoccが、Webリクエストが何を使用しているかの証明にはなりません。ownCloudは、次のような個別の設定パスを明示的に文書化しています。
/etc/php/<version>/apache2/php.ini
/etc/php/<version>/fpm/php.ini
/etc/php/<version>/cli/php.ini
CLI で 512M と表示されているのに管理ページでエラーが表示される場合は、その不一致は Web サーバーが別のファイルを読み込んでいる強い兆候ですphp.ini。
ownCloudのPHP設定に関する注意事項を参照してください。そこには、PHPの設定を複数のINIファイルで変更する必要がある場合があることが具体的に警告されています。

最も信頼性の高いテスト方法は、ownCloudを配信しているのと同じWebスタックからPHPを検査することです。ownCloudのドキュメントでは、一時phpinfo.phpページを使用する方法が説明されています。
<?php phpinfo(); ?>
一時的にウェブルートに配置し、ブラウザで開いて、次の場所を探してください。
その後、phpinfoファイルを直ちに削除してください。ownCloudは、phpinfoページを公開したままにしておくと、機密性の高いサーバー情報が漏洩する可能性があると警告しています。
ブラウザ/etc/php/7.4/fpm/php.iniに と表示され、 とphp --ini表示される場合/etc/php/7.4/cli/php.ini、CLI ファイルを編集しても警告が解消されなかった理由が正確にわかります。

php.iniPHP-FPMを使用するNginxまたはApacheの設定では、 CLIファイルだけでなく、FPMまたは該当するプール/サイトのオーバーライドも変更する必要があります。一般的なDebianまたはUbuntuのインストール環境では:
sudo nano /etc/php/7.4/fpm/php.ini
探す:
memory_limit = 128M
そして、次のように変更します。
memory_limit = 512M
パスには、インストールされているPHPのバージョンを指定してください。その後、必要に応じて適切なFPMサービスとWebサーバーを再起動してください。
sudo systemctl restart php7.4-fpm
sudo systemctl reload nginx
Apacheproxy_fcgiまたは別のFPM設定の場合は、PHP-FPMを再起動してからApacheをリロードしてください。
ownCloud は、PHP-FPM が から PHP 設定を利用しないことも指摘しています.htaccess。FPM でディレクトリごとの上書きに依存している場合は、適切なphp.ini、プール構成、または など、環境に合わせてサポートされている PHP/FPM 構成メカニズムを使用してください.user.ini。

ApacheがPHPをモジュールとして直接ロードする場合は、Apache固有のファイルを編集してください。
sudo nano /etc/php/7.4/apache2/php.ini
セット:
memory_limit = 512M
次にApacheを再起動します。
sudo systemctl restart apache2
バージョン番号を機械的にコピーしないでください。Apache によって実際にロードされたバージョンを確認してください。複数の PHP リリースにわたってアップグレードされたシステムでは、多くの場合、. の下に複数のディレクトリが保持されます/etc/php/。
結果判定基準はシンプルです。再起動後、Webブラウザに公開されているPHPランタイムに新しい値が表示される必要があります。もし128Mのまま表示される場合は、別の設定レイヤーがあなたの編集内容を上書きしていることになります。
管理画面の警告はウェブランタイムによって表示されますが、occcronジョブはPHP CLIを使用します。ownCloudのドキュメントにもこの点が明記されています。
編集:
sudo nano /etc/php/7.4/cli/php.ini
セット:
memory_limit = 512M
次に、以下を確認します。
php -r 'echo ini_get("memory_limit"), PHP_EOL;'
CLI PHP の場合、サービスを再起動しなくても問題ありません。CLI の呼び出しごとに新しいプロセスが起動するためです。ただし、cron ジョブが明示的に別の PHP バイナリを呼び出す場合は、/usr/bin/php使用されているバイナリが正しいと仮定するのではなく、そのバイナリが正確に呼び出されていることを確認してください。
ownCloudは、通常Debian/Ubuntu上でoccHTTPユーザーとして実行することを推奨しています。また、公式のoccドキュメントでは、複数のPHPバージョンがインストールされている場合は、Webサーバーと同じPHPバージョンを使用する必要があると警告しています。www-dataocc

OWNCLOUD_MEMORY_LIMIT=512Mコンテナ環境内で設定を行い、サービスを再作成して、生成されたPHP構成を更新してください。公式のownCloud Dockerイメージの場合は、ドキュメントに記載されている環境変数を使用してください。
environment:
OWNCLOUD_MEMORY_LIMIT: 512M
次に、サービスを再作成します。
docker compose up -d
一時的なコンテナ内で編集して根本的な修正を行わないでくださいphp.ini。コンテナを再作成すると、これらの変更が破棄される可能性があります。ownCloudの公式Docker環境ドキュメントではOWNCLOUD_MEMORY_LIMIT=512M、このデフォルト設定を維持することを推奨しています。
Dockerホスト自体に厳しいメモリ制限がある場合は、コンテナの制約も確認してください。
docker stats
PHPのメモリ制限を512MBに設定しても、コンテナに自動的に512MBの空きメモリが確保されるわけではありません。これは、個々のPHPリクエストが消費できるメモリ量を512MBまでに制限するだけです。コンテナとホストは、同時に実行されるすべてのPHPワーカーやその他のサービスのために、十分なメモリを必要とします。

該当サービスを再起動した後、一時的なphpinfoページまたはownCloud管理画面の概要を再度確認してください。その後、phpinfoページを削除してください。
PHP-FPMを変更した場合は、以下を確認してください。
sudo systemctl status php7.4-fpm
sudo systemctl status nginx
Apacheを変更した場合:
sudo systemctl status apache2
ownCloudの管理ページを更新してください。ownCloudが想定される制限値以上で実行されていれば、警告は消えているはずです。

走る:
free -h
ps aux | grep php-fpm
vmstat 1
PHPのmemory_limitメモリ使用量の上限はスクリプトごとに設定されています。これは予約メモリではなく、サーバーが必要とするRAM容量とも異なります。PHPワーカーが20個あり、すべてのリクエストに非常に大きなメモリ使用量を許可した場合、理論上の最悪のケースでは、マシンのRAM容量を大幅に超過する可能性があります。
ownCloudのチューニングに関するドキュメントでは、Webサーバープロセスに関して同様の一般的な警告が示されています。プロセス数を調整して、メモリ使用量の合計が利用可能なRAMを下回るようにしてください。そうしないと、システムがスワップを開始し、パフォーマンスが低下します。ownCloud Classicのチューニングガイドを参照してください。
512Mの警告が解消され、通常の運用が正常であれば、単に数値を大きくするためだけに制限を引き上げる理由はありません。
推奨事項の警告がクリアされた場合と、メモリ不足によるクラッシュは別の問題です。ログに次のようなメッセージが含まれている場合:
PHP Fatal error: Allowed memory size of ... bytes exhausted
それを引き起こす操作を特定してください。大規模なスキャン、暗号化処理、外部ストレージ操作、画像処理、またはサードパーティ製アプリは、それぞれ大きく異なるメモリプロファイルを持つ可能性があります。
ownCloudのログとPHP/Webサーバーのエラーログを確認してください。標準的なownCloudのインストールでは、設定済みのデータディレクトリ(通常は)に独自のログが書き込まれますdata/owncloud.log。「1Gに増やす」という操作を、自動的に次のステップとして扱うのは避けてください。まず、同じ操作が繰り返し上限に達するかどうかを確認してください。
特定の管理ジョブが正当な理由でより多くのメモリを必要とする場合、すべてのWebリクエストにグローバルに大きな制限値を設定するよりも、対象を絞ったCLIオーバーライドの方が安全な場合があります。
php -d memory_limit=1G occ <command>
コマンドとメモリの動作を理解している場合にのみ使用してください。PHP-FPMまたはApacheを経由するWebリクエストを修正するものではありません。
| 症状 | 考えられる原因 | 次のチェック |
|---|---|---|
php -r512Mと表示されるが、ownCloudは依然として128Mと表示 | CLI PHPのみを変更しました | ブラウザのphpinfoと読み込まれた設定ファイルを確認してください。 |
| FPMファイルには512Mと記載されているが、ブラウザには128Mと表示される。 | Pool、.user.iniまたは別のINIファイルがそれを上書きします | phpinfoの「local」と「master」の値、および解析された追加のINIファイルを調べます。 |
| 値は再起動後にのみ変更されます | 正しいサービスが再起動されませんでした | 編集後、PHP-FPMまたはApacheを明示的に再起動してください。 |
| 再作成後、Dockerの値が古い設定に戻ります。 | コンテナ内で編集しました | OWNCLOUD_MEMORY_LIMITComposeまたはデプロイ環境で設定します。 |
| 警告は消えるが、サーバーはスワップを開始する | PHPの同時実行数がホストメモリを超えています。 | 従業員数を削減するか、ワークロードを最適化するか、またはRAMを増設する。 |
memory_limit、、upload_max_filesizeそしてpost_max_sizeさまざまな問題を解決します。PHP メモリを増やしても、ユーザーがより大きなファイルをアップロードできるようになるわけではありません。ownCloud の 10.16 設定ノートには、ドキュメントにpost_max_size記載されている最小値として を少なくとも 512 MB に設定する必要があることが別途記載されており、アップロード制限には独自の設定が必要であることが説明されています。
実際の症状が「大容量ファイルのアップロードが失敗する」である場合は、プロキシ/Webサーバーのボディサイズ制限、タイムアウト、および一時ディスク容量を確認してくださいupload_max_filesize。これらの制御の代わりに、post_max_sizeより高い値を使用しないでください。memory_limit
memory_limit少なくともに設定してください512M。occがより低い制限値を使用している場合も同様です。OWNCLOUD_MEMORY_LIMIT=512Mデプロイ環境で設定してください。ownCloud 10 で「PHP メモリ制限が推奨値以下」というエラーが発生する場合の確実な解決策は、ownCloud を実際に動作させている PHP ランタイムで 512 MB 以上のメモリ制限を設定し、同じランタイムでその結果を確認することです。最もよくあるエラーは、/etc/php/.../cli/php.iniownCloud が PHP-FPM または Apache を介して実行されている状態で、異なる設定ファイルを編集した場合に発生します。
警告が消え、ルーチン操作が正常に動作し、ホストに十分なメモリ余裕がある場合は、処理を停止してください。特定の操作中にPHPが依然として512MBを使い果たす場合は、「制限値を増やす」のではなく、ワークロード診断に切り替えてください。つまり、失敗しているコマンド、アプリケーション、ログ、同時実行数、および物理RAMを検査してください。より大きな制限値を設定することが適切な場合もありますが、それはワークロードがそれを正当化し、サーバーが安全にサポートできる場合に限ります。
Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。
Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。
応答しないLDAPサーバーが原因で発生するZimbraの起動失敗を診断および修正する方法を学びましょう。これには、サービスチェック、DNS、ポート、証明書、LDAP URL、および復旧検証が含まれます。
ownCloud Infinite Scale向けに、s3ngドライバ、POSIXメタデータ、バケットポリシー、検証、および安全な本番環境チェックを使用して、S3互換のオブジェクトストレージを設定します。
Zimbra Postfixのバックログを検査する方法、延期されたメールと保留されたメールを識別する方法、安全なキューフラッシュを実行する方法、メッセージを削除せずに進捗状況を確認する方法を学びましょう。
Z-PushをKopanoと連携させて、ActiveSyncによるメール、連絡先、カレンダー、タスクの安全な同期を設定しましょう。バックエンドと展開方法を比較検討し、モバイル端末の設定を確認してください。
Jitsi Meetの接続切断に関するトラブルシューティングを、ブラウザ、モバイルデバイス、不安定なネットワーク、ファイアウォール、およびセルフホスト型サーバー向けの実用的なチェックリストで解説します。
Nextcloud Talkの通話品質のトラブルシューティング、coturnの設定、適切なポートの開放、ICE候補のテスト、TURNまたはHPBのどちらが適切な解決策であるかの判断を行います。
カスタムホームサーバー、HTTPS、キャッシュ、セキュリティヘッダーに加え、一般的なセットアップ上の問題に対する簡単なチェック機能を備えたElement WebをNginxにデプロイします。
BigBlueButtonの「サポートされていないファイル形式」表示エラーを修正するには、ファイル拡張子を確認し、実際のPDFをエクスポートし、別のファイルをテストし、管理者に連絡すべきタイミングを特定してください。