Servidor Perfeito · 10 min read · Oct 23, 2025

O Servidor Perfeito - Ubuntu 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD e ISPConfig 3.1) - Página 3

15. Instalar Roundcube Webmail

Para instalar o Roundcube Webmail, execute:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

O instalador fará as seguintes perguntas:

Configurar banco de dados para roundcube com dbconfig-common? <-- Sim  
Senha da aplicação MySQL para roundcube: <-- Pressione enter  
  

Em seguida, edite o arquivo de configuração do RoundCube config.inc.php:

nano /etc/roundcube/config.inc.php

e altere o host padrão para localhost:

$config['default_host'] = 'localhost';

Isso impede que o Roundcube mostre o campo de entrada do nome do servidor no formulário de login.

Agora crie um symlink para que possamos usar a configuração do SquirrelMail no ISPConfig para o Roundcube:

ln -s /usr/share/roundcube /usr/share/squirrelmail

Depois de instalar o ISPConfig 3, você pode acessar o Roundcube da seguinte forma:

O vhost de aplicativos do ISPConfig na porta 8081 para nginx vem com uma configuração do Roundcube, então você pode usar http://server1.example.com:8081/webmail para acessar o Roundcube.

Se você quiser usar um alias /webmail que possa usar a partir de seus sites, isso é um pouco mais complicado do que para o Apache porque o nginx não tem aliases globais (ou seja, aliases que podem ser definidos para todos os vhosts). Portanto, você deve definir esses aliases para cada vhost do qual deseja acessar o Roundcube.

Para fazer isso, cole o seguinte no campo Diretrizes do nginx na aba Opções do site no ISPConfig:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Se você usar http s em vez de http para seu vhost, deve adicionar a linha fastcgi_param HTTPS on; à sua configuração do SquirrelMail assim:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                       fastcgi_param HTTPS on; # <-- adicione esta linha
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Se você usar tanto http quanto https para seu vhost, precisará adicionar a seguinte seção à seção http {} em /etc/nginx/nginx.conf (antes de qualquer linha de inclusão) que determina se o visitante usa http ou https e define a variável $fastcgi_https (que usaremos em nossa configuração do Roundcube) de acordo:

nano /etc/nginx/nginx.conf
[...]
http {
[...]
        ## Detectar quando HTTPS é usado
        map $scheme $fastcgi_https {
          default off;
          https on;

        }
[...]
}
[...]

Não se esqueça de recarregar o nginx depois:

service nginx reload

Em seguida, vá novamente para o campo Diretrizes do nginx, e em vez de fastcgi_param HTTPS on; você adiciona a linha fastcgi_param HTTPS $fastcgi_https; para que você possa usar o Roundcube para solicitações http e https:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                       fastcgi_param HTTPS $fastcgi_https; # <-- adicione esta linha
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

16. Instalar ISPConfig 3.1

Antes de iniciar a instalação do ISPConfig, certifique-se de que o Apache esteja parado (se estiver instalado - é possível que alguns dos seus pacotes instalados tenham instalado o Apache como uma dependência sem que você soubesse). Se o Apache2 já estiver instalado no sistema, pare-o agora…

service apache2 stop

… e remova os links de inicialização do sistema do Apache:

update-rc.d -f apache2 remove

Certifique-se de que o nginx esteja em execução:

service nginx restart

(Se você tiver tanto o Apache quanto o nginx instalados, o instalador pergunta qual você deseja usar: Apache e nginx detectados. Selecione o servidor a ser usado para o ISPConfig: (apache,nginx) [apache]:

Digite nginx. Se apenas Apache ou Nginx estiverem instalados, isso é detectado automaticamente pelo instalador, e nenhuma pergunta é feita.)

Para instalar o ISPConfig 3.1 do ramo estável do GIT, faça o seguinte:

cd /tmp   
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1  
tar xfz ispconfig.tar.gz  
cd ispconfig3*/install/

O próximo passo é executar

php -q install.php

Isso iniciará o instalador do ISPConfig 3.1. O instalador configurará todos os serviços como Postfix, Dovecot, etc. para você.

root@server1:/tmp/ispconfig3-stable-3.1-3f1331062193a94fbd64a7e39c00cb8d77eb7484/install# php install.php
  
--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------
  
>> Configuração inicial
Sistema Operacional: Ubuntu 16.04.1 LTS (Xenial Xerus)
A seguir, haverá algumas perguntas para configuração primária, então tenha cuidado.  
Os valores padrão estão entre [colchetes] e podem ser aceitos com .  
Digite "quit" (sem as aspas) para parar o instalador.
  
Selecione o idioma (en,de) [en]: <-- ENTER
Modo de instalação (padrão, especialista) [padrão]: <-- ENTER
Nome do host totalmente qualificado (FQDN) do servidor, ex: server1.domain.tld [server1.example.com]: <-- ENTER
Nome do host do servidor MySQL [localhost]: <-- ENTER
Porta do servidor MySQL [3306]: <-- ENTER
Nome de usuário root do MySQL [root]: <-- ENTER
Senha root do MySQL []: <--digite a senha root do MySQL aqui
Banco de dados MySQL a ser criado [dbispconfig]: <-- ENTER
Charset MySQL [utf8]: <-- ENTER
Configurando Postgrey  
Configurando Postfix  
Gerando uma chave privada RSA de 4096 bits  
.................................................................................................................................................................................................................................................................................................................................................................................................................++  
...++  
escrevendo nova chave privada para 'smtpd.key'  
-----  
Você está prestes a ser solicitado a inserir informações que serão incorporadas  
na sua solicitação de certificado.  
O que você está prestes a inserir é o que é chamado de Nome Distinto ou DN.  
Existem muitos campos, mas você pode deixar alguns em branco  
Para alguns campos haverá um valor padrão,  
Se você digitar '.', o campo ficará em branco.  
-----  
Nome do País (código de 2 letras) [AU]: <-- digite seu código de país de 2 letras, ex: DE no meu caso  
Nome do Estado ou Província (nome completo) [Some-State]: <-- Digite seu estado de origem  
Nome da Localidade (ex: cidade) []:  <-- Digite sua cidade, no meu caso Lueneburg  
Nome da Organização (ex: empresa) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua empresa, no meu caso ISPConfig UG  
Nome da Unidade Organizacional (ex: seção) []: <-- Digite o nome da sua unidade organizacional, eu uso TI aqui  
Nome Comum (ex: FQDN do servidor ou SEU nome) []: <-- Digite o nome do host do servidor, no meu caso server1.example.com  
Endereço de E-mail []: <-- Digite um endereço de e-mail, ex: [email protected]  
Configurando Mailman  
Configurando Dovecot  
Configurando Spamassassin  
Configurando Amavisd  
Configurando Getmail  
Configurando Jailkit  
Configurando Pureftpd  
Configurando BIND  
Configurando nginx  
[INFO] serviço OpenVZ não detectado  
Configurando Firewall do Ubuntu  
Configurando Servidor XMPP Metronome  
escrevendo nova chave privada para 'localhost.key'  
-----  
Nome do País (código de 2 letras) [AU]: <-- Digite seu código de país de 2 letras, ex: DE no meu caso
Nome da Localidade (ex: cidade) [Nome da Cidade]: <-- Digite sua cidade, no meu caso Lueneburg
Nome da Organização (ex: empresa) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua empresa, no meu caso ISPConfig UG
Nome da Unidade Organizacional (ex: seção) [Infraestrutura]: <-- Digite o nome da sua unidade organizacional, eu uso TI aqui
Nome Comum (ex: FQDN do servidor ou SEU nome) [server1.example.com]: <-- Digite o nome do host do servidor, no meu caso server1.example.com
Endereço de E-mail [[email protected]]: <-- Digite um endereço de e-mail, ex: [email protected]
IMPORTANTE:  
Chave Localhost, Csr e um Certificado autoassinado foram salvos em /etc/metronome/certs  
Para funcionar com todos os clientes, o servidor deve ter um certificado confiável, então use o Csr  
para obter um certificado confiável de sua CA ou substitua a Chave e o Certificado por arquivos já assinados para  
seu domínio. Clientes como Pidgin não permitem o uso de certificados autoassinados não confiáveis.
Configurando Fail2ban  
Configurando vhost de aplicativos  
Instalando ISPConfig  
Porta do ISPConfig [8080]: <-- ENTER
Senha do administrador [admin]: <-- Digite sua senha de administrador desejada
Você deseja uma conexão segura (SSL) com a interface web do ISPConfig (s,n) [s]: <-- ENTER
Gerando chave privada RSA, 4096 bits de comprimento de módulo  
....................................................++  
........................++  
e é 65537 (0x10001)  
Você está prestes a ser solicitado a inserir informações que serão incorporadas  
na sua solicitação de certificado.  
O que você está prestes a inserir é o que é chamado de Nome Distinto ou DN.  
Existem muitos campos, mas você pode deixar alguns em branco  
Para alguns campos haverá um valor padrão,  
Se você digitar '.', o campo ficará em branco.  
-----  
Nome do País (código de 2 letras) [AU]: <-- digite seu 2 letras código de país, ex: DE no meu caso  
Nome do Estado ou Província (nome completo) [Some-State]: <-- Digite seu estado de origem  
Nome da Localidade (ex: cidade) []:  <-- Digite sua cidade, no meu caso Lueneburg  
Nome da Organização (ex: empresa) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua empresa, no meu caso ISPConfig UG  
Nome da Unidade Organizacional (ex: seção) []: <-- Digite o nome da sua unidade organizacional, eu uso TI aqui  
Nome Comum (ex: FQDN do servidor ou SEU nome) []: <-- Digite o nome do host do servidor, no meu caso server1.example.com  
Endereço de E-mail []: <-- Digite um endereço de e-mail, ex: [email protected]
Por favor, insira os seguintes atributos 'extras'  
que serão enviados com sua solicitação de certificado  
Uma senha de desafio []: <-- ENTER  
Um nome de empresa opcional []: <-- ENTER  
escrevendo chave RSA
  
Configurando DBServer  
Instalando crontab do ISPConfig  
Instalando crontab do ISPConfig  
nenhum crontab para root  
nenhum crontab para getmail  
Detectando endereços IP  
Reiniciando serviços ...  
Instalação concluída.

O instalador configura automaticamente todos os serviços subjacentes, portanto, não há necessidade de configuração manual.

Depois, você pode acessar o ISPConfig 3 em http(s)://server1.example.com:8080/ ou http(s)://192.168.1.100:8080/ (http ou https depende do que você escolheu durante a instalação). Faça login com o nome de usuário admin e a senha admin (você deve mudar a senha padrão após seu primeiro login):

O sistema agora está pronto para ser usado.

16.1 Manual do ISPConfig 3.1

Para aprender a usar o ISPConfig 3, recomendo fortemente baixar o Manual do ISPConfig 3.1.

Em mais de 300 páginas, ele cobre o conceito por trás do ISPConfig (administrador, revendedores, clientes), explica como instalar e atualizar o ISPConfig 3, inclui uma referência para todos os formulários e campos de formulário no ISPConfig junto com exemplos de entradas válidas, e fornece tutoriais para as tarefas mais comuns no ISPConfig 3. Também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final.

17. Notas Adicionais

18.1 OpenVZ

Se o servidor Ubuntu que você acabou de configurar neste tutorial for um contêiner OpenVZ (máquina virtual), você deve fazer isso no sistema host (estou assumindo que o ID do contêiner OpenVZ é 101 - substitua pelo VPSID correto em seu sistema):

VPSID=101   
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE   
do   
  vzctl set $VPSID --capability ${CAP}:on --save   
done

18.2 Download da imagem da máquina virtual deste tutorial

Este tutorial está disponível como uma imagem de máquina virtual pronta para uso no formato ovf/ova que é compatível com VMWare e Virtualbox. A imagem da máquina virtual usa os seguintes detalhes de login:

Login SSH / Shell

Nome de usuário: administrador
Senha: howtoforge

Este usuário tem direitos sudo.

Login do ISPConfig

Nome de usuário: admin
Senha: howtoforge

Login do MySQL

Nome de usuário: admin
Senha: howtoforge

ou faça login com:

sudo mysql

no shell.

O IP da VM é 192.168.1.100, pode ser alterado no arquivo /etc/network/interfaces. Por favor, altere todas as senhas acima para proteger a máquina virtual.

19. Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.