Pesquisa de site

Como instalar o Webmail Roundcube no CentOS/RHEL 8/7


Roundcube é um software de webmail IMAP multilíngue baseado na web, gratuito, de código aberto e completo, com uma interface de usuário semelhante a um aplicativo que é totalmente funcional e personalizável e usa os mais recentes padrões da web. Ele é construído em PHP e oferece todas as funcionalidades que você pode esperar de um cliente de e-mail moderno.

Recursos do cubo redondo:

  • É multilíngue e suporta mais de 70 idiomas.
  • Suporta um catálogo de endereços Encontre enquanto você digita.
  • Suporta múltiplas identidades de remetente.
  • Oferece proteção de privacidade sofisticada.
  • Possui um catálogo de endereços completo com grupos e conectores LDAP.
  • Oferece composição de mensagens richtext/HTML.
  • Suporta pesquisa de mensagens e contatos.
  • Suporta Int. nomes de domínio (IDNA).
  • Suporta manipulação de pastas, pastas compartilhadas e ACL.
  • Extensível usando a API do plug-in.
  • Fornece funcionalidade de verificação ortográfica.
  • Fornece funções de importação/exportação.
  • Possui uma API de plug-in para extensões flexíveis e muito mais.

Requisitos de sistema recomendados:

  1. Um servidor CentOS 8/RHEL 8 ou CentOS 7/RHEL 7 com instalação mínima.
  2. Servidor web Apache ou Nginx
  3. Banco de dados PHP e MySQL/MariaDB
  4. Servidor SMTP e IMAP com suporte IMAP4 rev1

Para o escopo deste artigo, presumimos que você já tenha um servidor de e-mail Postfix em execução com usuários virtuais, caso contrário, siga nossos guias de configuração:

  1. Configurando Postfix Mail Server e Dovecot com MariaDB – Parte 1
  2. Configurar usuários de domínio virtual Postfix e Dovecot – Parte 2
  3. Instale e integre ClamAV e SpamAssassin ao Postfix Mail Server – Parte 3

Ambiente de teste:

Para os fins deste artigo, instalarei o Roundcube Webmail em um Linode CentOS VPS com um servidor web Nginx, endereço IP estático 192.168.0.100, e nome de host mail.linux-console.net.

Etapa 1: Instale Nginx, PHP-FPM e MariaDB no CentOS 8/7

1. Primeiro comece habilitando os repositórios EPEL e REMI e instale Nginx, PHP , PHP-FPM e servidor MariaDB em seu sistema CentOS.

yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
yum install yum-utils 
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. Depois de instalar todos os pacotes com sucesso, inicie o servidor web Nginx, habilite-o para inicialização automática no momento da inicialização e verifique se ele está instalado e funcionando.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Em seguida, se você tiver um firewall de sistema ativado, será necessário abrir a porta 80 para solicitações externas.

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4. Em seguida, você precisa configurar o PHP-FPM para funcionar corretamente. Abra o arquivo /etc/php.ini usando um editor de teste de linha de comando.

vim /etc/php.ini

Procure a diretiva ;cgi.fix_pathinfo=1, remova o comentário e defina seu valor como 0.

cgi.fix_pathinfo=0

Além disso, remova o comentário da diretiva ;date.timezone e defina seu valor para seu fuso horário.

date.timezone = "Africa/Kampala"

Quando terminar, salve o arquivo e saia.

5. Em seguida, inicie o serviço PHP-FPM, habilite-o para inicialização automática no momento da inicialização e verifique se ele está instalado e funcionando, como segue.

systemctl start php-fpm 
systemctl enable php-fpm 
systemctl status php-fpm 

Etapa 2: Proteja o servidor MariaDB e crie o banco de dados Roundecube

6. Agora inicie o serviço MariaDB usando os seguintes comandos.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. A instalação padrão do MariaDB não é segura. Você precisa executar o script de segurança que vem com o pacote binário para protegê-lo. Você será solicitado a definir uma senha root, remover usuários anônimos, desabilitar o login root remotamente e remover o banco de dados de teste.

mysql_secure_installation

8. Agora faça login no banco de dados MariaDB, crie um banco de dados para Roundecube e conceda ao usuário as permissões apropriadas no banco de dados (lembre-se de definir uma senha forte/segura em um ambiente de produção).

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. Em seguida, importe o layout da tabela Roundcube para o banco de dados recém-criado.

cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Etapa 3: Baixe o pacote Roundcube

10. Nesta etapa, baixe a versão estável mais recente (1.4.9 no momento da redação deste artigo) do Roundcube na página de download ou use o downloader de linha de comando wget para obtenha-o, extraia o arquivo TAR e carregue os arquivos na raiz de documentos do servidor web.

wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz 
mv roundcubemail-1.4.9 /var/www/html/roundcubemail

11. Em seguida, defina as permissões apropriadas nos arquivos webroot do Roundcube.

chown -R nginx:nginx /var/www/html/roundcubemail

Etapa 4: configurar o bloco de servidor Nginx para o instalador da Web Roundcube

12. Agora crie um bloco de servidor Nginx para o Roundcube em /etc/nginx/conf.d/ (você pode nomear o arquivo da maneira que desejar, mas ele deve ter um extensão .conf).

vim /etc/nginx/conf.d/mail.example.com.conf

Adicione a seguinte configuração no arquivo.

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Salve o arquivo e feche-o.

13. Em seguida, abra o arquivo /etc/php-fpm.d/www.conf para fazer algumas alterações na web do PHP-FPM directiva.

vim /etc/php-fpm.d/www.conf

Altere o usuário apache para nginx nas variáveis a seguir.

user = nginx
group = nginx

Em seguida, comente a linha listen=127.0.0.1:9000 e defina a variável listen para escutar em um soquete Unix definido no arquivo de bloco do servidor nginx:

listen = /var/run/php-fpm/php-fpm.sock

Além disso, defina as permissões para o soquete UNIX, remova o comentário e altere as linhas para:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Quando terminar, salve o arquivo e feche-o.

14. Em seguida, reinicie os serviços Nginx e PHP-FPM para aplicar as alterações recentes, como segue.

systemctl restart nginx php-fpm

Etapa 5: acessar a interface da Web do Roundcube

15. Antes de iniciar o assistente de instalação, para evitar erros de sessão, defina as permissões apropriadas no diretório /var/lib/php/session/. O proprietário padrão do grupo é apache, altere-o para nginx conforme mostrado.

ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16. Agora abra um navegador e use o endereço http://mail.example.com/installer (substitua domínio pelo nome do servidor que você definiu ao criar um bloco de servidor Nginx para Roundcube) para acessar o instalador da web. Se todas as versões do PHP, extensões e configurações de php.ini/.htaccess estiverem corretas, você verá a seguinte captura de tela, clique em Avançar para ir para a página de configurações.

http://mail.example.com/installer
OR
http://IP-address/installer

17. A página de configurações permite que você configure sua instância do Roundcube. Explicaremos apenas as opções importantes para o escopo deste guia.

Em Configuração Geral, defina um nome_do_produto, por exemplo, Webmail Exemplo.com.

Vá para Configuração do banco de dados, digite o host do banco de dados, nome, usuário e senha para se conectar ao servidor MySQL.

Em seguida, role para baixo até as configurações de IMAP e SMTP e insira o endereço IP do seu servidor IMAP e SMTP, se for no mesmo servidor em que você está executando o Roundcube, deixe como “localhost” e especifique também outros parâmetros necessários.

Você pode especificar outras configurações de acordo com suas necessidades. Quando terminar, clique em Criar configuração.

18. Agora você deve ver uma mensagem dizendo “O arquivo de configuração foi salvo com sucesso no diretório /var/www/html/roundcubemail/config de sua instalação do Roundcube.” Clique em Continuar.

19. Você pode revisar sua configuração na página de configuração de teste conforme mostrado na captura de tela a seguir.

20. Em seguida, remova toda a pasta do instalador (que contém arquivos que podem expor dados de configuração confidenciais, como senhas de servidor e chaves de criptografia ao público) do diretório raiz do Roundcube (ou certifique-se de que A opção enable_installer em config.inc.php está desativada).

rm -rf /var/www/html/roundcubemail/installer

21. Por fim, use a URL http://mail.example.com para acessar a página de login do Roundcube. Digite seu nome de usuário e senha para visualizar seus e-mails.

Resumo

Roundcube é um cliente de e-mail multilíngue baseado na Web, amplamente utilizado e repleto de recursos. Neste artigo, mostramos como instalar a versão estável mais recente do Roundcube Webmail em um CentOS/RHEL 8/7 com o servidor web Nginx. Se você tiver alguma dúvida, use o formulário de feedback abaixo para entrar em contato conosco.