先日、さくらVPSのUbuntuを10.04LTSから12.04LTSへアップグレードした。
10.04LTSのサポート期限は2015年4月とまだ先だが、いずれ避けて通れなくなるため……。
コマンドは以下。
# do-release-update
このときsshからコマンドを実行したところ初っ端に「sshでやんの? 本当に?」と聞かれて怖くなったのでさくらVPSのWebコンソールから再度コマンドを叩き直した。
この後は怒濤の質問攻めにあい、各種confファイルは新バージョンに合わせてアップグレードするか聞かれるが、基本的には「元のバージョンを残す」で対応した。
30分ほど作業して、最後に再起動がかかり完了。
Wordpressは大丈夫かな~と動作確認してみるも、何ら問題なく動いた!
しかしやはりというべきか、動かないものもちゃんと(?)あった。
・Postfix
・Dovecot
・Postfixadmin
Postfix
まず/etc/postfix/main.cfのパラメータ virtual_mailbox_limit_maps がWarningになっていたのでコメントアウト。(まぁWarningなのでほっといても良い)
あとopendkimのエラーに引きずられてpostfixデーモンが起動しなくなっていた(?) ※これが原因だったか定かではない。
postfix/smtpd[4291]: warning: connect to Milter service inet:127.0.0.1:8891: Connection refused
解決策として、/etc/opendkim.conf の最後に以下を追記。
Socket inet:8891@localhost
これでpostfixは問題なく起動。
dovecot
以下のようなエラーが出ていた。
dovecot: auth-worker(default): mysql: Connect failed to localhost (postfix): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 - waiting for 1 seconds before retry
dovecot: auth-worker(default): mysql: Connect failed to localhost (postfix): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) - waiting for 1 seconds before retry
OSアップグレードの影響か、dovecot-mysqlが居なくなっていたため、インストール。
# apt-get install dovecot-mysql
さて、後は/etc/dovecot/conf.d/以下のconfを修正すれば良い。
注意点として、v1.x系とv2.x系ではconfの構成が異なる。
・v1.x系では、01-mail-stack-delivery.confのファイルが1つ。
・v2.x系では、設定ファイル多数。カテゴリ分けされた。(10-auth.conf, 10-master.conf, など)
一応、v1.x系のconfも読んでくれるのだが、編集しても結局dovecotがエラーを吐き続けてうまくいなかなった。
そこで01-mail-stack-delivery.confは削除し、各ファイルへパラメータを設定した。
また、MySQLをバックエンドで使用している場合のみ、以下ファイルをコピーしておく。
cp /usr/share/doc/dovecot-core/dovecot/example-config/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/
MySQLを使う場合は、あわせて10-auth.confを編集。以下をアンコメント。
!include auth-sql.conf.ext
残りの慎重に作業を実施し、dovecotを起動して何もエラーが出なければOK。。。
この手の作業はたいてい何かしらミスするものなので、気楽に。
Postfixadmin
エラー。
./apache2/error.log.1:[Thu Jul 24 23:34:22 2014] [error] [client 127.0.0.1] dovecotpw password encryption failed., referer: http://ivorylion1.sakura.ne.jp/postfixadmin/login.php
./apache2/error.log.1:[Thu Jul 24 23:34:22 2014] [error] [client 127.0.0.1] STDERR output: sh: 1: /usr/sbin/dovecotpw: not found\n, referer: http://ivorylion1.sakura.ne.jp/postfixadmin/login.php
パスワード生成コマンドが変更になったとのことなので、対策。
postfixadminのconfig.inc.phpを下記の通り編集する。
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
以上