Debian GNU/Linux 13上でroundcubeを1.6.1から1.6.14へアップグレード

はじめに

これまでDebian GNU/Linux上で roundcube 1.6.1を稼働させてきた。

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 = yes

dovecotの設定ファイルを編集したので、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