ウェブサイト検索

Arch Linuxで「NginxとApache」を使ってRainLoop Webmail(ウェブベースのメールクライアント)をインストールする


Rainloopは、PHPで書かれた無料のオープンソースのウェブアプリケーションで、Yahoo、Gmail、Outlookなどの主要なドメインメールプロバイダーや、自分のローカルメールサーバーにアクセスするための高速でモダンなウェブインターフェースを提供します。また、IMAPおよびSMTPプロトコルを介してドメインメールサーバーにアクセスすることによってMUA(メールユーザーエージェント)としても機能します。

RainLoop デモ

著者が設定したデモページをhttp://demo.rainloop.net/でざっと見てみてください。

Rainloopをサーバーにデプロイしたら、残る唯一の作業は、ウェブブラウザを通じてRainloopドメインにアクセスし、有効なドメインのメールサーバーの認証情報を提供することです。

このチュートリアルでは、DNSサーバーなしでローカルホストファイルを通じて設定された仮想ローカルドメインを使用し、ApacheとNginxの両方の観点からのRainloopウェブメールのインストールプロセスをカバーします。

DebianおよびRed HatシステムにRainloopをインストールするための参考が必要な場合は、以前のRainLoop Webmail記事をご覧ください。

  1. DebianおよびRed HatベースのシステムにRainLoop Webmailをインストールする

要件

Nginx用
  1. Arch LinuxにLEMP(Nginx、PHP、MariaDBエンジンを使用したMySQLおよびPhpMyAdmin)をインストールする
  2. Nginxウェブサーバーでバーチャルホストを作成する
アパッチのために
  1. Arch LinuxにLAMP(Linux、Apache、MySQL/MariaDB、PHP/PhpMyAdmin)をインストールする

ステップ1: NginxまたはApacheの仮想ホストを作成する

1. 上記のプレゼンテーションリンクで説明されているように、サーバー(Nginx または Apache)を設定したと仮定すると、最初に行うべきことは、Arch Linux システムのIPアドレスを指す基本的なDNSエントリをローカルのhostsファイルに作成することです。

Linux システムで /etc/hosts ファイルを編集し、localhost エントリの後に Rainloop の仮想ドメインを含めます。

127.0.0.1	localhost.localdomain  localhost     rainloop.lan
192.168.1.33	rainloop.lan

Windowsシステムでは、C:\Windows\System32\drivers\etc\hostsを編集し、最後に次の行を追加します。

192.168.1.33       rainloop.lan

2. ping コマンドを使用してローカルドメインを確認したら、必要なバーチャルホストとSSLの設定をApacheまたはNginxのために作成します。

Nginx 仮想ホスト

/etc/nginx/sites-available/パスにrainloop.lanという名前のファイルを作成し、次の設定を記入してください。

$ sudo nano /etc/nginx/sites-available/rainloop.conf

以下のファイル内容を追加してください。

server {
    listen 80;
    server_name rainloop.lan;

    rewrite        ^ https://$server_name$request_uri? permanent;
    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;
    root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
     root    /srv/www/rainloop/;
     expires 30d;
    }

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

 location ^~ /data {
  deny all;
}

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

次に、SSL等価のファイル内容を作成します。

$ sudo nano /etc/nginx/sites-available/rainloop-ssl.conf

以下のファイル内容を追加してください。

server {
    listen 443 ssl;
    server_name rainloop.lan;

       ssl_certificate     /etc/nginx/ssl/rainloop.lan.crt;
       ssl_certificate_key  /etc/nginx/ssl/rainloop.lan.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;

   root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
      root    /srv/www/rainloop/;
      expires 30d;
    }

location ^~ /data {
  deny all;
}

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

次のステップでは、SSLバーチャルホストのための証明書ファイルとキーを生成し、証明書のコモンネームにあなたのバーチャルドメイン名(rainloop.lan)を追加してください。

$ sudo nginx_gen_ssl.sh

証明書とSSLキーが生成された後、Rainloopのルートウェブサーバーファイルパス(RainloopのPHPファイルが存在する場所)を作成し、バーチャルホストを有効にしてNginxデーモンを再起動して設定を適用します。

$ sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx

Apache バーチャルホスト

/etc/httpd/conf/sites-available/にrainloop.confという名前の新しいファイルを作成し、次の内容を記入してください。

$ sudo nano /etc/httpd/conf/sites-available/rainloop.conf

以下のファイル内容を追加してください。

<VirtualHost *:80>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/rainloop-error_log"
                TransferLog "/var/log/httpd/rainloop-access_log"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

次に、Apache用のSSL相当のファイル内容を作成します。

$ sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf

以下のファイル内容を追加してください。

<VirtualHost *:443>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/rainloop-ssl-error_log"
                TransferLog "/var/log/httpd/rainloop-ssl-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/rainloop.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/rainloop.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

次のステップは、SSL証明書ファイルとキーを作成し、SSL仮想ホスト用のCommon Nameに仮想ドメイン名(rainloop.lan)を追加することです。

$ sudo apache_gen_ssl

証明書とSSLキーが作成された後、RainloopのDocumentRootパスを追加し、バーチャルホストを有効にしてApacheデーモンを再起動して設定を適用します。

$ sudo mkdir -p /srv/www/rainloop
sudo a2ensite rainloop
sudo a2ensite rainloop-ssl
sudo systemctl restart httpd

ステップ2:必要なPHP拡張を追加します

3. あなたが Apache または Nginx ウェブサーバーを使用しているかどうかにかかわらず、php.ini ファイルで以下の PHP 拡張を有効にし、新しいウェブサーバーの DocumentRoot パスを open_basedir ディレクティブに含める必要があります。

$ sudo nano /etc/php/php.ini

次のPHP拡張機能を見つけてコメントを解除します。

extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( enables IMAPS and SMTP SSL protocols on mail servers)
extension=pdo_mysql.so

また、open_basedirの文はこのように見えるべきです。

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

4. php.ini ファイルを修正した後、サーバーを再起動し、phpinfo ファイルを確認して SSL プロトコルが有効になっているか確認してください。

----------On Apache Web Server----------
sudo systemctl restart httpd
----------On Nginx Web Server----------
sudo systemctl restart nginx
sudo systemctl restart php-fpm

ステップ3: RainLoopウェブメールをダウンロードしてインストールする

5. さて、公式ウェブサイトからRainloopアプリケーションをダウンロードしてDocument Rootディレクトリに展開する時間ですが、まずはwgetとunzipのシステムユーティリティをインストールしてください。

$ sudo pacman -S unzip wget

6. 最新のソースパッケージのRainloop zipアーカイブをwgetコマンドを使用するか、ブラウザを使ってhttp://rainloop.net/downloads/にアクセスしてダウンロードしてください。

$ wget http://repository.rainloop.net/v1/rainloop-latest.zip

7. ダウンロードプロセスが完了したら、Rainloopアーカイブを仮想ホストのドキュメントルートパス(/srv/www/rainloop/)に展開します。

$ sudo unzip rainloop-latest.zip -d  /srv/www/rainloop/

8. 次に、アプリケーションのデフォルトパスに以下の権限を設定します。

$ sudo chmod -R 755 /srv/www/rainloop/
sudo chown -R http:http /srv/www/rainloop/

ステップ4: Webインターフェースを介してRainloopを設定する

9. Rainloopアプリケーションは、システムシェルを使用するか、ブラウザを介して設定できます。ターミナルから設定したい場合は、/srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/にあるapplication.iniファイルを開いて編集してください。

10. ブラウザから管理インターフェイスにアクセスするには、次のURLアドレス https://rainloop.lan/?admin を使用し、次にデフォルトのアプリケーションクレデンシャルを提供してください。

User= admin
Password= 12345

11. 初回ログイン後、デフォルトのパスワードを変更するよう警告されますので、変更することをお勧めします。

12. MySQLデータベースにContactsログインを有効にして、特権ユーザーで新しいデータベースを作成したい場合は、Contactsフィールドにデータベースの資格情報を提供してください。

mysql -u root -p
create database if not exists rainloop;
create user rainloop_user@localhost identified by “password”;
grant all privileges on rainloop.* to rainloop_user@localhost;
flush privileges;
exit;

13. デフォルトでは、RainloopはGmail、Yahoo、およびOutlookドメインのメールサーバー構成ファイルを提供しますが、必要に応じて他のメールサーバードメインを追加することができます。

14. メールサーバーにログインするには、ブラウザを https://rainloop.lan にポイントし、ドメインサーバーの資格情報を提供してください。

さらなる設定については、公式のRainloopドキュメントページ(http://rainloop.net/docs/)を訪れてください。

Rainloopを使用すれば、サーバーがインターネットに接続されている限り、ブラウザを持っている任意のデバイスからメールサーバーにアクセスできます。Arch LinuxでRainloopアプリケーションを使用する際の唯一の欠点は、メールアカウントのパスワードを変更するために必要なpoppassdプラグインパッケージがないことです。

関連記事: