OCCを使用してNextcloudのメンテナンスモードが解除されない問題を修正する

Nextcloudのアップデートが完了しても、メンテナンスページが表示されたままになっている場合や、アップグレードが中断されてサイトが復旧しない場合は、OCCコマンドでメンテナンスモードを無効にする必要があります。このコマンドは短いですが、アップグレードの状態を確認する前に実行すると、インストールが完了していないことが露呈する可能性があります。まずは、管理しているNextcloudインスタンスを確認し、データベースのアップグレードが必要かどうかを確認してください。

具体例: Ubuntu上でNextcloudを実行している小規模オフィスを想像してみてください。新しいコードファイルがデプロイされた後、予定されていたアップデートが中断され、Webページにはまだサーバーがメンテナンスモードであると表示されています。この例は架空のものであり、実際のインシデントやテストの報告ではなく、以下のチェックを適用するためのスレッドです。

メンテナンスモードとはどういう意味ですか?

Nextcloudのメンテナンスモードでは、管理者がアップグレードやバックアップなどの作業を行っている間、通常のユーザーアクセスがブロックされます。これはサーバー全体に適用される状態であるため、Webサーバー自体は稼働している場合でも、ユーザーにメンテナンス通知が表示されることがあります。Nextcloudの最新の管理マニュアルには、このモードを有効または無効にするためのOCCコマンドが記載されており、モードを無効にした後はブラウザを更新する必要がある場合があることも明記されています。

例として挙げたオフィス環境では、メンテナンスページだけでは管理者はアップグレードが完了したかどうかを確認できません。モードを変更する前に、Nextcloud自体に問い合わせる必要があります。

ステップ1:インストールタイプとOCCパスを確認します

ここでのコマンド例は、Ubuntu 上の従来のアーカイブベースの Nextcloud インストール用で、コードは にあり/var/www/nextcloud、Web サーバー アカウント名は ですwww-data。Nextcloud のドキュメントには、occはインストール ディレクトリにあり、HTTP ユーザーとして実行する必要があると記載されています。Debian および Ubuntu では、通常そのユーザーは ですwww-data。

この標準レイアウトの場合、インストールディレクトリを入力してください。

cd /var/www/nextcloud

Nextcloud ファイルが別の場所に保存されている場合は、その実際のパスを使用してください。Snap、Docker、アプライアンス、マネージド ホスティングでは、コマンド ラッパーやファイルシステム レイアウトが異なります。コンテナ インストールに対してホスト コマンドを実行したり、アーカイブ パスがこれらのデプロイメントに適用されると判断したりしないでください。公式のNextcloud アップグレード ガイドに記載されているインストール方法に応じた更新手順に従ってください。

オフィスの例では、管理者はOCCを実行する前に、展開に関する注意事項を確認し、これがアーカイブインストールであることを確認します。

ステップ2:メンテナンスを無効にする前にNextcloudの状態を確認する

OCCをウェブサーバーアカウントとして実行することで、ファイルと設定の所有権が本来の所有者に保持されます。

sudo -E -u www-data php occ status

maintenanceとフィールドを確認してくださいneedsDbUpgrade。現在のバージョンでは、ステータス終了コードもサポートされています。

sudo -E -u www-data php occ status -e
echo $?

ドキュメントに記載されている終了コードは、スクリプトで出力を確認する際に役立ちます。は0正常動作、1はメンテナンスモードが有効、 は必須である2ことを示しますocc upgrade。通常のステータス出力も確認する必要があります。サイトを再開するかどうかの判断に終了コードだけを使用しないでください。

仮のオフィスサーバーの場合、needsDbUpgradeが真であるか、status -eが返される場合2、適切な次のステップは、単にメンテナンスモードをオフにするのではなく、アップグレードを完了することです。

ステップ3:まず未完了のアップグレードを完了する

Nextcloudのコードアップグレードが意図的に展開され、OCCがデータベースのアップグレードが必要だと報告した場合は、作業を進める前に、データベース、構成、およびデータの最新のバックアップを取得または確認してください。その後、インストールディレクトリからドキュメントに記載されているコマンドを実行してください。

sudo -E -u www-data php occ upgrade

コマンドの出力を読み、完了するまで待ちます。移行の実行中はウェブページは変更されないため、中断しないでください。組み込みの更新ツールは、コードの置換またはocc upgrade失敗時にメンテナンスモードを有効のままにする場合があります。更新ツール自体がコードの置換を完了しなかった場合は、ログを確認し、インストールに適した更新プロセスを再開してください。直接 にスキップしないでくださいmaintenance:mode --off。Nextcloud の組み込み更新ツールの手順では、更新フェーズについて説明し、更新ツールのログを診断リソースとして示しています。

この例では、データベース移行が保留中で、想定される新しいコードが既に適用されていることを示すステータスが表示されている場合にのみ、オフィス管理者はコマンドを実行しますocc upgrade。コマンドがエラーを報告した場合は、サーバーを利用できない状態にして、まずそのエラーを調査します。

ステップ4:OCCでメンテナンスモードをオフにする

アップグレードが完了し、ステータスにデータベースのアップグレードが必要であるという表示がなくなったら、Nextcloud の組み込みコマンドを使用してメンテナンスモードを無効にします。

sudo -E -u www-data php occ maintenance:mode --off

コマンドが正常に実行されると、メンテナンスモードが無効になったことが報告されます。これは、標準インストールのモードを変更するサポートされている方法です。また、手動での編集に頼るのではなく、Nextcloud 独自のコマンド インターフェイス内で状態変更が行われますconfig.php。

例として挙げたオフィス管理者は、移行が完了した後にのみこのコマンドを実行します。アップグレードが進行中ではなく、インストールが準備完了状態であった場合、同じコマンドで計画メンテナンス後に残されたメンテナンスフラグを解除できます。

ステップ5:状態とWebインターフェースを確認する

ステータスを再度確認してください。

sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e

インストールが正常に完了した場合は、maintenance: false、needsDbUpgrade: false、および通常の終了コード が返されます0。次に、新しいプライベート ブラウザ ウィンドウでサイトを開き、管理者アカウントでサインインします。セッションがまだブロックされていると判断する前に、通常のユーザーの 1 人にブラウザを更新するように依頼してください。

この例示シナリオでは、成功とは、OCCステータスとWebページの両方でインスタンスがオンラインに戻ったと表示されることを意味します。この架空の例は、実際にコマンドが実行されたことや、実際のサーバーが修復されたことを主張するものではありません。

メンテナンスページが残っている場合

OCCはメンテナンスが虚偽であると述べている

OCC を実行した対象が、URL を提供しているインストール環境と同一であることを確認してください。これは、ロードバランシングされたデプロイメント、複数のコンテナを持つ Docker ホスト、または古い Nextcloud ディレクトリと新しい Nextcloud ディレクトリが共存するサーバーにおいて重要です。実際のドキュメント ルートまたはコンテナ パスを確認し、影響を受ける URL の背後にあるインスタンスにクエリを実行してください。各 Web ノードが独自の構成を持っている場合は、すべてのノードが意図した構成とデータベースを共有していることを確認してください。

正しいインスタンスがメンテナンス無効を報告した場合、サーバーのオリジンからのページと公開URLを比較してください。リバースプロキシまたはキャッシュが古い応答を返している可能性があります。メンテナンスページを返したレイヤーを確認した後でのみ、そのキャッシュをクリアまたはバイパスしてください。

OCC は実行できないか、PHP エラーを返します

コマンドが、Web インストールと互換性のある PHP CLI バージョンと必要な拡張機能を使用していることを確認してください。Nextcloud は、CLI PHP では APCu がデフォルトで無効になっており、APCu がローカル キャッシュとして構成されている場合に OCC エラーが発生する可能性があると指摘しています。マニュアルには、apc.enable_cliCLI PHP 構成で有効にする方法、または--define apc.enable_cli=1必要に応じて PHP コマンドに以下を追加する方法が記載されています。

sudo -E -u www-data php --define apc.enable_cli=1 occ status

この方法は、エラーがAPCu CLIの問題を示している場合にのみ使用してください。すべてのPHPエラーに対する一般的な解決策ではありません。また、コマンドが正しいWebユーザーとして、正しいインストールディレクトリから実行されていることを確認してください。

データベースのアップグレードはまだ必要です

このステータスを隠すために、メンテナンスフラグを強制的にオフにしないでください。アップデーターの出力とログを再確認し、正しい Nextcloud コードリリースがインストールされていることを確認してから、インストールタイプに応じたサポートされているアップグレード手順を完了してください。公式のOCC システムおよびメンテナンスコマンドのリファレンスドキュメントmaintenance:mode、statusおよびコマンドラインアップグレードを参照してください。

メンテナンス期間を適切に管理する

メンテナンスモードを無効にすると、ユーザーはインスタンスに再びアクセスできるようになります。そのため、まずデータベースのアップグレードと必要なコード置換が完了していることを確認してください。最初の対応として、アップデーターファイルを手動で削除したり、構成ファイル内のメンテナンス設定を編集したりすることは避けてください。そうすると、メンテナンスモードを引き起こした作業を完了せずに症状を隠してしまう可能性があります。

想定されるオフィス環境における安全な判断は単純明快です。まず、インストールが正しく行われていることを確認し、ステータスを検査し、必要なアップグレードをすべて完了させた後、maintenance:mode --offOCCとブラウザの両方を実行して検証します。アップグレードが正常に完了しない場合は、メンテナンスモードをオンにしたまま、アップデーターログまたはインストール固有の復旧手順に従ってトラブルシューティングを行ってください。

コメントを残す

OCCを使用してNextcloudのメンテナンスモードが解除されない問題を修正する

OCCを使用してNextcloudのメンテナンスモードが解除されない問題を修正する

OCCを使用して、停止したNextcloudメンテナンスページを安全にクリアし、アップグレードが完了していないかどうかを確認し、インスタンスがユーザーを受け入れる準備ができていることを確認します。

Zimbraの送信メール遅延を修正:「接続タイムアウト ポート25」

Zimbraの送信メール遅延を修正:「接続タイムアウト ポート25」

ポート25におけるZimbra送信メールの遅延エラーを診断します。キュー、MX DNS、ファイアウォール、プロバイダブロックを確認し、承認済みのSMTPリレーを設定してください。

Raspberry Pi 4 に Conduit を使用して Matrix サーバーをセットアップする方法

Raspberry Pi 4 に Conduit を使用して Matrix サーバーをセットアップする方法

Raspberry Pi 4上に、Conduit、Docker、NGINX、HTTPS、登録制御、フェデレーション、およびチェック機能を備えた軽量なMatrixホームサーバーをセットアップします。

スケーラブルなマルチサーバー構成向けにJitsi Videobridgeを設定する方法

スケーラブルなマルチサーバー構成向けにJitsi Videobridgeを設定する方法

共有の Jitsi Meet 環境に Jitsi Videobridge サーバーを追加し、登録とファイアウォール アクセスを設定し、ブリッジの選択を確認し、Octo が必要となるタイミングを把握します。

Zimbraサーバーに商用SSL証明書をインストールする方法

Zimbraサーバーに商用SSL証明書をインストールする方法

Zimbraに商用SSL証明書を安全にインストールするには、CSRを作成し、CAチェーンを構築し、鍵と証明書を検証し、展開し、サービスを再起動し、HTTPSを確認します。

BigBlueButtonのインターフェースとロゴをカスタマイズする方法

BigBlueButtonのインターフェースとロゴをカスタマイズする方法

BigBlueButtonのデフォルトロゴを変更したり、個々の会議にロゴを追加したり、より広範なインターフェースブランディングにカスタムクライアント構築が必要な場合を理解したりします。

How to Clear Zimbra Audit Logs to Free Up Disk Space Safely

How to Clear Zimbra Audit Logs to Free Up Disk Space Safely

Learn how to identify, archive, compress, and remove old Zimbra audit logs, when to avoid truncating audit.log, and how to verify that disk space and logging recover correctly.

Kopano Dagentの「ストレージサーバーへの接続に失敗しました」エラーを修正する

Kopano Dagentの「ストレージサーバーへの接続に失敗しました」エラーを修正する

Kopano dagentストレージサーバーへの接続障害のトラブルシューティングを行うには、サーバーの状態、server_socket、Unixソケットの権限、リモートリスナー、および制御された配信テストを確認します。

ownCloudのファイルロック「ロックメカニズムタイムアウト」エラーを修正する方法

ownCloudのファイルロック「ロックメカニズムタイムアウト」エラーを修正する方法

トランザクションロックを特定し、ロックストレージをRedisに移動し、クラスタをチェックし、安全に再テストすることで、ownCloudのファイルロックタイムアウトエラーを修正します。

How to Fix Matrix Synapse Running Out of Memory During Sync

How to Fix Matrix Synapse Running Out of Memory During Sync

Troubleshoot Matrix Synapse OOM problems during /sync by checking memory pressure, tuning caches carefully, isolating initial sync, and monitoring workers.