SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する
SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。
MySQLまたはMariaDBのバージョンアップグレード直後にKopanoのデータベース移行エラーが発生する場合、通常はアプリケーションとデータベースの間で、以前は暗黙的だった何らかの事柄(スキーマの状態、サーバーのデフォルト設定、SQLの動作、認証、あるいはアップグレードパス自体など)について合意が得られなくなったことを意味しますkopano-server。重要なのは、単に一度起動させることではなく、スキーマが整合し、データベースアップグレードエラーなしでKopanoが起動し、ユーザーがストアを開くことができ、再起動後もメールフローが正常に機能する状態に到達することです。
このガイドでは、証拠を重視します。各段階には成功の兆候と、同じ解決策を試み続けるのをやめて方向転換すべきポイントが含まれています。Kopanoの公開管理者向けドキュメントは、現在のMySQLおよびMariaDBのリリースよりも古いため、すべての最新のデータベースバージョンがすべての過去のKopanoビルドでサポートされているとは限りません。決定的な証拠として、正確なKopanoパッケージバージョン、データベースベンダー、およびサーバーエラーを使用してください。
設定を変更する前に、「修正済み」の意味を明確に定義してください。正常な復旧には通常、以下の兆候がすべて見られます。
kopano-serverサービス再起動後も起動し、動作を継続する。最初の項目しか達成できなかった場合は、テストを続けてください。sql_modeたとえば、変更後に一時的に動作を開始したとしても、基となるスキーマが正しいことを証明するものではありません。
Kopano のアップグレードに関するドキュメントでは、アップグレード作業の前にデータベースと構成ファイルをバックアップし、データベースを使用するサービスを停止することを推奨しています。ドキュメントでは特に、および、さらに実行中のオプションのコンポーネントを停止するように指示していますkopano-spooler。Kopano kopano-serverCoreのアップグレードに関するドキュメントを参照してください。
sudo systemctl stop kopano-spooler
sudo systemctl stop kopano-server
mysqldump -u root -p --single-transaction kopano > /root/kopano-before-fix.sql
ls -lh /root/kopano-before-fix.sql
大規模なインストールの場合、/etc/kopano/添付ファイルの保存場所も保存し、既存のデータベースバックアップポリシーに従ってください。添付ファイルがMySQL以外の場所に保存されている場合、SQLダンプだけではKopanoの完全なバックアップにはなりません。
スキーマやサーバー設定を変更する前に、データベースに書き込みを行うKopanoサービスを停止し、最新のダンプファイルが存在することを確認してください。
成功シグナル:別のデータベースインスタンスに復元可能なバックアップがあり、外部添付ファイルの保存場所がわかっている場合。ダンプ自体が失敗した場合、アプローチを変更してください。 Kopanoスキーマ移行を試みる前に、データベースの破損、権限、ディスク容量、または接続性を修正してください。
MySQLのメジャーアップグレードでは、既存のテーブルを変更せずにサーバーのデフォルト設定を変更できます。たとえば、MySQL 8.0では、デフォルトのサーバー文字セットが にutf8mb4、デフォルトの照合順序が にutf8mb4_0900_ai_ci変更されました。また、その他のデフォルト設定も変更され、古い動作が削除または非推奨になりました。Oracleは、これらの変更点について「MySQL 8.0の変更点」で説明しています。
パッケージのアップグレードによって何が起こったかを推測するのではなく、実際のサーバーの状態を把握してください。
mysql -u root -p
SELECT VERSION();
SHOW VARIABLES LIKE 'sql_mode';
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';
Kopanoが現在認識しているデータベースのバージョンとデフォルト値を記録してください。これらの値は、データベースのアップグレード後にのみ発生した障害の原因を特定するのに役立ちます。
厳密なSQLモードをすぐに無効にしないでください。厳密モードでのエラーは、修正が必要な無効なレガシーデータやSQLを明らかにする可能性があります。厳密モードをオフにすると、症状が隠蔽され、後で問題が発生するデータが残ってしまう可能性があります。まず、Kopanoのログから、エラーが発生したステートメントまたはデータベースエラーを正確に取得してください。
Systemd は終了したというメッセージのみを表示することがよくありますkopano-server。有用な行は通常、ジャーナルまたは Kopano ログのより前の部分にあります。以下から始めてください。
journalctl -u kopano-server -n 100 --no-pager
次に、障害を分類します。以下の表は、あらゆる設置状況に共通する単一の原因を示すものではなく、実用的なトリアージマップです。
| 症状を記録する | 次に何を検査すべきか | 最初にしないでください |
|---|---|---|
| アクセス拒否 / 認証プラグインエラー | Kopano MySQLの認証情報、ホスト権限、認証方法 | スキーマを変更する |
| 不明な列 / 重複する列 / テーブルが既に存在します | 部分的なスキーマ移行により、以前のアップグレードが中断されました。 | 影響を受けるテーブルを削除します |
| 文字列値が正しくありません / 照合エラー | データベース、テーブル、および列の文字セット/照合順序 | すべてのテーブルを盲目的に変換する |
| 無効なデフォルト値 / データが切り捨てられました / 厳格モードエラー | 障害が発生した特定の列と保存データ | 厳格モードをグローバルに無効にする |
| インデックスが長すぎます / 行サイズエラー | テーブル定義、文字セット展開、InnoDB形式 | バックアップなしでインデックスを削除する |
| サーバーは起動するが、必要なKopanoデータベースメンテナンスタスクを報告する。 | kopano-dbadmKopano リリースで指定された正確なサブコマンド | 汎用的なアップグレードコマンドを作成する |
Kopanoの変更履歴には、特定の操作を必要とするスキーマ変更が導入されたリリースがあることが記載されていますkopano-dbadm。また、古いMySQLテーブル定義やutf8mb4のアップグレードに関連する不具合など、過去のデータベースアップグレードの不具合も記録されています。Kopano Coreの変更履歴を参照して、ご使用のKopanoリリースに合ったメンテナンス作業を確認してください。
既存のスキーマを確認してください。サーバーのデフォルト設定だけでは、Kopanoテーブルがいつ定義されたかはわかりません。
SHOW CREATE DATABASE kopano;
SHOW TABLE STATUS FROM kopano;
既存のKopanoデータベース定義とストレージエンジンを検査すると同時に、比較のために元の移行エラーを表示したままにしておきます。
データベースが元々古いバージョンのMySQLで作成されていた場合、新しく作成されたオブジェクトのデフォルトがutf8mb4になったとしても、テーブルには古い文字セットが残っている可能性があります。MySQLは、5.7から8.0へのアップグレードでは、既存のデータベースオブジェクトが新しいデフォルト文字セットに自動的に変換されないことを明示的に述べています。この点は重要です。新しい列やインデックスが、隣接するオブジェクトとは異なるデフォルト値で作成されると、移行が失敗する可能性があるからです。
Kopano自体は後のCoreリリースでutf8mb4のサポートを追加し、既存のデータベースを4バイトUnicodeに対応させるための特定のデータベースメンテナンス手順を文書化しましたkopano-dbadm usmp。MySQLがデフォルトでutf8mb4を使用するようになったからといって、このコマンドを実行しないでください。インストール済みのKopanoリリースのドキュメントまたはサーバー出力で指示されている場合にのみ実行してください。
バックエンドがOracle MySQLではなくMariaDBの場合は、Kopanoを責める前に、データベースサーバー自身のアップグレード手順を完了させてください。MariaDBのドキュメントには、mariadb-upgradeシステムテーブルを更新し、メジャーバージョン変更後にテーブルをチェックするツールとして記載されています。ドキュメントでは、まずすべてのデータベースをバックアップすることを推奨しています。公式のmariadb-upgradeリファレンスを参照してください。
これは分岐コマンドであり、汎用コマンドではありません。Oracle mariadb-upgradeMySQLに対しては実行しないでください。逆に、両方ともクライアントプロトコルを受け入れるという理由だけで、MySQL 8.0の前提をMariaDBサーバーに適用しないでくださいmysql。
Kopano の管理者マニュアルには、サーバーには Kopano データベースに対するALTER、CREATE、CREATE ROUTINE、DELETE、DROP、INDEX、INSERT、LOCK TABLES、SELECTなどの権限が必要であると記載されていますUPDATE。データベース接続パラメータは、 の MySQL 関連設定で構成します/etc/kopano/server.cfg。KCコンポーネントの構成を参照してください。
MySQLのバージョン移行後、管理者はユーザーの再作成、認証プラグインの変更、データベースホストの移動、または権限の不完全な復元を行う場合があります。Kopanoが使用するホスト名とアカウントと同じものを使用してテストしてください。移行SQLが実行される前に認証が失敗した場合は、まずアカウントまたは権限の問題を修正してください。
この時点で、具体的な障害クラスが1つあるはずです。それを説明できる最小限の変更を適用してください。
kopano-dbadm指示に従ってください。次のステートメントを実行するためだけに、バージョンマーカーを削除したり、列を手動で追加したりしないでください。最後のケースは重要です。公開されているKopano Coreの管理者マニュアルは旧世代の製品に関するものであり、一方、最新のMySQLおよびMariaDBのリリースは継続的に変更されています。ご使用の組み合わせに関するサポート情報が見つからない場合でも、ドキュメントがないことを互換性がないと解釈すべきではありません。
sudo systemctl start kopano-server
sudo systemctl start kopano-spooler
systemctl --no-pager --full status kopano-server
journalctl -u kopano-server -n 50 --no-pager
正常なサービス状態は必要条件ではありますが、十分条件ではありません。起動ログを確認し、ユーザーストアとメールフローを検証してください。
サービスが安定稼働したら、実際のアプリケーションの動作でテストしてください。既存のメールボックスを少なくとも1つ開き、古いフォルダーとメッセージが存在することを確認し、2つのローカルアカウント間でメッセージを送信し、送信メッセージを1つ送信して、受信メールが正常に配信されることを確認してください。IMAP、ActiveSync、アーカイブ、マルチサーバーコンポーネント、または外部添付ファイルストレージを使用している場合は、それらの機能もテストしてください。
以下のいずれかの条件が発生した場合は、スキーマ変更の繰り返しを停止してください。
このような場合、より安全な方法は、以前のデータベース環境を再現し、正常に動作することが確認されているバックアップを復元し、クローン環境で段階的なアップグレードを計画することです。Oracleは、MySQL 8.0から5.7へのダウングレードはインプレースではサポートされていないと述べています。サポートされている代替手段は、アップグレード前に取得したバックアップを復元することです。MySQL 8.0のリリースノートを参照してください。
kopano-server2回目の再起動にも耐える。データベース移行の問題は、スキーマ、データベースサーバー、およびKopanoのバージョンが再び一致した時点で解決されます。エラーメッセージが消えただけでは解決しません。修復に至った経緯を記録しておいてください。それは、次回のデータベースまたはKopanoのアップグレードに必要な情報でもあります。
SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。
アクティブなPHP SAPI、サイズ制限、コメント、および再検証設定を確認することで、NextcloudのPHP OPcache構成警告を診断および修正する方法を学びましょう。
MySQLまたはMariaDBのアップグレード後にKopanoデータベースの移行が失敗した場合は、バックアップ、サーバーバージョン、SQLモード、文字セット、スキーマ状態、およびログを確認してトラブルシューティングを行います。
セキュアなトランスポート、ユーザーおよびグループフィルタ、ログイン属性、そしてテスト済みの展開機能を使用して、NextcloudをLDAPまたはActive Directoryに接続します。
UnifiedPush、Androidの権限設定、バッテリー設定、および信頼性の高い検証テストを設定することで、Googleサービスを削除した端末におけるElement Android通知の問題を修正します。
Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。
Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。
応答しないLDAPサーバーが原因で発生するZimbraの起動失敗を診断および修正する方法を学びましょう。これには、サービスチェック、DNS、ポート、証明書、LDAP URL、および復旧検証が含まれます。
ownCloud Infinite Scale向けに、s3ngドライバ、POSIXメタデータ、バケットポリシー、検証、および安全な本番環境チェックを使用して、S3互換のオブジェクトストレージを設定します。
Zimbra Postfixのバックログを検査する方法、延期されたメールと保留されたメールを識別する方法、安全なキューフラッシュを実行する方法、メッセージを削除せずに進捗状況を確認する方法を学びましょう。