はじめに
これまでDebian GNU/Linux上で roundcube 1.6.1を稼働させてきた。
- Debian GNU/Linux 11.6上でroundcube 1.6.1
- roundcube 1.6.1にプラグインを追加する
- Debian GNU/Linux 11.6上のroundcube 1.6.1 をfail2banで扱う
Debian12を13へアップグレードした際には、roundcubeは動いているように見えたが、dovecotの設定変更にともない動いていない部分があった。
不具合の解消ついでにroundcubeも1.6.1から1.6.14へアップグレードした。
前提
% cat /etc/debian_version
13.3
% php -v
PHP 8.4.16 (cli) (built: Dec 18 2025 21:19:25) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.16, Copyright (c) Zend Technologies
with Zend OPcache v8.4.16, Copyright (c), by Zend Technologies
roundcubeのアップグレード
Roundcube公式より、最新版のソースコードをダウンロードする。
% cd /tmp % wget https://github.com/roundcube/roundcubemail/releases/download/1.6.14/roundcubemail-1.6.14-complete.tar.gz % tar xvfz roundcubemail-1.6.14-complete.tar.gz % sudo mv roundcubemail-1.6.14 /var/lib % cd /var/lib
現在の /var/lib/roundcube は /var/lib/roundcubemail-1.6.1へのシンボリックリンクなので作り直す。
% sudo rm roundcube % sudo ln -s roundcubemail-1.6.14 roundcube % sudo chown root:root roundcube -R % cd roundcube % sudo chown www-data:www-data temp logs -R
プラグインや設定ファイルをコピーする。元の設定ファイルやプラグインは /var/lib/roundcubemail-1.6.1 以下にあるとする。設定ファイルをコピーする。
% pwd /var/lib/roundcube % cd config % cp -p /var/lib/roundcubemail-1.6.1/config/config.inc.php
roundcube 1.6.1にプラグインを追加するで追加したプラグインをコピーする。
まず、contextmenu(右クリックでメニューを表示するプラグイン)をコピーする。GitHub - johndoh/roundcube-contextmenu: Adds context menus to various parts of Roundcubeをみると、前回インストールしたときからバージョンの変更がないため、そのままコピーする。
% cd /var/lib/roundcube/plugins % cp -pr /var/lib/roundcubemail-1.6.1/plugins/contextmenu .
続いて、managesieve(サーバサイドのメールフィルター機能プラグイン)をコピーする。このプラグインはroundcubeに標準搭載のため、dovecotの設定ファイルを2.4版に対応させればよい。dovecotの2.3版から2.4版への設定ファイルの変更についてはDebian GNU/Linux 12から13へのアップグレード覚書を参照のこと。ここでは当該ページで編集していなかった設定ファイルのみ記載する。まず、15-lda.conf 。
% cd /etc/dovecot/conf.d % sudo cp -p 15-lda.conf 15-lda.conf.org % sudo vi 15-lda.conf
編集結果は以下の通り。
% diff 15-lda.conf.org 15-lda.conf
47,49c47,49
< #mail_plugins {
< # sieve = yes
< #}
---
> mail_plugins {
> sieve = yes
> }続いて 20-lmtp.conf。
% sudo cp -p 20-lmtp.conf 20-lmtp.conf.org % sudo vi 20-lmtp.conf
編集結果は以下の通り。
% diff 20-lmtp.conf.org 20-lmtp.conf
40,41c40,41
< # mail_plugins {
< # sieve = yes
---
> mail_plugins {
> sieve = yesdovecotの設定ファイルを編集したので、dovecotを再起動する。
% sudo systemctl restart dovecot
以下のプラグインは設定ファイル config.inc.phpに記載するだけのため、pluginsからコピーする必要はない。
- 指定した行より多い引用を隠す(hide_blockquote)
- 添付ファイルの一時置き場の指定(filesystem_attachements)
- ヘルプ(help)
Two Factor Authenticationはファイルのコピーが必要。
% cd /var/lib/roundcube/plugins % cp -pr /var/lib/roundcubemail-1.6.1/plugins/xframework . % cp -pr /var/lib/roundcubemail-1.6.1/plugins/x2fa .
ログのタイムゾーン設定
phpを8.2から8.4にアップグレードしたため、タイムゾーンの設定をし直す必要がある。
roundcubeのエラーログに使われているタイムゾーンはphpのタイムゾーンが使用される。標準ではUTCになっているため、日本時間(JST)に変更する。今回は php8.4-fpmを利用しているため、設定ファイルのphp.iniは/etc/php/8.4/fpmにある。
% sudo vi /etc/php/8.4/fpm/php.ini
タイムゾーンの記載を以下のようにする。
% grep timezone /etc/php/8.4/fpm/php.ini ; Defines the default timezone used by the date functions ; https://php.net/date.timezone ;date.timezone = date.timezone = "Asia/Tokyo"
確認
以下のログを見て、適切に起動しているか確かめる。
- Apacheのログ:/var/log/apache2/error.log
- roundcubeのエラーログ: /var/lib/roundcube/logs/error.log
- postfixやdovecotのログ: /var/log/mail.log