Debian 6.0 (squeeze)でWordPress3.3を使う その1: 調査と準備編

Use the 8% OFF coupon "GBvalentine", Grab the Best Valentine’s Day Gifts Best Deals from Just $25 @GearBest! Ends: 1/23/2017.
調査

ちょっと海外SIMカードシリーズは中断して、久しぶりにWordPressネタを。

このサイトはDTIのServersMan@VPSにDebian GNU/Linux 6.05(squeeze)をセットアップして運用しています(そのときの話は「ServersMan@VPSネタまとめ」と「WordPresネタまとめ」を参照してください)。

Debian 6.0のWordPressのバージョンは3.0.5だったりします。最新のWordPressのバージョンは3.3.1(2012年4月現在)なのでちょっと古いです。基本的には問題がないとは思うのですが、最近動かないプラグインがちょこちょこ出てきました。

なので、Debian 6.0のままWordPressのバージョンをあげることに挑戦してみます。長くなりそうなので複数回に分割して記事にします。

2012/05/28 追記

Debian 6.0 (squeeze)のセキュリティアップデートでwordpressのパッケージがアップデートされているため、ここに記載の手順は不要です!詳しくはその4を参照してください! 

http://scratchpad.jp/wordpress3_3-on-debian-squeeze-4/

DebianのWordPressパッケージの状況

まず、開発中のDebianにおけるWordPressパッケージの状況を見てみます。

DebianプロジェクトでWordPressのパッケージを検索してみます。検索は「http://packages.debian.org/パッケージ名」なので「http://packages.debian.org/wordpress」にアクセスしてみます。

検索結果は下記のとおりです。Debian 6.0(squeeze)では、WordPress3.05が使用できますが、開発中のDebian 7.0(testing/wheezy)では、最新のWordPress 3.3.1が使用できることがわかります。

wordpressパッケージ

Debian Backports

Debianには開発中・最新版のパッケージを、すでにリリース済みのシステムで動かすBackports(http://backports.debian.org/)という仕組みがあります。仮に、最新のWordPressパッケージがDebian 6.0(sqeeze)にバックポートされていれば、それを使えばよいことになります。

バックポートされたパッケージの検索はhttp://backports-master.debian.org/Packages/で行います。

Keywordの欄に「wordpress」、Distributionの欄で「squeeze-backports」と入力して検索してみると・・・出てきません。

前年ながらsqueeze向けにバックポートされたwordpressパッケージはないようです。

Debian 7.0(wheezy)のパッケージを流用する

仕方がないので、開発中のDebian 7.0(wheezy)のwordpressパッケージを流用してみます。

必要なパッケージ情報の収集

まずは、Debian 7.0(wheezy)用のwordpressパッケージの情報を入手します。情報はhttp://packages.debian.org/wheezy/wordpressで表示されます。

重要なのはこのページの「その他のwordpress関連パッケージ」で表示されるパッケージのうち、赤丸で依存となっているパッケージ(「dep:」が頭についている)です。WordPressの最新版パッケージを動かすためにはこれらの「依存」パッケージも必要なのです。

パッケージ名のあとに「(>=バージョン番号)」と書かれている場合は、そのバージョン番号以上のパッケージがインストールされている必要があります。例えば「dep: libjs-cropper (>=1.2.1)」であれば、バージョンが1.2.1以上のlibjs-cropperパッケージがインストールされていなければ、最新版WordPressパッケージは動かないことになります。

面倒ですが、一つ一つ確認してみます。自分のシステムに入っているパッケージを調べるには

dpkg –l | grep パッケージ名

を実行します(ServersMan@VPSにSSHで接続して行います)。例えば上記のlibjs-cropperパッケージの場合は

dpkg -l | grep libjs-cropper
ii  libjs-cropper                           1.2.1-2                                 JavaScript image cropper UI

となって、バージョン1.2.1-2のパッケージが入っていることがわかります。これは「>=1.2.1」という条件を満たしているので、このままでOKということです。

自分のServersMan@VPSの環境を確認したところ下記のパッケージが最新版WordPressパッケージを動かす条件を満たしていませんでした。

  • libjs-prototype (>=1.7.0): 私の環境は1.6.1-1
  • libjs-scriptaculous (>=1.9.0): 私の環境は1.8.3-1
  • libphp-simplepie (>=1.2): 私の環境にはインストールされておらず
  • tinymce (>=3.4.3.2+dfsg0): 私の環境は3.3.8+dfsg0-0.1

このうち、libphp-simplepieパッケージはDebian 6.0(squeeze)にバージョン1.2-1というものがありますので、これを入れれば大丈夫そうです。残りの3つについてはDebian 6.0(squeeze)のパッケージは古すぎるので、Debian 7.0(wheezy)から入手する必要があります。

Debian 7.0(wheezy)から入手するこの3つのパッケージについても、それれぞれ同様に「依存パッケージ」がないかどうか、自分の環境にインストールされているかどうかの確認が必要です。幸いこの3のパッケージついては新たに必要な依存パッケージはありませんでした。

バージョンアップが必要なのはWordPress本体とあわせて4パッケージだけなので、リスクは少なそうです。

不足しているパッケージのインストール

上述のとおり、libphp-simplepieについてはDebian 6.0(squeeze)のものでよいので、下記のようにしてインストールしておきます。

sudo aptitude install libphp-simplepie

Debian 7.0(wheezy)用パッケージ入手の準備

これまでの調査の結果、Debian 7.0(wheezy)から下記のパッケージを入手する必要があることがわかりました。

  • wordpress (3.3.1+dfsg-1)
  • libjs-prototype (>= 1.7.0)
  • libjs-scriptaculous (>= 1.9.0)
  • tinymce (>= 3.4.3.2+dfsg0)

これらのパッケージをここに入手してインストールしても良いのですが、ここはDebianのシステムを使ってスマートに解決してみます。

まずは、/etc/apt/sources.list.d/ディレクトリに「wheezy.list」というファイル名で、次の内容のファイルを作ります。

deb http://ftp.jp.debian.org/debian wheezy main contrib non-free
deb-src http://ftp.jp.debian.org/debian wheezy main contrib non-free

次に/etc/apt/preferences.d/ディレクトリにファイル名「00default」で次の内容のファイルを作ります。

Package: *
Pin: release a=testing
Pin-Priority: 110

Package: *
Pin: release a=stable
Pin-Priority: 990

ここまで準備できたらaptitudeコマンドでパッケージ情報を更新します。

sudo aptitude update

パッケージ情報の更新を完了したらWordPressパッケージの情報を確認します。下記のようになっているはずです。

sudo aptitude versions wordpress
i   3.0.5+dfsg-0+squeeze1                         stable                    990
p   3.3.1+dfsg-1                                  testing                   110

まとめ

とりあえずこれでDebian 7.0 (wheezy)のWordPressパッケージを使う準備が整いました。

次回は万が一のためにWordPressのデータをバックアップします。