在 Arch 上使用 Nginx/Apache 安装 RainLoop Webmail

发布于 2025-01-01 17:12:08 字数 14204 浏览 12 评论 0

Rainloop 是一个使用 PHP 编写的,开源免费的网页邮件客户端。他支持包括 Google、Yahoo、OutLook 在内的主流的邮件服务器,当然,他也支持你自己的本地邮件服务器。它看起来大致就像使用 IMAP 和 SMTP 协议的 MUA(邮件客户端) 一样。

RainLoop 示例

可以看一下 RainLoop 作者安装的演示页面: http://demo.rainloop.net/

在 Arch Linux 上安装 RainLoop

在 Arch Linux 上安装 RainLoop

一旦在您的服务器部署上 Rainloop,剩余要做的唯一的事情是通过 Web 浏览器访问您的 Rainloop,并提供你正在使用的邮件服务器信息。

本教程包含了在 Arch Linux 上的 Rainloop 网页客户端的安装流程,包括如何进行配置 ApacheNginx , 当然本教程使用修改 Hosts 的方式,从而避免了 DNS 的访问。

If you also need references on installing Rainloop on Debian and Red Hat systems visit the previous RainLoop Webmail article at.

如果你还是需要一篇在 DebianRed Hat 安装 RainLoop Webmail 的教程,你可以看这篇文章:

以及在 Ubuntu 服务器中安装 RainLoop Webmail 的教程,你可以看这篇文章:

系统要求

对 Nginx

对 Apache

Step 1:在 Nginx 或者 Apache 上创建虚拟主机

1. 假设你已经如上面介绍的链接所述,配置好了您的服务器( NginxApache ),你需要做的第一件事是在 Hosts 文件里创建一个原始解析记录,以指向 的 Arch Linux 系统的 IP。

对于 Linux 系统,修改 /etc/hosts 文件并且在你的 localhost 条目之下添加 Rainloop 的虚拟域。如下:

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

Add Domain Host Entry

添加域信息

如果是 Windows 系统,则修改 C:\Windows\System32\drivers\etc\hosts 并且将接下来的内容添加到你的文件里:

192.168.1.33       rainloop.lan

2. 使用 ping 命令确认本地的 Rainloop 域名创建成功之后,然后在 ApacheNginx 中创建所需的 虚拟主机SSL 配置。

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;
    }
 }

接下来将会自动生成 CertificateKeys 文件,然后在文件中叫 Common Name*的证书里中添加您的虚拟域名( rainloop.lan**)。

$ sudo nginx_gen_ssl.sh

生成证书和密钥

生成证书和 SSL 密钥后,创建 Rainloop Web 服务器 的文件路径(Rainloop PHP 文件所在的位置),然后启用虚拟主机,并重新启动 Nginx 的守护进程,应用配置。

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

Create RainLoop Web Director

创建 RainLoop 网页向导

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 you@example.com
    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>

Create Apache Virtual Host

创建 Apache 虚拟主机

为 Apache 添加 SSL 支持:

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

添加如下文件内容:

<VirtualHost *:443>
    ServerName rainloop.lan
    DocumentRoot "/srv/www/rainloop/"
    ServerAdmin you@example.com
    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>

接下来将会自动生成 CertificateKeys 文件,然后在文件中叫 Common Name*的证书里中添加您的虚拟域名( rainloop.lan**)。

$ sudo apache_gen_ssl

Create SSL Certificate and Keys

创建 SSL 证书和密钥

Enter Organization Details

输入组织信息

After the Certificate and SSL keys are created, add Rainloop DocumentRoot path, then enable Virtual Hosts and restart Apache daemon to apply configurations. 在证书和密钥建立之后,创建 RainLoop 的 DocumentRoot 所指向的目录,之后激活虚拟主机,并且重启 Apache 应用设置。

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

Enable Virtual Hosts

激活虚拟主机

Step 2: 添加必要的 PHP 支持

3. 无论您使用的是 ApacheNginx Web 服务器,您需要激活 php.ini 文件下中的 PHP 扩展,并将新服务器的 DocumentRoot 目录放到 open_basedir 配置中。

$ sudo nano /etc/php/php.ini

找到并且取消如下的 PHP 扩展的注释(LCTT 译注,即启用这些模块):

extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( 注:启用 IMAPS 和 SMTP SSL protocols)
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 协议是否已经激活。

----------对于 Apache Web 服务器----------
$ sudo systemctl restart httpd

----------对于 Nginx Web 服务器----------
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

Check PHP Information

查看 PHP 信息

Step 3: 下载和安装 RainLoop Webmail

5. 现在可以从官方网站下载 Rainloop 应用并解压缩到文档根目录了,但是需要首先安装 wget 的unzip 程序(LCTT 译注,如果你已经有了可以忽略此步)。

$ sudo pacman -S unzip wget

6. 使用 wget 命令或通过使用浏览器访问 http://rainloop.net/downloads/ 下载最新的源码包 Rainloop 压缩包。

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

Download RainLoop Package

下载 RainLoop 包

7. 下载过程完成后,解压 Rainloop 压缩包到虚拟主机文档根目录路径( /srv/www/rainloop/ )。

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

Extract Rainloop Archive

解压

8. 然后设置应用程序的默认路径下的权限。

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

Set Permission on RainLoop

设置权限

Step 4: 通过网页配置 RainLoop

9. Rainloop 应用程序可以通过两种方式进行配置:使用浏览器或者系统 shell。如果要在终端配置就打开和编辑位于 / srv/www/rainloop/data/datada047852f16d2bc7352b24240a2f1599/default/configs/ 的 application.ini**文件。

10. 若要从浏览器访问管理界面,使用下面的 URL 地址 https://rainloop.lan/?admin ,然后提供输入默认的应用程序用户名密码,如下:

User = admin
Password = 12345

Rainloop Web Interface

Rainloop Web 界面

11. 首次登录后,你会被警示需要更改默认密码,所以我劝你做这一点。

Change Default Password

修改默认 Password

Set New Admin Password

设置新的 Admin Password

12. 如果您要启用 Contact (联系人)功能,就登录到 MySQL 数据库并创建一个新的数据库及其用户,然后提供在 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;

Enable Contacts in RainLoop

在 RainLoop 中激活联系人

Enter Contact Database Details

添加联系人数据库配置

13. 默认情况下 Rainloop 提供了** Gmail Yahoo Outlook**的邮件服务器的配置文件,但是你如果愿意,你也可以添加其他的邮件服务器域。

Default Mail Domains

默认 Mail 域

Add New Domain

添加新域

14. 登录你的邮件服务器,访问 https://rainloop.lan ,并提供您的域名服务器验证信息。

Login to Mail Domain

登录到 Yahoo 邮件页面

Login to Gmail Domain

登录 Gmail

RainLoop Email Interface

RainLoop 登录后的 Email 界面

想要了解更多的文件,可以访问: http://rainloop.net/docs/ .

通过 Rainloop 你可以从浏览器中访问具有 Internet 连接的任何邮件服务器。唯一的缺憾就是在 Arch Linux 下使用 Rainloop 应用的话,少一个修改电子邮件帐户密码的 poppassd 插件包。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

如日中天

暂无简介

文章
评论
641 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文