Pesquisa de site

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.

  1. Instale RainLoop Webmail em sistemas baseados em Debian e Red Hat

Requisitos

Para Nginx
  1. Instale LEMP (Nginx, PHP, MySQL com motor MariaDB e PhpMyAdmin) no Arch Linux
  2. Crie hosts virtuais no servidor Web Nginx
Para Apache
  1. 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.