WordPress の自動アップグレードのステップ

「自動アップグレードが怖い!」:-) という方がいたので、http://core.trac.wordpress.org/ticket/5560#comment:60 より WordPress の自動アップグレードのステップについてご紹介。

アップグレード中に実行されるステップ。

  • バージョンとロケール情報を http://api.wordpress.org/core/version-check/1.2/ に送り、アップデートがあるか確認。あれば WP パッケージへのリンクを取得。リクエストしたロケール用のパッケージがあればそれを利用し、なければ英語版が利用される。wp.org 上にローカルサイトを持つロケールのみパッケージを利用できる
  • wordpress.org よりシステムの一時ディレクトリにパッケージをダウンロード
  • 作業ディレクトリ、通常は wp-content/upgrade/core を作成
  • パッケージを作業ディレクトリに展開
  • 作業ディレクトリに展開された新しいバージョンの wp-admin/includes/update-core.php を使用中の WordPress にコピー
  • 新しい update-core.php をインクルードする
  • update-core.php で定義されている update_core() を呼び出す

update_core() が引継ぎ、以下を実行:

  • 作業ディレクトリにある新しいバージョンの WordPress の整合性・正当性を検査(Sanity check)
  • WP のルートディレクトリに .maintenance ファイルを作成。wp-settings.php がこれをチェックし、このファイルがあれば WP を読み込まないようにする。ファイルのアップグレード中に WP  を読み込まないようにするため
  • 古い WP ファイルを新しい WP ファイルで上書き
  • WP に含まれなくなった必要の無いファイルを削除
  • データベースのアップグレードを実行するためにリクエストを ugrade.php に送る。新しいファイルをすべて読み込んだ新しいリクエストが必要なので、アップグレード関数を直接呼び出すのではなく別のリクエストとして実行する
  • 作業ディレクトリを削除
  • .maintenance ファイルを削除
  • おわり

1 Comment

Comments are closed.