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記事をご覧ください。
- DebianおよびRed HatベースのシステムにRainLoop Webmailをインストールする
要件
Nginx用
- Arch LinuxにLEMP(Nginx、PHP、MariaDBエンジンを使用したMySQLおよびPhpMyAdmin)をインストールする
- Nginxウェブサーバーでバーチャルホストを作成する
アパッチのために
- 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.lanWindowsシステムでは、C:\Windows\System32\drivers\etc\hostsを編集し、最後に次の行を追加します。
192.168.1.33 rainloop.lan2. 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 nginxApache バーチャルホスト
/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 wget6. 最新のソースパッケージのRainloop zipアーカイブをwgetコマンドを使用するか、ブラウザを使ってhttp://rainloop.net/downloads/にアクセスしてダウンロードしてください。
$ wget http://repository.rainloop.net/v1/rainloop-latest.zip7. ダウンロードプロセスが完了したら、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= 1234511. 初回ログイン後、デフォルトのパスワードを変更するよう警告されますので、変更することをお勧めします。
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プラグインパッケージがないことです。





















