2026年7月17日
2026年7月17日
Roundcube のインストール方法|Debian・Ubuntu のパッケージと Apache で設定する手順
Roundcube(ラウンドキューブ)は、ブラウザーから IMAP のメールボックスを読み書きできるオープンソースの Web メールです。Debian と Ubuntu には roundcube パッケージがあり、apt で入れるとデータベースの作成や Apache 用の設定ファイルの配置まで自動で行われます。セキュリティ修正も OS の更新として届くため、手軽に導入して長く運用したい場合に向いています。
この記事では、Debian 13 に入る roundcube パッケージ(2026年11月時点で 1.6.20)を使い、MariaDB と Apache で動かす手順を説明します。Ubuntu でも同じ名前のパッケージで、手順はほぼ同じです(版は Ubuntu のリリースごとに異なります)。公式サイトの配布ファイルを Nginx で動かす方法は、Roundcube で Web メールクライアントを構築する方法にまとめています。
始める前に確認すること
Roundcube はメールを保存する仕組みを持たず、IMAP サーバー(Dovecot など)に接続してメールを表示し、SMTP サーバー(Postfix など)に接続して送信します。先に次の状態になっている必要があります。
- メールアプリから、IMAP での受信と、SMTP(587番)での認証付き送信ができる。
- Web メールを公開するホスト名(例:
webmail.example.com)の DNS が、このサーバーを向いている。 - 管理者権限(
sudo)でパッケージを入れられる。
メールサーバーがまだ無い場合は、Postfix+Dovecot で IMAP メールサーバーを構築する手順を先に済ませます。
手順 1: データベースと Web サーバーを入れる
Roundcube のパッケージは、インストール中にデータベースを作ります。そのため、先に MariaDB を入れて起動しておきます。Apache と PHP もここで入れます。
sudo apt update
sudo apt install mariadb-server apache2 libapache2-mod-php
sudo systemctl status mariadb --no-pager
MariaDB が active (running) になっていれば次に進みます。
手順 2: roundcube パッケージを入れる
sudo apt install roundcube roundcube-mysql roundcube-plugins
| パッケージ | 内容 |
|---|---|
roundcube |
本体(roundcube-core を引き込む) |
roundcube-mysql |
MariaDB/MySQL を使うための部品。SQLite なら roundcube-sqlite3、PostgreSQL なら roundcube-pgsql |
roundcube-plugins |
公式プラグイン(archive、zipdownload、managesieve、password など) |
インストールの途中で、dbconfig-common でデータベースを設定するかを聞かれます。「はい」を選ぶと、ローカルの MariaDB に roundcube という名前のデータベースと同名のユーザーが作られ、表も作成されます。ユーザーのパスワードは空欄のままにすると自動で生成されます。
作られたものは次のとおりです。
| 場所 | 内容 |
|---|---|
/etc/roundcube/config.inc.php |
自分で編集する設定ファイル |
/etc/roundcube/defaults.inc.php |
全項目の既定値と説明(編集しない) |
/etc/roundcube/debian-db.php |
データベースの接続情報(自動生成) |
/etc/roundcube/apache.conf |
Apache 用の設定。/etc/apache2/conf-enabled/roundcube.conf から読み込まれる |
/var/lib/roundcube/public_html |
Web に公開するディレクトリ |
/var/log/roundcube/ |
Roundcube のログ(errors.log など) |
データベースの作成を飛ばしてしまった場合や、設定をやり直したい場合は、次のコマンドで質問をもう一度表示できます。
sudo dpkg-reconfigure roundcube-core
手順 3: IMAP と SMTP の接続先を設定する
/etc/roundcube/config.inc.php を開きます。パッケージが入れた直後は、接続先が次のようになっています。
$config['imap_host'] = ["localhost:143"];
$config['smtp_host'] = 'localhost:587';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
smtp_user と smtp_pass の %u・%p は、Roundcube にログインしたときのユーザー名とパスワードで SMTP 認証する、という意味です。
接続先は、メールサーバーの証明書に入っているホスト名で、暗号化して接続する指定にしておくと、Roundcube を別のサーバーに移したときも同じ設定で使えます。
// IMAP は 993 番(接続時から TLS)、SMTP は 587 番(STARTTLS)
$config['imap_host'] = 'ssl://mail.example.com:993';
$config['smtp_host'] = 'tls://mail.example.com:587';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['product_name'] = 'Webメール';
$config['plugins'] = ['archive', 'zipdownload'];
ssl://は接続した時点から TLS、tls://は平文で接続してから STARTTLS で暗号化する指定です。- 接続先を IP アドレスにすると、証明書のホスト名と一致せず TLS の検証に失敗します。
imap_hostとsmtp_hostは 1.6 系の項目名です。古い解説にあるdefault_hostやsmtp_server、main.inc.phpという設定ファイルは、現在の版では使いません。des_key(ログイン中のパスワードを暗号化する鍵)は、パッケージがインストール時にランダムな値を書き込んでいます。変える必要はありません。
設定ファイルにはデータベースのパスワードなどが入るため、パッケージは所有者を root、グループを www-data、パーミッションを 640 にしています。このまま変えずに使います。
Roundcube は PHP のアプリケーションで、常駐するサービスはありません。設定ファイルの変更は、次にページを開いたときから反映されます。
手順 4: Apache で公開する
パッケージが置く /etc/roundcube/apache.conf では、/roundcube で公開する Alias の行がコメントになっています。公開のしかたは2通りです。
方法 A: Web メール専用のホスト名で公開する(おすすめ)
webmail.example.com のような専用のホスト名を用意し、ドキュメントルートを /var/lib/roundcube/public_html に向けます。設定ファイルやログのディレクトリが Web から見えない位置になります。
/etc/apache2/sites-available/webmail.conf を作ります。
<VirtualHost *:80>
ServerName webmail.example.com
DocumentRoot /var/lib/roundcube/public_html
ErrorLog ${APACHE_LOG_DIR}/webmail_error.log
CustomLog ${APACHE_LOG_DIR}/webmail_access.log combined
</VirtualHost>
有効にして、Let's Encrypt の証明書を取得します。certbot の Apache プラグインは、HTTPS 用の設定を追加し、HTTP から HTTPS への転送も設定できます。
sudo a2ensite webmail
sudo apache2ctl configtest
sudo systemctl reload apache2
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d webmail.example.com
ディレクトリへのアクセス許可や .htaccess を読む設定(AllowOverride All)は、/etc/roundcube/apache.conf にすでに書かれているので、仮想ホスト側に足す必要はありません。
方法 B: 既存のサイトの /roundcube で公開する
/etc/roundcube/apache.conf の次の行の先頭の # を外し、Apache を再読み込みします。
Alias /roundcube /var/lib/roundcube/public_html
sudo apache2ctl configtest
sudo systemctl reload apache2
この Alias は、そのサーバーのすべての仮想ホストに効きます。WordPress などのサイトと同じサーバーで動かしている場合、どのドメインでも /roundcube で Web メールが開く状態になるため、方法 A を選ぶ方が管理しやすくなります。
手順 5: ログインして確かめる
ブラウザーで https://webmail.example.com/(方法 B なら https://example.com/roundcube/)を開き、メールアドレス(または Dovecot に設定したユーザー名)とパスワードでログインします。次の3点を確かめます。
- 受信トレイが表示され、フォルダー(送信済み・ゴミ箱など)が開ける。
- 自分宛てにメールを送り、受信できる。
- 添付ファイル付きのメールを送れる。
コマンドで公開状態を確認する場合は、ログイン画面が 200、設定ファイルが 404 になることを見ます。
curl -s -o /dev/null -w "%{http_code}\n" https://webmail.example.com/
curl -s -o /dev/null -w "%{http_code}\n" https://webmail.example.com/config/config.inc.php
うまくいかないときの確認順
| 症状 | 見る場所 | よくある原因 |
|---|---|---|
| ログインできない | /var/log/roundcube/errors.log |
imap_host のホスト名が証明書と合わない、ポートの指定違い |
| ログインできない(接続はできている) | sudo journalctl -u dovecot |
ユーザー名の形式(user か user@example.com か)、パスワード違い |
| 送信できない | /var/log/roundcube/errors.log、/var/log/mail.log または journalctl -u postfix |
smtp_host の指定違い、SMTP 認証が通っていない |
| 画面が真っ白・500 エラー | /var/log/apache2/ のエラーログ |
PHP の拡張モジュールの不足、設定ファイルの書き間違い |
| 大きな添付を送れない | PHP の upload_max_filesize・post_max_size、Postfix の message_size_limit |
どれか1か所の上限が小さい |
設定ファイルの書き間違いは、PHP の構文チェックで見つけられます。
sudo php -l /etc/roundcube/config.inc.php
公開後の運用と安全対策
- 更新を続ける: Roundcube は Web に公開するログイン画面を持つため、過去には実際の攻撃に使われた脆弱性も報告されています。Debian・Ubuntu のパッケージで入れた場合は、
sudo apt update && sudo apt upgradeでセキュリティ修正が入り、データベースの表の更新も dbconfig-common が行います。自動更新(unattended-upgrades)を使うと適用漏れを減らせます。 - 総当たり対策: fail2ban には Roundcube 用の設定(
roundcube-auth)があり、Debian のパッケージではログの場所が/var/log/roundcube/errors.logに合わせてあります。/etc/fail2ban/jail.localに次のように書いて fail2ban を再起動すると、ログインの失敗を繰り返す IP アドレスを遮断できます。Dovecot と Postfix の認証失敗の遮断もあわせて行います。
[roundcube-auth]
enabled = true
- アクセス元の制限: 社内だけで使うなら、Apache の
Require ipや VPN で接続元を絞ると、攻撃を受ける範囲を大きく減らせます。 - WordPress と同じサーバーの場合: Roundcube は専用のホスト名(方法 A)で公開し、データベースも WordPress とは別にします(パッケージが作る
roundcubeデータベースとユーザーをそのまま使えば分かれます)。 - 定期処理: 古いセッションやキャッシュの削除は、パッケージが入れる systemd のタイマー(
roundcube-gc.timer、roundcube-cleandb.timer)が行います。自分で cron を足す必要はありません。
まとめ
- Debian・Ubuntu では
roundcubeパッケージで入れられます。先に MariaDB を起動しておくと、dbconfig-common がデータベースとユーザーを自動で作ります。 - 設定は
/etc/roundcube/config.inc.phpのimap_hostとsmtp_hostを、証明書のホスト名と暗号化の指定に合わせます。 - 公開は、ドキュメントルートを
/var/lib/roundcube/public_htmlに向けた専用のホスト名がおすすめです。 - Roundcube に常駐サービスは無く、更新は
aptで行います。fail2ban とアクセス元の制限で、ログイン画面への攻撃に備えます。
関連記事
- Roundcube で Web メールクライアントを構築する方法(Postfix+Dovecot に追加・安全な公開設定)
- Postfix+Dovecot で IMAP メールサーバーを構築する手順
- fail2ban で Postfix と Dovecot への不正アクセスを防ぐ方法
参考: Roundcube 公式サイト、Roundcube の設定項目(GitHub Wiki)、Debian の roundcube パッケージ