Instale RainLoop Webmail (um cliente de e-mail baseado na Web) usando 'Nginx e Apache' no Arch Linux
Rainloop é um aplicativo da web de código aberto gratuito escrito em PHP que fornece uma interface da web moderna e rápida para acessar seus e-mails em todos os principais provedores de e-mail de domínio, como Yahoo, Gmail, Outlook e muitos outros, bem como em seus próprios servidores de e-mail locais e, também, atua como um MUA (Mail User Agent), acessando servidores de correio de domínio através dos protocolos IMAP e SMTP.
Demonstração RainLoop
Dê uma olhada rápida na página de demonstração configurada pelo autor em http://demo.rainloop.net/.
Depois de implantar o Rainloop em seus servidores, a única coisa que resta fazer é acessar seu domínio Rainloop por meio de um navegador da web e fornecer credenciais para o servidor de e-mail de seu domínio habilitado.
Este tutorial aborda o processo de instalação do webmail Rainloop no Arch Linux do ponto de vista dos arquivos de configuração para Apache e Nginx, usando um domínio local virtual configurado através de arquivo de hosts locais, sem servidor DNS.
Se você também precisar de referências sobre a instalação do Rainloop em sistemas Debian e Red Hat, visite o artigo anterior do RainLoop Webmail em.
- Instale RainLoop Webmail em sistemas baseados em Debian e Red Hat
Requisitos
Para Nginx
- Instale LEMP (Nginx, PHP, MySQL com motor MariaDB e PhpMyAdmin) no Arch Linux
- Crie hosts virtuais no servidor Web Nginx
Para Apache
- Instale LAMP (Linux, Apache, MySQL/MariaDB e PHP/PhpMyAdmin) no Arch Linux
Etapa 1: criar hosts virtuais para Nginx ou Apache
1. Supondo que você tenha configurado seus servidores (Nginx ou Apache) conforme descrito nos links superiores das apresentações, a primeira coisa que você precisa fazer é para criar uma entrada DNS rudimentar no arquivo hosts local que aponta para o IP do sistema Arch Linux.
No sistema Linux, edite o arquivo /etc/hosts e inclua seu domínio virtual Rainloop após a entrada localhost.
127.0.0.1 localhost.localdomain localhost rainloop.lan
192.168.1.33 rainloop.lan
No sistema Windows, edite C:\Windows\System32\drivers\etc\hosts e adicione a seguinte linha na parte inferior.
192.168.1.33 rainloop.lan
2. Depois de verificar o domínio local usando o comando ping, crie as configurações de hosts virtuais e SSL necessárias para Apache ou Nginx.
Hosts Virtuais Nginx
Crie um arquivo chamado rainloop.lan no caminho /etc/nginx/sites-available/ com a seguinte configuração.
sudo nano /etc/nginx/sites-available/rainloop.conf
Adicione o seguinte conteúdo do arquivo.
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;
}
}
Em seguida, crie o conteúdo do arquivo equivalente ao SSL.
sudo nano /etc/nginx/sites-available/rainloop-ssl.conf
Adicione o seguinte conteúdo do arquivo.
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;
}
}
Na próxima etapa, gere o arquivo Certificado e as Chaves para o SSL Virtual Host e adicione seu nome de domínio virtual (rainloop.lan) no certificado Nome comum.
sudo nginx_gen_ssl.sh
Depois que o certificado e as chaves SSL forem gerados, crie o caminho do arquivo Rainloop root do servidor web (local onde residem os arquivos Rainloop PHP), ative os hosts virtuais e reinicie o daemon Nginx para aplicar as configurações.
sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx
Hosts Virtuais Apache
Crie um novo arquivo chamado rainloop.conf em /etc/httpd/conf/sites-available/ com o seguinte conteúdo.
sudo nano /etc/httpd/conf/sites-available/rainloop.conf
Adicione o seguinte conteúdo do arquivo.
<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>
Em seguida, crie o conteúdo do arquivo SSL equivalente para Apache.
sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf
Adicione o seguinte conteúdo do arquivo.
<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>
O próximo passo é criar o arquivo Certificado SSL e Chaves para o SSL Virtual Host e adicionar seu nome de domínio virtual (rainloop.lan ) no certificado Nome comum.
sudo apache_gen_ssl
Após a criação do certificado e das chaves SSL, adicione o caminho Rainloop DocumentRoot, ative os hosts virtuais e reinicie o daemon Apache para aplicar as configurações.
sudo mkdir -p /srv/www/rainloop
sudo a2ensite rainloop
sudo a2ensite rainloop-ssl
sudo systemctl restart httpd
Etapa 2: adicione as extensões PHP necessárias
3. Esteja você usando o servidor web Apache ou Nginx, você precisa habilitar as seguintes extensões PHP em php.ini e, também, incluir o novo caminho do servidor web DocumentRoot para a diretiva open_basedir.
sudo nano /etc/php/php.ini
Localize e remova o comentário das seguintes extensões 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
Além disso, a instrução open_basedir deve ser semelhante a esta.
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/
4. Depois que o arquivo php.ini for modificado, reinicie seu servidor e verifique o arquivo phpinfo para ver se os protocolos SSL estão habilitados.
----------On Apache Web Server----------
sudo systemctl restart httpd
----------On Nginx Web Server----------
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Etapa 3: Baixe e instale o webmail RainLoop
5. Agora é hora de baixar e extrair o aplicativo Rainloop do site oficial para o diretório raiz do documento, mas primeiro instale os utilitários de sistema wget e descompacte.
sudo pacman -S unzip wget
6. Baixe o arquivo zip Rainloop do pacote fonte mais recente usando o comando wget ou usando um navegador para navegar até http://rainloop.net/downloads/.
wget http://repository.rainloop.net/v1/rainloop-latest.zip
7. Após a conclusão do processo de download, extraia o arquivo Rainloop para o caminho raiz do documento do Virtual Host ( /srv/www/rainloop/ ).
sudo unzip rainloop-latest.zip -d /srv/www/rainloop/
8. Em seguida, defina as seguintes permissões no caminho padrão do aplicativo.
sudo chmod -R 755 /srv/www/rainloop/
sudo chown -R http:http /srv/www/rainloop/
Etapa 4: configurar o Rainloop via interface da web
9. O aplicativo Rainloop pode ser configurado de duas maneiras: usando um shell do sistema ou via navegador. Se você deseja configurar pelo terminal, abra e edite o arquivo application.ini localizado em /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.
10. Para acessar a interface administrativa do navegador, use o seguinte endereço URL https://rainloop.lan/?admin e forneça as credenciais padrão do aplicativo.
User= admin
Password= 12345
11. Após o login inicial você será avisado para alterar a senha padrão, por isso aconselho que faça isso.
12. Se você deseja ativar o login de contatos no banco de dados MySQL e criar um novo banco de dados com um usuário privilegiado, forneça as credenciais do banco de dados em Contatos campos.
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. Por padrão, o Rainloop fornece arquivos de configuração do servidor de e-mail dos domínios Gmail, Yahoo e Outlook, mas você pode adicionar outros domínios de servidor de e-mail, se desejar.
14. Para fazer login em seu servidor de e-mail, aponte seu navegador para https://rainloop.lan e forneça suas credenciais de servidor de domínio.
Para configurações adicionais, visite a página de documentação oficial do Rainloop em http://rainloop.net/docs/.
Com Rainloop você pode acessar servidores de e-mail de qualquer dispositivo que tenha um navegador, desde que seu servidor tenha conectividade com a Internet, a única desvantagem de usar o aplicativo Rainloop no Arch Linux até agora é a falta do pacote de plugins poppassd necessário para alterar a senha da conta de e-mail.