Debian squeezeのnginxを更新する

Gearbest Gadgets Daily: Up to 95% OFF
更新

前回はServersMan@VPSに導入しているDebian GNU/Linuxをsqueezeからwheezyに更新しようと思ったところ、あえなく失敗しました。

Debianを更新したい主目的はnginxとWordPressを最新に更新したいということだったので、今回は手動でnginxを更新したいと思います。

APT設定の変更

nginxを使うにあたりwww.dotdeb.orgというサイトのパッケージを利用していました

ところがnginxの公式サイトを見ると、公式サイトでDebian用のnginxのパッケージを配布していることがわかりました。

このサイトの記述にしたがって次の内容のファイルを/etc/apt/sources.list.d/nginx.listとして作成します。

deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx

次にnginxのPGPキーを入手して自分のシステムに追加します

wget http://sysoev.ru/pgp.txt
apt-key add pgp.txt

古いnginxの削除

nginxのパッケージ構成が異なっていて、トラブルを起こす可能性があるので、古いパッケージは設定ファイルをバックアップした後、削除しておきます。

削除するときに依存関係の警告が出るので–force-dependsをつけて強制的に削除します。

cd /etc
cp -a nginx nginx.back
dpkg --force-depends --purge nginx nginx-common nginx-doc nginx-full

nginxの更新

それではパッケージを更新します。

まずはパッケージ情報一覧を更新します。

apt-get update
...
パッケージリストを読み込んでいます... 完了
W: GPG エラー: http://nginx.org squeeze Release: 公開鍵を利用できないため、以下 の署名は検証できませんでした: NO_PUBKEY ABF5BD827BD9BF62

PGPキーを追加したはずなのですがエラーが出ます・・・よくわかりませんがこのまますすめます

apt-get install nginx
...
警告: 以下のパッケージは認証されていません!
  nginx
検証なしにこれらのパッケージをインストールしますか [y/N]? y
...
nginx (1.4.1-1~squeeze) を設定しています ...
設定ファイル /etc/nginx/nginx.conf を新規にインストールしています ...
設定ファイル /etc/nginx/koi-utf を新規にインストールしています ...
設定ファイル /etc/nginx/mime.types を新規にインストールしています ...
設定ファイル /etc/nginx/fastcgi_params を新規にインストールしています ...
設定ファイル /etc/nginx/koi-win を新規にインストールしています ...
設定ファイル /etc/nginx/win-utf を新規にインストールしています ...
設定ファイル /etc/nginx/uwsgi_params を新規にインストールしています ...
設定ファイル /etc/nginx/scgi_params を新規にインストールしています ...
設定ファイル /etc/init.d/nginx を新規にインストールしています ...
設定ファイル /etc/default/nginx を新規にインストールしています ...
設定ファイル /etc/logrotate.d/nginx を新規にインストールしています ...
...

よくよく見ると/etc/nginx/nginx.conf が上書きされているのがわかります。

バックアップした設定ファイルを書き戻します

cd /etc
cp -a /etc/nginx.back/* /etc/nginx/

また必要なディレクトリを作成しておきます

mkdir /var/lib/nginx
chown www-data.www-data /var/lib/nginx

ここまで来たら設定ファイルに間違えないことを確認してから、nginxを再起動します

/etc/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
/etc/init.d/nginx restart
[ ok ] Restarting nginx: nginx.

まとめ

今回はnginxをhttp://nginx.org/で公開されているDebian squeeze用のパッケージを使って、最新版に更新しました。

設定ファイルnginx.confが上書きされてしまうので、そのバックアップだけとっておけば、ほかは特に問題ないと思います。

次回はDebian squeezeのWordPressを3.3.2から3.5系列に更新したいと思います。