Pesquisa de site

Como instalar SuiteCRM com Nginx no Ubuntu 16.04


Este tutorial existe para estas versões do sistema operacional

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 16.04 (Xenial Xerus)

Nesta página

  1. O que faremos
  2. Pré-requisitos
  3. Etapa 1 - Instalar o servidor da Web Nginx
  4. Etapa 2 - Instalar e configurar o PHP-FPM
  5. Etapa 3 - Instalar e configurar o MariaDB
  6. Etapa 4 - Baixe e configure o SuiteCRM
  7. Etapa 5 - Instalador da Web do SuiteCRM
  8. Etapa 6 - Etapas finais
  9. Referência

SuiteCRM é um software de CRM (Customer Relationship Management) de código aberto baseado em PHP. É uma bifurcação do popular software de CRM SugarCRM e se tornou mais popular depois que o SugarCRM decidiu interromper o desenvolvimento da versão gratuita. O SuiteCRM foi indicado como o melhor software de CRM de código aberto no BOSSIE 2015 e 2016.

Neste tutorial, mostrarei passo a passo como instalar o CRM SuiteCRM de código aberto. O software será executado no servidor web Nginx com banco de dados MariaDB e usando o sistema Ubuntu 16.04.

O que nos faremos

  1. Instalar o servidor da Web Nginx
  2. Instalar e configurar o PHP-FPM
  3. Instalar e configurar o MariaDB
  4. Baixe e configure o SuiteCRM
  5. Instalador da Web do SuiteCRM
  6. Etapas finais

Pré-requisitos

  • Servidor Ubuntu 16.04
  • Privilégios de root

Passo 1 - Instale o servidor Web Nginx

O SuiteCRM é um software baseado na web e precisa de um servidor web. Podemos usar Apache ou Nginx para este software. Neste tutorial, usaremos o servidor web Nginx em vez do servidor web Apache.

Conecte-se ao seu servidor Ubuntu e atualize o repositório.

ssh 
sudo apt update

Agora instale o servidor web Nginx usando o comando apt da seguinte maneira.

apt install -y nginx

Após a instalação, inicie o nginx e habilite-o para iniciar automaticamente toda vez na inicialização do sistema.

systemctl start nginx
systemctl enable nginx

O servidor da Web Nginx está instalado e em execução na porta HTTP padrão 80. Verifique-o usando o comando netstat ou você pode usar o curl para ver o código de status HTTP.

netstat -plntu
curl -I localhost

Etapa 2 - Instalar e configurar o PHP-FPM

O SuiteCRM é compatível com várias versões do PHP. Neste tutorial, usaremos a versão mais recente do PHP 7.0 para instalação do SuiteCRM.

Instale o PHP e o PHP-FPM 7 junto com outras extensões necessárias usando o seguinte comando apt.

apt install -y php7.0-fpm php7.0-mcrypt php7.0-imap php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl

Após a conclusão da instalação, vá para o diretório de configuração do PHP e edite os arquivos php.ini para a configuração do cli e do fpm.

cd /etc/php/7.0/

Edite os arquivos php.ini.

vim cli/php.ini
vim fpm/php.ini

Altere o valor máximo do tamanho do arquivo de upload. O SuiteCRM precisa de pelo menos 6 MB, mas defina 100 MB como o valor.

upload_max_filesize = 100M

Descomente a linha CGI (mostrada abaixo) e altere o valor para 0.

cgi.fix_pathinfo=0

Para a configuração do caminho das sessões, remova o comentário da linha abaixo.

session.save_path = "/var/lib/php/sessions"

É isso. Salve essas alterações e saia.

Agora, precisamos criar um novo diretório para os arquivos de sessões do PHP e alterar o proprietário do diretório para www-data user and group.

mkdir -p /var/lib/php/sessions
chown -R www-data:www-data /var/lib/php/sessions

A configuração do PHP e do PHP-FPM foi concluída. Agora inicie o serviço e habilite-o para iniciar sempre na inicialização do sistema.

systemctl start php7.0-fpm
systemctl enable php7.0-fpm

Por padrão no sistema Ubuntu, o PHP-FPM será executado no arquivo sock em vez de usar a porta do sistema. Verifique usando o comando netstat abaixo.

netstat -pl | grep php

E certifique-se de que o resultado que você vê seja semelhante ao mostrado na captura de tela a seguir.

Etapa 3 - Instalar e configurar o MariaDB

Nesta etapa, instalaremos o MariaDB e configuraremos a senha de root. Em seguida, configure um novo banco de dados para instalação do SuiteCRM.

Instale o MariaDB usando o comando apt abaixo.

apt install -y mariadb-server mariadb-client

Após a instalação, inicie o serviço e habilite-o para iniciar sempre na inicialização do sistema.

systemctl start mysql
systemctl enable mysql

Em seguida, configure a senha root do MariaDB usando o comando mysql_secure_installation conforme abaixo.

mysql_secure_installation

Você será questionado sobre a configuração, digite Y e pressione Enter.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

A senha root do MariaDB foi configurada.

Agora vamos criar um novo banco de dados e usuário para instalação do SuiteCRM. Crie um banco de dados denominado suitecrm_db e um novo usuário crmadmin com a senha hakase-labs123. Conecte-se ao shell mysql e execute as seguintes consultas mysql.

mysql -u root -p
Type your password:

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

A configuração do banco de dados MariaDB para a instalação do SuiteCRM foi concluída.

Etapa 4 - Baixe e configure o SuiteCRM

Nesta etapa, faremos algumas tarefas que prepararão o sistema para a instalação do SuiteCRM. Faremos o download do código-fonte SuiteCRM, configuraremos o UFW Firewall, geraremos certificados Letsencrypt e configuraremos o host virtual nginx para SuiteCRM.

- Baixe o código-fonte do SuiteCRM

O código-fonte suiteCRM está disponível no Github. Certifique-se de que o comando git esteja instalado em seu sistema. Ou se você não tiver um pacote git, instale-o com o comando apt abaixo.

apt install -y git

Agora vá para o diretório /opt e clone o repositório usando o seguinte comando git clone.

cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

Acesse o diretório suitecrm e crie um novo diretório de cache. Em seguida, altere a permissão de alguns arquivos e diretórios e, finalmente, precisamos alterar as permissões de propriedade do diretório suitecrm para www-data user and group.

cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown www-data:www-data -R /opt/suitecrm

O código-fonte do SuiteCRM foi baixado.

- Configurar Firewall UFW

No Ubuntu, usaremos o firewall ufw. Abra novas portas HTTP, HTTPS e SSH usando os comandos ufw conforme mostrado abaixo.

ufw allow ssh
ufw allow http
ufw allow https

Agora inicie o firewall e habilite-o para iniciar toda vez na inicialização do sistema usando o comando ufw enable.

ufw enable

Digite y e pressione Enter para habilitar o firewall.

Se você quiser verificar o status do firewall, use o comando ufw status.

ufw status

E você obterá o status do firewall, incluindo quais portas você adicionou.

- Gerar certificados Letsencrypt

Neste tutorial, o SuiteCRM usará HTTPS para uma conexão mais segura entre cliente e servidor. Para isso, usaremos o certificado SSL gratuito da Letsencrypt.

Antes de gerar arquivos de certificado, precisamos instalar o agente cliente letsencrypt no sistema. Está disponível no repositório do Ubuntu, então instale-o com o comando apt abaixo.

apt install -y letsencrypt

Depois de instalar o letsencrypt, precisamos interromper o serviço nginx antes de gerar os arquivos de certificado.

systemctl stop nginx

Agora gere arquivos de certificado SSL usando o comando letsencrypt abaixo.

letsencrypt certonly --standalone -d suitecrm.hakase-labs.co

Nota: A opção --standalone criará um servidor web temporário no sistema, então precisamos parar o servidor web Nginx antes de gerar arquivos de certificado.

Você será questionado sobre seu endereço de e-mail para renovar a notificação. Digite seu endereço de e-mail e clique em OK.

Para o Contrato Letsencrypt, escolha Concordo e pressione Enter.

O novo Letsencrypt SSL foi gerado no diretório /etc/letsencrypt/live/domain.com.

- Configurar host virtual Nginx para SuiteCRM

Vá para o diretório de configuração do Nginx e crie um novo arquivo de host virtual suitecrm no diretório sites-available.

cd /etc/nginx
vim sites-available/suitecrm

Cole a seguinte configuração do Nginx lá.

# Server Config - hakase-labs
server {
    listen 80;
    server_name suitecrm.hakase-labs.co;

    # Automatically redirect to HTTPS
    return 301 https://$host$request_uri;
}

# Nginx SSL for SuiteCRM
server {

    server_name suitecrm.hakase-labs.co;

    # Enable http2
    listen 443 http2 ssl;

    # SSL Config
    ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 50M;

    index index.php index.html index.htm;
    root /opt/suitecrm;

    location / {
        root /opt/suitecrm;
        index index.php index.html index.htm;
    }
 
    error_page 500 502 503 504 /50x.html;
    error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;

    location = /50x.html {
        root /var/www/html;
    }

    ## Images and static content is treated different
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
        access_log off;
        expires max;
        root /opt/suitecrm;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

}

Salvar e sair.

Agora ative o host virtual, teste a configuração e verifique se não há nenhum erro. Em seguida, reinicie o servidor da web.

ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/

nginx -t
systemctl restart nginx

A configuração do sistema para a instalação do SuiteCRM foi concluída.

Etapa 5 - Instalador da Web do SuiteCRM

Abra seu navegador da web e digite o URL do SuiteCRM na barra de endereço, o meu é suitecrm.hakase-labs.co

Você será redirecionado para a conexão HTTPS e para a página install.php.

Na página que aparece, você verá a Licença GNU AFFERO - marque em Aceito e clique em Avançar.

Agora você obterá a página sobre o ambiente do sistema para a instalação do SuiteCRM.

Certifique-se de que todos os resultados estejam corretos, conforme mostrado na figura abaixo.

Clique em próximo para continuar.

Em seguida, vem a configuração do banco de dados e do usuário administrador. Digite as informações do seu banco de dados, dbname suitecrm_db, dbuser crmadmin com a senha hakase-labs123. E digite seu usuário administrador, senha e e-mail conforme mostrado abaixo.

Role até a parte inferior e clique em Avançar para continuar instalando o SuiteCRM.

Aguarde um momento para a instalação e, quando estiver concluída, você será redirecionado para a página de login conforme abaixo.

Digite seu usuário administrador e senha e clique no botão Login.

Agora você poderá ver o painel padrão do SuiteCRM.

O SuiteCRM foi instalado com o servidor web Nginx no sistema Ubuntu 16.04.

Etapa 6 - Etapas finais

Para esta última etapa, criaremos um novo trabalho Cron em www-data user.

Execute o comando abaixo para adicionar um novo trabalho do cron.

sudo crontab -e -u www-data

Cole a configuração do script Cron abaixo.

*    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

Salvar e sair. Em seguida, reinicie o serviço Cron.

systemctl restart cron

A instalação do SuiteCRM no Ubuntu 16.04 foi concluída.

Referência

  • https://suitecrm.com/wiki/

Artigos relacionados: