OCCを使用してNextcloudのメンテナンスモードを安全に解除します。

アップデートまたはメンテナンス作業後も Nextcloud に「メンテナンスモード」と表示される場合は、まずデータベースのアップグレードが完了しているかどうかを確認してください。occ statusと表示された場合はneedsDbUpgrade: false、occ maintenance:mode --off正しい Nextcloud インストール環境で Web サーバーユーザーとして を実行してください。 と表示された場合はtrue、occ upgradeサイトを再度開く前に を完了してください。

フラグを無効にするとログインは復元されますが、失敗したアップグレードは修復されません。最終的な目標は、メンテナンスフラグとアップグレード状態の両方が検証された状態でインスタンスをオンラインに戻すことです。

1. インスタンスの状態を変更する前に、インスタンスの状態を確認してください。

影響を受ける N​​extcloud URL を提供するホストまたはコンテナに接続します。Linux に手動でインストールした場合は、Nextcloud ディレクトリ (多くの場合/var/www/nextcloud) に移動し、HTTP ユーザーとしてステータスを確認します。

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

maintenanceとを探してくださいneedsDbUpgrade。無効化しても安全な状態は、maintenance: trueの場合ですneedsDbUpgrade: false。メンテナンスが既に false の場合、ブラウザは古いページを表示しているか、別のバックエンドにアクセスしている可能性があります。 がneedsDbUpgradetrue の場合は、メンテナンスモードをまだオフにしないでください。

メンテナンスがtrue、データベースアップグレードが必要falseのoccステータスを示すターミナルの例
ステータスの例では、データベースのアップグレードが保留されていないにもかかわらず、メンテナンスが有効になっている状態を示しています。これは通常、メンテナンスモードを無効にすることが適切な状態です。

Nextcloudでは、ファイルの所有権を一定に保つため、OCCをHTTPユーザーとして実行する必要があります。DebianまたはUbuntuでは通常www-data、HTTPユーザーとして実行されますが、他のディストリビューションではapache、 HTTP http、HTTP、HTTPユーザーなどが使用される場合があります。コマンドでユーザーを置き換える前に、インストール先のサービスアカウントを確認してください。Nextcloud OCCのwwwrun最新ドキュメントには、ユーザーの違いとステータスコマンドが記載されています。

2. OCCでメンテナンスモードを無効にする

アーカイブまたはパッケージをインストールする場合は、適切なスクリプトが含まれているディレクトリからコマンドを実行してくださいocc。

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

このコマンドは、メンテナンスモードが無効になっていることを報告する必要があります。この--offオプションはメンテナンス状態を変更するものであり、移行の実行、権限の修正、中断されたファイル置換の取り消しなどは行いません。

ターミナルコマンドの例:sudo -E -u www-data php occ maintenance:mode --off
これは、アップグレードが完了し、アクティブな Nextcloud ディレクトリに対してコマンドが実行されている場合の、標準インストール用の OCC コマンドです。

インストール環境に合ったラッパーを使用してください。公式のNextcloud Dockerイメージの場合、プロジェクトドキュメントにはdocker execDocker Composeの例も含まれています。サンプルコンテナ名またはサービス名を、ご自身のものに置き換えてください。

# Docker Compose; "app" is an example service name
docker compose exec --user www-data app php occ maintenance:mode --off

# Docker; replace CONTAINER_ID with the Nextcloud container
docker exec -it --user www-data CONTAINER_ID php occ maintenance:mode --off
www-dataとしてNextcloudのメンテナンスモードを無効にするためのDocker Composeコマンドの例
Docker Composeでは、Nextcloudサービス内でOCCをwww-dataとして実行します。例のappという名前の代わりに、ご自身のComposeサービス名を使用してください。

Nextcloud Snapの場合、Snapの内部ディレクトリに入るのではなく、ホスト側のOCCラッパーを使用してください。

sudo nextcloud.occ maintenance:mode --off

Snapプロジェクトで/snap/bin/nextcloud.occは、そのディレクトリがシェルのPATHに含まれていない場合に必要になる可能性があると注意書きがあります。Snapのメンテナンスモードの手順を参照してください。Nextcloudの公式DockerイメージのREADMEには、コンテナコマンドのパターンが記載されています。

3. アップグレードがまだ保留中の場合は、まずそれを完了してください。

ステータスレポートでエラーが発生した場合needsDbUpgrade: true、Nextcloud はコードとデータベースの移行が同期していないことを示しています。これは通常、アップデーターがコードを置き換えたものの、移行フェーズが完了しなかった場合に発生します。この状態では、使用できる OCC コマンドが制限される場合があり、アップグレード中にユーザーがアクセスできないように、メンテナンスモードが意図的に有効になっている場合があります。

インストールタイプに応じたアップグレードパスを使用し、続行する前にアップデーターのエラーを確認してください。標準のアーカイブベースのインストールの場合、目的のNextcloudコードバージョンが存在することを確認し、まだバックアップがない場合は新しいデータベースとファイル/設定のバックアップを取得した後、以下を実行します。

sudo -E -u www-data php occ upgrade

コマンドが完了し、報告されたエラーが解決されるまで待ちます。移行エラーを回避するために、メンテナンスモードを繰り返し切り替えないでください。Nextcloudのアップグレードに関するドキュメントには、データベースの移行はサーバーコードの置き換え後に行われると説明されており、アップグレード前に最新のバックアップを作成することが推奨されています。Docker、Snap、およびマネージドパッケージには独自のアップグレード手順がある場合があります。アーカイブベースの例と異なる場合は、それらの手順を使用してください。

アップグレードが正常に完了し、ステータスにデータベースのアップグレード保留中と表示されなくなったら、maintenance:mode --off上記の適切なコマンドを実行してください。config.phpデータベースの編集や直接更新をショートカットとして使用しないでください。OCC が設定を書き込めない場合は、正しいインストールと HTTP ユーザーを選択したことを確認し、アクセス許可を変更する前に、読み取り専用構成ポリシーまたはファイルシステムアクセス許可のエラーがないか確認してください。

4. フラグとライブサイトを確認する

同じインストールパス、コンテナ、ユーザーを使用して、再度ステータスを実行します。

sudo -E -u www-data php occ status

maintenance: falseとの両方を確認してくださいneedsDbUpgrade: false。Docker または Snap では、フラグを無効にするために使用したのと同じラッパーを使用してチェックを繰り返します。Nextcloud のステータス コマンドはこれらのフィールドを文書化します。機械可読形式は ですocc status --output=json_pretty。

occステータス出力例:メンテナンスがfalse、needsDbUpgradeがfalseであることを示す。
検証が成功すると、メンテナンスモードがオフになり、データベースのアップグレードが保留されていないことが示されます。この例は、稼働中のサーバーからの出力ではありません。

次に、新しいブラウザタブでサイトを再読み込みし、通常のログインとファイル一覧表示をテストしてください。Nextcloud は、メンテナンスモードになる前にログインしていたユーザーは、サーバーがオンラインに戻った後にブラウザを更新する必要がある場合があると述べています。OCC がメンテナンスが false であると報告しているにもかかわらず、サイトにメンテナンスページが表示される場合は、ホスト名またはロードバランサーが変更したインスタンスと同じインスタンスにルーティングされていることを確認してください。複数のコンテナまたはノードを使用している場合、別のバックエンドがまだメンテナンスモードになっている可能性があります。

したがって、修正が成功したとは、単に「無効」コマンドの応答が表示されるだけではありません。OCC ステータスで両方のフラグがクリアされていること、そして意図したパブリック URL で正常に動作するインスタンスが提供されていることが条件となります。アップグレードフラグが有効なままの場合、または移行コマンドが失敗した場合は、ユーザーを接続せず、Nextcloud を再度開く前にアップグレードエラーを解決してください。

コメントを残す

OCCを使用してNextcloudのメンテナンスモードを安全に解除します。

OCCを使用してNextcloudのメンテナンスモードを安全に解除します。

OCCを使用してNextcloudへのアクセスを復元し、データベース移行のステータスを確認し、アーカイブ、Docker、またはSnapのインストールに適したコマンドを選択します。

Nextcloud LDAPとActive Directoryログインの設定

NextcloudをLDAPまたはActive Directoryに接続し、ユーザーおよびグループフィルタを使用してアクセスを制限し、展開前に安全な認証を検証してください。

Nextcloudユーザーに二段階認証を必須にする

サポートされている2要素認証プロバイダーを有効にし、アカウント復旧の準備を行った後、すべてのユーザーまたは選択したNextcloudグループに対して2要素認証を必須にします。

Collabora CODEの保存済みドキュメントをストレージ暗号化で保護する

Collabora CODEで編集されたファイルは、ストレージ層を暗号化し、一時データを保護し、暗号化と復元を検証することで安全に保護されます。

Collabora CODEをARM64上で正しいイメージを使って実行しましょう

Collabora CODEをARM64上で正しいイメージを使って実行しましょう

ホストアーキテクチャを確認し、CODEタグがARM64を公開していることを確認し、強制的に設定されているAMD64設定を削除し、イメージエラーを権限の問題やメモリの問題から切り離してください。

Collabora OnlineをownCloud Infinite Scaleに接続する

Collabora OnlineとownCloud Infinite Scale間のWOPI接続を設定し、適切なサービスURLを構成して、ドキュメントの編集内容が保存されることを確認します。

Collabora CODEにおけるWOPIを介したブロックファイルのエクスポート

Collabora Online CODEでドキュメントのエクスポートを防止するには、WOPIのDisableExport権限を設定し、ホストとエディタがその権限を適用していることを確認してください。

CollaboraをNginxの背後に配置してもWebSocketが壊れないようにする方法

CollaboraをNginxの背後に配置してもWebSocketが壊れないようにする方法

NginxのTLS終端、Collaboraのルート、およびWebSocketヘッダーを設定し、実際のドキュメントを開く前に公開エンドポイントをテストしてください。

コード編集セッションが10分で終了しないようにする

10分間のCODE切断の原因をプロキシ、ロードバランサー、またはWebSocketパスまで追跡し、タイムアウトを修正してセッションが接続された状態を維持することを確認してください。

Helmを使用してKubernetes上にCollabora CODEをデプロイする

Collabora公式Helmチャートをインストールし、WOPIアクセスとイングレスアフィニティを設定し、一般的な設定ミスがないかデプロイメントを確認します。