UbuntuへのRoundcube設定にてはまる。

UbuntuへのRoundcube設定にてはまった。

事前にMySQL、Postfix、Dovecotのインストールおよび設定を完了させておくこと。

apt-get install roundcube

途中で色々と聞かれるので、正しく答えること。答えさえ間違えなければ、MySQLの中に必要なテーブルまで自動で作ってくれる!
参考にさせていただいたサイト:Server World

設定ファイル(/etc/roundcube/main.inc.php)をいくつか書き換える。ご自分の環境に合わせて。

// ----------------------------------
// IMAP
// ----------------------------------
$rcmail_config['default_host'] = 'ssl://127.0.0.1';
$rcmail_config['default_port'] = 993;
$rcmail_config['imap_auth_type'] = 'CRAM-MD5';

// ----------------------------------
// SMTP
// ----------------------------------
$rcmail_config['smtp_server'] = 'ssl://127.0.0.1';
$rcmail_config['smtp_port'] = 465;
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['smtp_auth_type'] = '';

あと、httpsを強制しておく。(お好みで)
/etc/roundcube/htaccess を編集すればOK。下記を追記する。


    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

以上

……あ、はまった話でしたね。

Dovecot側のCRAM-MD5認証はできたのだが、Postfix側のCRAM-MD5認証がどうしてもできなかった。
本来であれば、$rcmail_config[‘smtp_auth_type’] = ‘CRAM-MD5’; とすればいけると思うのだけど、Roundcube内でメール送信しようとすると「認証に失敗しました」となってしまう。

結局、PLAIN, LOGINも認証メソッドに追加したところメール送信ができるようになったが、何か後味の悪いものとなった……。

さくらVPSのUbuntuを10.04LTSから12.04LTSにアップグレードして動かなくなったもの

先日、さくら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://beautiful-moon.tokyo/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://beautiful-moon.tokyo/postfixadmin/login.php

パスワード生成コマンドが変更になったとのことなので、対策。
postfixadminのconfig.inc.phpを下記の通り編集する。

$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

以上