1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSD 14.3でRoundcubeメールクライアントをインストールする

Posted at

Roundcubeは、Webベースのメールクライアントとして広く使用されているオープンソースソフトウェアです。 
FreeBSD 14.3環境でRoundcubeを構築することがありましたので手順など参照したものを記録しておきます。

前提条件

  • FreeBSD 14.3がインストール済み
  • root権限またはsudo権限を持つユーザー
  • インターネット接続が利用可能
  • 基本的なUNIXコマンドの知識

システム要件

Roundcubeを動作させるために以下のコンポーネントが必要です:

  • Webサーバー(Apache HTTP Server または Nginx)
  • PHP 7.4以上(推奨:PHP 8.1以上)
  • データベースサーバー(MySQL、PostgreSQL、SQLite)

Step 1: システムの更新

まず、FreeBSDシステムを最新の状態に更新します。

# パッケージデータベースの更新
pkg update

# システムパッケージの更新
pkg upgrade

Step 2: 必要なパッケージのインストール

Webサーバー(Apache)とPHPのインストール

# Apache HTTP Serverのインストール
pkg install apache24

# PHP 8.1とモジュールのインストール
pkg install php81 php81-extensions php81-mbstring php81-intl php81-zip \
            php81-json php81-xml php81-curl php81-gd php81-ldap \
            php81-pdo php81-pdo_mysql php81-session php81-filter \
            php81-iconv php81-openssl php81-ctype php81-fileinfo

# mod_php81のインストール
pkg install mod_php81

データベースサーバー(MySQL)のインストール

# MySQL 8.0のインストール
pkg install mysql80-server mysql80-client

Step 3: サービスの有効化と起動

# 起動時の自動実行を有効化
sysrc apache24_enable="YES"
sysrc mysql_enable="YES"

# サービスの開始
service apache24 start
service mysql-server start

Step 4: MySQLの初期設定

# MySQL Secure Installationの実行
mysql_secure_installation

設定内容:

  • rootパスワードの設定
  • 匿名ユーザーの削除
  • リモートrootログインの無効化
  • testデータベースの削除

Roundcube用データベースとユーザーの作成

mysql -u root -p

MySQL内で以下のコマンドを実行:

CREATE DATABASE roundcube CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'your_password_here';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Step 5: Apacheの設定

PHPモジュールの有効化

/usr/local/etc/apache24/httpd.confを編集:

# PHP関連の設定を追加
LoadModule php_module libexec/apache24/libphp.so

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Virtual Hostの設定

/usr/local/etc/apache24/Includes/roundcube.confを作成:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /usr/local/www/roundcube
    
    <Directory /usr/local/www/roundcube>
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/apache24/roundcube_error.log
    CustomLog /var/log/apache24/roundcube_access.log combined
</VirtualHost>

Apacheを再起動:

service apache24 restart

Step 6: Roundcubeのダウンロードとインストール

# 作業ディレクトリの作成
cd /tmp

# 最新版のRoundcubeをダウンロード
fetch https://github.com/roundcube/roundcubemail/releases/download/1.6.5/roundcubemail-1.6.5-complete.tar.gz

# 展開
tar -xzf roundcubemail-1.6.5-complete.tar.gz

# Webディレクトリに移動
mv roundcubemail-1.6.5 /usr/local/www/roundcube

# 所有者とパーミッションの設定
chown -R www:www /usr/local/www/roundcube
chmod -R 755 /usr/local/www/roundcube

Step 7: Roundcubeの設定

ディレクトリの作成と権限設定

cd /usr/local/www/roundcube

# 必要なディレクトリの作成
mkdir temp logs

# 権限の設定
chmod 777 temp logs
chown www:www temp logs

データベーススキーマの初期化

mysql -u roundcube -p roundcube < SQL/mysql.initial.sql

設定ファイルの作成

config/config.inc.phpを作成:

<?php
$config = [];

// データベース設定
$config['db_dsnw'] = 'mysql://roundcube:your_password_here@localhost/roundcube';

// IMAP設定
$config['default_host'] = 'localhost';
$config['default_port'] = 143;

// SMTP設定
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 587;

// セキュリティ設定
$config['des_key'] = 'your_24_character_des_key_here';

// 言語設定
$config['language'] = 'ja_JP';

// プラグイン
$config['plugins'] = ['archive', 'zipdownload'];

// その他の設定
$config['product_name'] = 'Roundcube Webmail';
$config['useragent'] = 'Roundcube Webmail/1.6.5';
?>

Step 8: PHPの設定調整

/usr/local/etc/php.iniを編集し、以下の値を調整:

post_max_size = 100M
upload_max_filesize = 100M
max_execution_time = 300
memory_limit = 256M
date.timezone = Asia/Tokyo

PHPとApacheを再起動:

service apache24 restart

Step 9: Webインストーラーによる設定確認

ブラウザでhttp://your-domain.com/installer/にアクセスし、インストーラーを使用して設定を確認します。

インストーラーで確認する項目:

  • PHP設定の確認
  • データベース接続テスト
  • IMAP/SMTP接続テスト
  • 設定ファイルの生成

Step 10: セキュリティ設定

インストーラーの削除

rm -rf /usr/local/www/roundcube/installer

.htaccessファイルによるアクセス制限

/usr/local/www/roundcube/.htaccessを作成:

# セキュリティヘッダー
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"

# 特定ディレクトリへのアクセス制限
<FilesMatch "\.(inc|conf)$">
    Require all denied
</FilesMatch>

<DirectoryMatch "/(config|temp|logs)/">
    Require all denied
</DirectoryMatch>

Step 11: ログローテーションの設定

/etc/newsyslog.confにRoundcubeのログローテーション設定を追加:

/usr/local/www/roundcube/logs/errors.log    www:www    644  7  1000  *  Z
/usr/local/www/roundcube/logs/userlogins    www:www    644  7  1000  *  Z

Step 12: 定期メンテナンスの設定

cronジョブでログとセッションファイルの清掃を設定:

crontab -e

以下の行を追加:

# Roundcubeメンテナンス(毎日深夜2時)
0 2 * * * /usr/local/bin/php /usr/local/www/roundcube/bin/cleandb.sh >/dev/null 2>&1

トラブルシューティング

よくある問題と解決方法

問題1: データベース接続エラー

  • 解決策: データベース認証情報とホスト設定を確認

問題2: PHPエラーが表示される

  • 解決策: PHPの必要なモジュールがインストールされているか確認

問題3: メール送信ができない

  • 解決策: SMTP設定とファイアウォールを確認

問題4: 添付ファイルがアップロードできない

  • 解決策: PHPのアップロードサイズ制限を確認

ログファイルの確認

# Apacheエラーログ
tail -f /var/log/apache24/roundcube_error.log

# Roundcubeエラーログ
tail -f /usr/local/www/roundcube/logs/errors.log

まとめ

FreeBSD 14.3でRoundcubeメールクライアントを正常にインストールできました。重要な注意点として、現在のRoundcube 1.6系はPHP 8.4との互換性に問題があるため、PHP 8.3以下を使用することが必須です。

この構成により、Webベースでメールの送受信が可能になります。定期的なアップデートとメンテナンスを実行し、セキュリティを維持することが重要です。

今後の展望:

  • Roundcube 2.0系のリリースでPHP 8.4対応が予定されています
  • それまでは安定したPHP 8.3環境での運用を推奨します

運用開始後は、プラグインの追加やカスタマイズを行い、ユーザーのニーズに合わせてRoundcubeをカスタマイズできます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?