在 Arch Linux 中使用“Nginx 和 Apache”安装 RainLoop Webmail(基于 Web 的电子邮件客户端)
Rainloop 是一个用 PHP 编写的免费开源 Web 应用程序,它提供了一个快速的现代 Web 界面,用于访问所有主要域邮件提供商(如 Yahoo、Gmail、Outlook 等)以及您自己的本地邮件服务器上的电子邮件,并且,通过 IMAP 和 SMTP 协议访问域邮件服务器,充当 MUA(邮件用户代理)。
RainLoop 演示
快速查看作者设置的演示页面:http://demo.rainloop.net/。
在服务器上部署 Rainloop 后,剩下要做的唯一一件事就是通过 Web 浏览器访问您的 Rainloop 域,并为已启用的域邮件服务器提供凭据。
本教程从 Apache 和 Nginx 的配置文件两个角度介绍了 Arch Linux 上的 Rainloop Webmail 安装过程,使用通过本地主机文件配置的虚拟本地域,无需 DNS 服务器。
如果您还需要有关在 Debian 和 Red Hat 系统上安装 Rainloop 的参考信息,请访问之前的 RainLoop Webmail 文章:
- 在基于 Debian 和 Red Hat 的系统上安装 RainLoop Webmail
要求
对于 Nginx
- 在 Arch Linux 中安装 LEMP(Nginx、PHP、带有 MariaDB 引擎的 MySQL 和 PhpMyAdmin)
- 在 Nginx Web 服务器中创建虚拟主机
对于阿帕奇
- 在 Arch Linux 中安装 LAMP(Linux、Apache、MySQL/MariaDB 和 PHP/PhpMyAdmin)
第 1 步:为 Nginx 或 Apache 创建虚拟主机
1. 假设您已按照上方演示链接中的说明配置了服务器(Nginx 或 Apache),您需要做的第一件事是在本地 hosts 文件上创建一个基本的 DNS 条目,指向 Arch Linux 系统 IP。
在 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 root Web 服务器文件路径(Rainloop PHP 文件所在的位置),然后启用虚拟主机并重新启动 Nginx 守护程序以应用配置。
sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx
阿帕奇虚拟主机
在 /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 证书 文件和密钥,并添加您的虚拟域名 (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扩展> 文件,并且还包括 open_basedir 指令的新网络服务器 DocumentRoot 路径。
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 Webmail
5. 现在是时候从官方网站下载 Rainloop 应用程序并将其解压到文档根目录,但首先安装 wget 和 unzip 系统实用程序。
sudo pacman -S unzip wget
6.使用wget命令或使用浏览器导航至http://rainloop.net/downloads/下载最新的源包Rainloop zip存档。
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应用程序可以通过两种方式配置:使用系统shell或通过浏览器。如果您想通过终端进行配置,请打开并编辑位于 /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/ 中的 application.ini 文件。
10. 要从浏览器访问管理界面,请使用以下 URL 地址 https://rainloop.lan/?admin,然后提供默认应用程序凭据。
User= admin
Password= 12345
11.首次登录后,系统会警告您更改默认密码,因此我建议您这样做。
12.如果您想要联系人登录MySQL数据库并使用特权用户创建一个新数据库,则在联系人上提供数据库凭据> 领域。
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,只要您的服务器具有 Internet 连接,您就可以从任何具有浏览器的设备访问邮件服务器,到目前为止,在 Arch Linux 中使用 Rainloop 应用程序的唯一缺点是缺少所需的 poppassd 插件包更改电子邮件帐户密码。