WordPress2.11へ自動アップデート(しないでください)
※WordPress 2.11は何者かに書き換えられたため、2.12にアップデートされています。この記事は参考程度にして下さい。(2007/03/03)
————–
WordPressを2.1から2.11にアップデートしてみた。複数サイトのアップデートをする必要があったので、自動アップデートのスクリプトをRubyで作ってみた。ちょっとだけ汎用性をもたせて公開。
※WordPressに関してはまだまだ経験不足です。問題あったら是非教えてください。
アップデートは初めてなのでちょっと不安。公式Blogによると、どうやら特定のファイルだけを更新すれば良いらしい。
ファイル更新のスクリプトでは寂しいと思ったので、最新アーカイブのダウンロードまで自動にしてみた。(デフォルトではoff)
アップデート対象のWordPress2.1とupdateスクリプトのディレクトリ配置を以下に示す。blog.someda.comがアップデート対象のWordPress2.1のディレクトリ。workは作業用ディレクトリで、ここにスクリプトを置いて実行。
blog.someeda.com/ (WordPress2.1)
work/wp-update.rb (WordPress 2.1 -> 2.11 update専用Rubyスクリプト)
work/wordpress (WordPress2.11: 最新版の latest.tar.gz を展開すると出てくる)
wp-update.rb は WordPress 2.1 -> 2.11 アップデート専用。スクリプトソース内の OPTS を変更する事で挙動と、アップデート対象WordPressディレクトリを変更できる。OPTSの内容はこうなっている。
:download => true # (wgetで公式サイトから最新版のダウンロード&解凍をする)
:update => false # (true にすると実際にアップデート作業をおこなう)
ld_dir => …. # (アップデート対象のディレクトリをPathnameオブジェクトで記述)
ld_dir のパスは自分の環境に合わせる事。
:new_dir は latest.tar.gz を解凍した時に作られる名前に設定されているので、そのままで良いはず。
アップデートの実行
- WordPressディレクトリのバックアップを取る。
- $ mkdir work
- $ cd work
- $ wget http://blog.someeda.com/public/wp-update.rb (work以下に wp-update.rb を置く。)
- エディタでソースの編集。OPTSの
ld_dir をアップデートするWordPressディレクトリに変更。 - $ ruby wp-update.rb (スクリプトの実行。アップデート内容が表示されるので確認。)
- OPTSの :update を true に設定。(実際にアップデートをする設定に変更。)
- $ ruby wp-update.rb (実際にアップデート)
- アップデート完了。
※公開直後に結構書き直しました。
※2.1 から 2.11 へのアップデート専用です。
※問題が起こっても責任取れません。バックアップは必ず取って下さい。これでアップデートは無事に完了。バージョンも変更されていて、今の所問題は無さそう。
一つ疑問がわいた。最新版のURLは http://wordpress.org/latest.tar.gz なのだが、これってバージョンアップでハマった時とか、特定のバージョンが欲しい場合はどうするんだろう?もちろん自分で保存しておくべきなのだけど。マ ニアじゃなくても特定のバージョンが得られる様にしておいた方いい気がするが。とりあえず最新版だけ配布した方がトラブルが少ないとか、何か理由があるのかな?
someeda 02:42 on 2007/03/02 パーマリンク
レンタルサーバのDreamHostでは1-ClickInstallerによって自動でアップデートができる様になりました。DreamHostをお使いの方はこの機能を使ってアップデートする事をお進めします。