Roundcubeは、オープンソースのIMAPブラウザベースの電子メールクライアントです。ACLのサポートや、AJAX(Asynchronous JavaScript and XML)技術の活用により人気を博しています。電子メール管理や、MIMEサポート、フォルダ操作など、優れた機能とエンドツーエンドの機能を備えています。さらに、Roundcubeはメッセージ検索、スペルチェック、カレンダー、連絡先管理をシームレスに提供します。何よりも、他の一般的なブラウザベースのクライアントと比較して、堅牢なプラグインリポジトリと追加のカスタマイズオプションを備えています。
RoundcubeはMUAです。MTAとは異なり、メールサーバーなどを使用してメールを管理するサービスが必要になります。お好みのメールサーバーを追加するには、当社のメールサーバー設定チュートリアルをご覧ください。
メールを送信すると、MUAはSMTPを使用してMTAサーバーにメールを転送します。いくつかのホップを経て、受信側のMTAがメールを受信し、IMAPを使用してMDAに転送します。最後に、受信者はMUAを使用してメールを表示します。
これらの用語を理解しましょう:
- MUA:メールユーザーエージェント(Mail User Agent)は、ユーザーがメールを表示および送信するためのインターフェースです。
- MTA:メール転送エージェント(Mail Transfer Agent)は、送信者から受信者へメールを転送します。
- SMTP:Simple Mail Transfer Protocolは、MUAがMTAにメールを送信するために使用するプロトコルです。
- MDA:メール配信エージェント(Mail Delivery Agent)は、MTAから送信されたすべてのメールを受信して保存します。
- IMAP:Internet Message Access Protocolは、MDAがMUAにメールを配信するために使用するプロトコルです。
このチュートリアルでは、Ubuntu 20.04にRoundcubeを使用したウェブメールクライアントをインストールする手順を説明します。.
始めましょう!
前提条件
このチュートリアルを進めるには、以下が必要です:
- 最新バージョンのUbuntuがインストールされていること(システム上)。
- システムユーザーはsudo権限とファイアウォールを持っている必要があります。.
- さらに、iptables を利用してファイアウォールを設定することもできます。
- LAMPスタック。
- 設定については、LAMPスタックのセットアップ方法を参照してください。
- IMAPベースのメールサーバー。
ステップ 1: 拡張機能と依存関係のインストール
開始する前に、ソフトウェアの衝突を避けるためにリポジトリを更新しましょう:
|
1 |
sudo apt update |
次に、Roundcubeの依存関係をインストールし、PHPを設定します。以下のコマンドを使用して、PHPの拡張機能とライブラリをインストールします:
|
1 |
sudo apt-get install php-xml php-mbstring php-intl php-zip php-pear zip unzip git composer |
デフォルトでは、いくつかのPHPライブラリが無効になっています。それらのライブラリを有効にするには、サーバーの php.iniファイル(パス: /etc/php/7.0/apache2/php.ini)を編集する必要があります。nanoテキストエディタを使用して、 php.iniファイルを開きます:
|
1 |
sudo nano /etc/php/7.0/apache2/php.ini |
ハッシュタグ( #)で始まる一般的なコメントアウトのオプションとは異なり、行をコメントアウトまたはコメント解除するにはセミコロン( ;)を使用します。行をコメントアウトするには先頭にセミコロンを追加します。同様に、コメントを解除するにはセミコロンを削除します。
まずは、 extension=で始まるコメント行のあるセクションを見てみましょう。セミコロンを削除して、 php_mbstring.dllおよび php_xmlrpc.dll拡張機能のコメントを解除します:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
. . . ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll ;extension=php_exif.dll ; Must be after mbstring as it depends on it ;extension=php_mysqli.dll . . . ;extension=php_sqlite3.dll ;extension=php_tidy.dll extension=php_xmlrpc.dll ;extension=php_xsl.dll . . . |
さらに、拡張機能ブロックの末尾に extension=dom.soを追加します:
|
1 2 3 4 5 |
. . . extension=php_xmlrpc.dll ;拡張機能=php_xsl.dll 拡張機能=dom.so . . . |
- ファイルの変更:
- 以下を変更します: date.timezone:
設定オプションに移動し、以下に移動します: date.timezone、そしてコメントアウトを解除します。次に、引用符を使用してタイムゾーンを追加します。以下を確認してください:PHPのタイムゾーンページ で、フォーマットされたタイムゾーンが php.ini ファイルでどのように表示されるかを確認してください。たとえば、ヨーロッパにお住まいの場合、ファイルは次のようになります。
|
1 2 3 4 5 6 |
. . . [Date] ; 定義します the デフォルトの タイムゾーン 使用される 〜によって the 日付 関数 ; http://php.net/date.timezone date.timezone = "Europe/Moscow" . . . |
-
- 以下を変更します: upload_max_filesize ファイル:
次に、以下に移動します: upload_max_filesize 設定。デフォルトでは、上限が2MBに設定されています。必要に応じて、最大ファイルサイズを任意に増やすことができます。ただし、ほとんどのメールサーバーは添付ファイルの総容量を最大10MBに制限しています。このガイドでは、複数のユーザーが同時に添付ファイルを追加できるように、最大サイズを13MBに設定します。
|
1 2 3 4 5 |
. . . ; 最大 許容される サイズ 〜用 アップロードされた ファイル. ; http://php.net/upload-max-filesize upload_max_filesize = 13M . . . |
-
- 以下を変更します: post_max_size ファイル:
次に、以下を検索します: post_max_size。添付ファイルに適用される upload_max_filesize 設定とは異なり、 post_max_size はメール全体のサイズ(添付ファイルを含む)に適用されます。デッドロックを防ぐために、 post_max_size をより高い値に設定しましょう:
|
1 2 3 4 5 6 7 |
. . . ; 最大 サイズ の POST データ that PHP が 受け入れる. ; その 値 〜の場合があります である 0 〜するために 無効にする the 制限. それ は 無視されます もし POST データ 読み込み ; が 無効になっている 〜を通じて enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 20M . . . |
-
- 以下を設定します: func_overload 値:
最後に、以下を探します: mbstring.func_overload = 0 のコメントアウトを解除します。また、マルチバイト文字列関数をサポートするために、その値が null に設定されていることを確認してください。
|
1 2 3 4 |
. . . . . . mbstring.func_overload = 0 . . . |
すべての変更を保存してファイルを閉じます。サーバーは LAMP スタック、Roundcube の依存関係、および必要な PHP 設定でセットアップされました。次のステップでは、Roundcube ソフトウェアをダウンロード、インストール、および設定します。
ステップ 2: Roundcube のダウンロード
Roundcube の ダウンロードページ に移動し、安定版(Stable version) セクションを選択して、完全パッケージ(Complete package) を探します。次に、ダウンロード ボタンを右クリックして、 リンクのアドレスをコピー を選択します。そのアドレスを wget と共に使用して、サーバーに Roundcube の tarball をダウンロードします:
|
1 |
wget https://github.com/roundcube/roundcubemail/releases/download/1.5.2/roundcubemail-1.5.2-complete.tar.gz |
その後、Roundcube アーカイブを解凍する必要があります:
|
1 |
wget tar -xvzf roundcubemail-1.5.2-complete.tar.gz |
使用されている引数は、分かりにくく感じるかもしれません(特に完全に初心者である場合)。各フラグの意味は以下の通りです:
- x: 抽出(extract)を表します。
-
v: 詳細表示(verbose)を表します。
- tar に対し、抽出されたファイルのパスと名前を出力するように指示します。
-
z: tar に対し、
tar ラッパーを削除し、gzip を使用してアーカイブを解凍するように指示します。
- 圧縮された gzip ファイルの拡張子の末尾には .gz が付きます。
- f: ファイル(file)を表します。
末尾の / は、ディレクトリの中身だけでなく、ディレクトリ全体を移動して名前を変更するためです。それでは、解凍したディレクトリを /var/www に移動し、名前を roundcube:
|
1 |
sudo mv roundcubemail-1.5.2 /var/www/roundcube |
Apacheが設定ファイルとログファイルを作成および編集できるように権限を設定します。次に、所有者とグループをwww-dataに変更します。また、所有者とグループに対して読み取りおよび書き込み権限が許可されていることを確認してください:
|
1 |
sudo chown -R www-data:www-data /var/www/roundcube/ |
|
1 |
sudo chmod 775 /var/www/roundcube/temp/ /var/www/roundcube/logs/ |
Roundcubeのコードをダウンロードし、必要な権限を設定しましたが、インストールはまだ完了していません。RoundcubeのGUIを介してデータベースに接続する作業が残っています。さらに進める前に、Apacheとその設定を更新して、Roundcubeのベースの場所を通知する必要があります。
ステップ 3: Apacheのセットアップと設定
このステップでは、バーチャルホストファイルを編集してApacheを設定します。これには Apache virtual hosting を使用します。これにより、単一のサーバー上で複数のサイトをホストできます。Apacheが単一のサイトをホストしている場合でも、Apacheの設定を直接編集するよりも、バーチャルホスト設定ファイルを使用する方が整理されていて簡単です。セキュリティをさらに強化するために、securing Apache with Let’s Encrypt.
することを検討してください。各 .conf ファイル( /etc/apache2/sites-available/内)は、それぞれ異なるサイトを表します。ここにRoundcube用のバーチャルホストファイルを作成し、ブラウザから利用できるようにApacheに通知しましょう。
まず、デフォルトの設定ファイルをコピーして、新しいファイルのベースとして使用します:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/roundcube.conf |
次のコマンドを使用して、nano テキストエディタでファイルを開きます:
|
1 |
sudo nano /etc/apache2/sites-available/roundcube.conf |
変更する必要がある箇所がいくつかあります。それぞれを順に説明した後に、コピー&ペーストできるファイル全体を提供します。
まず、既存の VirtualBlock ホスト内の以下のディレクティブを変更します:
-
ServerName: Apacheにドメインを選択するように通知します。
- 1つのサーバーを使用している場合、この ServerName はサーバーのIPアドレスまたはドメイン名になります。
-
DocumentRoot: トラフィックが流入したときに、それをどこに送信するかをルーティングします。
- このチュートリアルでは、トラフィックを次の場所にあるRoundcubeに送信します: /var/www/roundcube.
- ServerAdmin: Apacheで問題が発生した場合に、連絡先メールアドレスを指定します。
-
ErrorLog および CustomLog: このサイトの接続成功ログとエラーログを保存する場所を定義します。
- サイトに特有の問題が発生した場合に簡単に検出できるように、エラーログを定義する際は具体的な名前を使用してください。
次に、ApacheにRoundcubeディレクトリの処理方法を指示する新しい Directory ブロックを追加します。 Directory は2つの単語で構成され、各行の最初の単語が設定名で、その後に実際の設定オプションが続きます。
- Options -Indexes: index.html または index.php ファイルが見つからない場合に警告を表示するようApacheに通知します。デフォルトでは、ディレクトリの内容が表示されます。
- AllowOverride All: ローカルの .htaccess ファイルが検出された場合、グローバル設定を上書きする必要があることをApacheに通知します。
- Order allow,deny: クライアントのサイトへのアクセスを照合し、一致しないアクセスを拒否するようApacheに指示します。
- allow from all: 許可されるクライアントのタイプを定義します。
これらの変更を行うと、ファイルは以下のようになります:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<VirtualHost *:80> ServerName your_server_ip_or_domain DocumentRoot /var/www/roundcube ServerAdmin paul@demo.com ErrorLog ${APACHE_LOG_DIR}/roundcube-error.log CustomLog ${APACHE_LOG_DIR}/roundcube-access.log combined <Directory /var/www/roundcube> Options -Indexes AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> |
すべての変更を保存してファイルを閉じます。次に、Apacheにデフォルトサイトのホスティングを停止するように要求します:
|
1 |
sudo a2dissite 000-default |
その後、代わりにRoundcubeサイトのホスティングを開始するようにApacheに指示します。サイトを有効にするときは、拡張子の .conf を含めないでください。なぜなら、 a2ensite は拡張子のないファイル名を必要とするためです:
|
1 |
sudo a2ensite roundcube |
次に、ON にしてください。対象の mod_rewrite Apacheモジュール:
|
1 |
sudo a2enmod rewrite |
最後に、Apacheを再起動してRoundcubeのインストール画面にアクセスできるようにします:
|
1 |
sudo apache2ctl restart |
最後のステップでは、Roundcubeがアプリ固有のデータを保存および管理できるように、データベースを設定する必要があります。
ステップ 4: MySQLのセットアップと設定
IPアドレスまたはドメイン名を使用してサーバーにアクセスしてみてください。ページに設定エラーが表示されます。ここで、Roundcubeは設定セットアップ中に生成されたファイルをチェックしますが、設定セットアップが不完全です。設定を行う前に、データベースを準備しましょう。
- MySQLへの接続:ユーザー名とパスワードを使用して、MySQLの対話型シェルに接続しましょう:
上記のコマンドを実行すると、MySQLのインストール時に作成したrootパスワードでの認証を求められます。1mysql -u root -p - データベースとユーザーの作成:ログインに成功したので、データベースとデータベースユーザーを作成しましょう。その後、新しいデータベースでコマンドを実行するためのユーザー権限を許可します。
- データベースの作成:次のコマンドを使用して、
roundcubemailという名前のデータベースを作成します。次に、使用する文字セットなどのデータベースオプションを指定します:
utf8:
MySQLは堅牢なセキュリティと高度な安全性を提供します。ユーザーを名前と接続元で定義します。上記のコマンドは、roundcubeというユーザーを作成し、接続元を localhost.1mysql> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; - データベースの作成:ユーザーを作成し、パスワードを設定しましょう:
1mysql> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password'; - 権限の設定:roundcubeユーザーに、
roundcubemail データベースとテーブルに対するすべての権限を許可します:
変更を保存し、MySQLの対話型シェルから終了します:1mysql> GRANT ALL PRIVILEGES ON roundcubemail.* to 'roundcube'@'localhost';
12mysql> FLUSH PRIVILEGES;mysql> EXIT;
次のステップは、Roundcubeがすべての情報を保存するのに役立つデータベース構造をセットアップすることです。Roundcubeにはデータを自動的にセットアップするデータベースファイルが付属しているため、手動で設定する手間が省けます。
次のコマンドを使用すると、MySQLは新しく作成したユーザーを使用して、ファイル /var/www/roundcube/SQL/mysql.initial.sqlを読み込みます。また、その設定をデータベース roundcubemail:
|
1 |
mysql -u roundcube -p roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql |
ここで、roundcubeユーザーのパスワードの入力を求められます。データベースのセットアップにより、Roundcubeを使用する準備が整い、適切な権限を確認できます。すべてのステップが正常に完了した場合、フィードバックは表示されず、コマンドプロンプトに戻ります。次のステップでは、Roundcubeにメール設定を伝え、インストールを完了します。
ステップ 5: Roundcubeのセットアップと設定
今すぐRoundcubeのインストール先にアクセスしようとすると、エラーページが表示されます。インストールを完了するには、http://your_server_ip_or_domain/installer にアクセスしてください。
セットアップが正しく行われると、緑色の OKがすべてのラインアイテムの右側に表示されます。ただし、MySQLのオプションのLDAP設定では緑色のOKが表示されない場合があります。もしメッセージNOT AVAILABLEが他の行の横に表示されている場合は、これらの利用不可能な依存関係をインストールする必要があります。依存関係のダウンロードを忘れた場合は、URLにアクセスしてすぐにダウンロードできます。
セットアップが完了したら、下にスクロールしてNEXTボタンをクリックします。Roundcubeの設定ファイルの生成手順を進めましょう。変更する必要があるフォームの部分を確認してください。
- 一般設定
一般設定セクションでは、いくつかのカスタマイズと一般的な設定を変更します:
- ip_check: セキュリティ設定オプションであり、セッション認証でクライアントのIPを検証します。
- product_name: 製品名を自由に変更します。この名前はテキスト内の「Roundcube」にマッピングされ、代わりにこの名前に置き換えられます。
- support_url: Roundcubeインストールにおけるサポート。専用のヘルプデスクサイトがない場合は、walker:paul@demo.com のようなメールアドレスを使用することをお勧めします。
- skin_logo: Roundcubeのロゴを以下に置き換えます。 skin_logo。HTTPSを有効にするには、HTTPSの画像URL(178px × 47px)を選択してください。
その他の設定はデフォルト値のままにしておきます。
- Logging & Debugging: デフォルトのオプションのまま進めましょう。
- データベースの設定: メールを直接使用する代わりに、RoundcubeはWebクライアントを実行するための情報を保存するためにMySQLを使用します。ここでは、Step 4で設定したデータベースにアクセスするようRoundcubeに指示する必要があります。以前に作成したデータベースの資格情報を使用してください。
- データベース: MySQL
- サーバー: localhost
- データベース名: roundcubemail
- ユーザー: roundcube
- パスワード:
demo12345@
- 次のステップで設定した、定義済みのパスワードを使用してください:Step 4.
- Db_prefix: 他のアプリとデータベースを共有している場合を除き、これはオプションです。
- IMAPの変更: メールサーバーのIMAPおよびSMTP設定を行いましょう。このチュートリアルではGmailを例として使用するため、IMAP設定にはGmailの設定を使用します。ただし、YahooやOutlookなどの他のサービスプロバイダーを選択する場合は、それぞれの設定を使用する必要があります。多くのメールプロバイダーは、暗号化ありまたはなしの接続をサポートしています。安全でない接続の使用を避けるため、SSL IMAP/SMTPのURLとポートを標準的に使用してください。
- default_host: ssl://imap.gmail.com
- default_port: 993
- auto_create_user:
Yes ☑
- このチェックが外れている場合、Roundcubeは独自のデータベースにユーザーを作成せず、ログインできなくなります。
- *_mbox フィールド: デフォルト値のままにしておきます。
- これは後でRoundcubeのUIで更新できます。
- SMTPの変更: SMTP serverは、メールの送信に使用されるメールの不可欠な部分です。IMAPサーバーのセクションと同様に、SSLのURLとポートを使用します。SMTPサーバーの使用経験がない場合は、SMTP best practicesに従って、これらのサーバーについて詳しく学んでください。ここではGmailを例として使用しています。
- smtp_server フィールド: ssl://smtp.gmail.com
- smtp_port フィールド: 465
- SMTP and IMAPは2つの異なるサービスであるため、両方にユーザー名とパスワードが必要です。ただし、RoundcubeではIMAPの資格情報を使用できるため、再作成する必要はありません。以下のフィールドは空欄のままにしておき、 smtp_user/smtp_passを空欄にし、「Use the current IMAP username and password for SMTP authentication」の横のチェックボックスをオンにします。
- smtp_log: Yes ☑
- 表示設定 & ユーザー設定の変更: デフォルトの表示設定とユーザー設定のまま進めましょう。Roundcubeのインストールをカスタマイズする場合は、RFC1766リンクを設定ページでクリックし、languageフィールドを手動で更新してください。
- プラグイン: Roundcubeは、セキュリティを強化するプラグインのサポートを提供しています。プラグインはオプションですが、活用することで作業を容易にすることができます。最もよく使われているプラグインのリストを見てみましょう。
- archive: このプラグインは、Archiveボタンを提供します。これはGmailの動作に似ています。
- emoticons: これにより、メールで絵文字を使用できるようになります。
- enigma: GPGメール暗号化を簡単に使用できるようにします。
- filesystem_attachments: 下書きメールを保存する際に、添付ファイルを一時的にRoundcubeサーバーに保存できるようにします。
- hide_blockquote: このプラグインは、UIをすっきりと保つために、返信メールの引用部分を非表示にします。
- identity_select: メール作成時に、ユーザーが複数のメールアドレスを選択できるようにします。
- markasjunk: このプラグインは、メールを迷惑メールとしてマークし、迷惑メールフォルダに移動できるようにします。
- newmail_notifier: ブラウザの通知システムを使用して、新しいメールを通知します。
設定を保存するには、UPDATE CONFIG ボタンをクリックします。最後のステップでは、Roundcubeの設定をテストして、すべてが正常に動作していることを確認します。
ステップ6: Roundcubeのセットアップをテストする
設定を更新すると、ページが更新され、ページ上部に次のような黄色の情報ボックスが表示されます。「設定ファイルは正常に保存されました: RCMAIL_CONFIG_DIR ディレクトリ(Roundcubeのインストール先)」
次に、CONTINUE ボタンをクリックして設定をテストします。依存関係チェックページと同様に、エラーがなければ各行に緑色の OK マークが表示されます。エラーが表示された場合は、戻って入力を再確認してください。
残りの設定をテストするには、それぞれ Test SMTP config および Test IMAP config セクションにIMAPおよびSMTPのユーザー名とパスワードを入力します。同様に、Send test email と Check login をクリックします。すべての手順を正しく実行していれば、ページが更新され、テストされたセクションの下に緑色の OK が表示されます。
SMTPとIMAPの両方の接続が正常に動作していることを確認したら、次のステップとして、SSH を使用してインストーラーディレクトリを削除します。インストーラーディレクトリを削除することは、他人が新しい設定を生成して正しい設定を上書きするのを防ぐための安全な方法です。
|
1 |
sudo rm -rf /var/www/roundcube/installer/ |
最後に、サーバーのIPを使用してRoundcubeインスタンスにアクセスし、メールを確認できます。
まとめ
このチュートリアルでは、Ubuntu 20.04上でRoundcubeを使用してウェブメールクライアントをインストールする方法を学びました。上記で説明した手順に加えて、HTTPSサポートやGPG暗号化など、追加を検討すべき他のセキュリティオプションもあります。責任を持ってサーバーを保護するために、以下を導入してください:強固なセキュリティ対策.
さらに、RedisやPHPに関する他の多くの学習資料には、当社のブログからアクセスできます。:
- Ubuntu 18.04にRedisをインストールしてセキュリティを確保する方法
- Ubuntu 20.04にphpBBをインストールする方法
- Ubuntu 18.04にphpMyAdminをインストールしてセキュリティを確保する方法
- Ubuntu 18.04を使用してKubernetesクラスターにPHPアプリケーションをデプロイする
快適なコンピューティングを!
コメント
コメントはまだありません。最初のコメントを投稿しましょう。