Pesquisa de site

Como instalar o SuiteCRM no Ubuntu 20.04


SuiteCRM é um sistema CRM gratuito, de código aberto e de classe empresarial desenvolvido pela SalesAgility. É um fork do SugarCRM Community Edition. Vem com todas as funcionalidades necessárias para administrar qualquer negócio com necessidades de CRM e ERP. Ele oferece uma ampla gama de recursos, incluindo marketing por e-mail, integração de mídia social, automação de marketing, integração de bate-papo interno, armazenamento de documentos, lembrete, gerenciamento de tarefas e muito mais. Esta postagem mostrará como instalar o SuiteCRM com Nginx e Let's Encrypt SSL no Ubuntu 20.04.

Pré-requisitos

  • Um servidor executando Ubuntu 20.04.
  • Um nome de domínio válido apontado com o IP do seu servidor.
  • Uma senha root é configurada no servidor.

Começando

Antes de começar, você precisará atualizar os pacotes do sistema para a versão mais recente. Você pode atualizá-los usando o seguinte comando:

apt-get update -y

Depois que seu servidor for atualizado, você poderá prosseguir para a próxima etapa.

Instale Nginx, MariaDB e PHP

Primeiro, você precisará instalar o servidor web Nginx, MariaDB, PHP e outras extensões PHP em seu servidor. Você pode instalar todos eles usando o seguinte comando:

apt-get install nginx mariadb-server php7.4 php7.4-fpm php7.4-gd php7.4-opcache php7.4-mbstring php7.4-xml php7.4-json php7.4-zip php7.4-curl php7.4-imap php-mysql unzip -y

Após instalar todos os pacotes, edite o arquivo php.ini e altere as configurações recomendadas:

nano /etc/php/7.4/fpm/php.ini

Altere as seguintes configurações:

post_max_size = 60M
upload_max_filesize = 60M
memory_limit = 256M
max_input_time = 60
max_execution_time = 5000
date.timezone = Asia/Kolkata

Salve e feche o arquivo e reinicie o serviço PHP-FPM para aplicar as alterações.

systemctl restart php7.4-fpm

Neste ponto, o servidor LEMP está instalado em seu servidor. Agora você pode prosseguir para a próxima etapa.

Crie um banco de dados para SuiteCRM

SuiteCRM requer um banco de dados para armazenar seu conteúdo. Primeiro, faça login no shell MariaDB usando o seguinte comando:

mysql

Depois de fazer login, crie um banco de dados e um usuário com o seguinte comando:

MariaDB [(none)]> CREATE DATABASE suitecrm;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrm'@'localhost' IDENTIFIED BY 'password';

Em seguida, você precisará liberar os privilégios para aplicar as alterações.

MariaDB [(none)]> FLUSH PRIVILEGES;

Em seguida, saia do console MariaDB com o seguinte comando:

MariaDB [(none)]> EXIT;

Agora você tem um banco de dados e os usuários estão prontos para o SuiteCRM. Agora você pode prosseguir para a próxima etapa.

Instale o SuiteCRM

Primeiro, acesse o site oficial do SuiteCRM e baixe a versão mais recente do SuiteCRM usando o seguinte comando:

wget https://sourceforge.net/projects/suitecrm/files/SuiteCRM-7.11.19.zip

Assim que o download for concluído, descompacte o arquivo baixado com o seguinte comando:

unzip SuiteCRM-7.11.19.zip

Em seguida, mova o diretório extraído para o diretório raiz do Nginx com o seguinte comando:

mv SuiteCRM-7.11.19 /var/www/html/suitecrm

Em seguida, defina a permissão e propriedade adequadas para o diretório suitecrm:

chown -R www-data:www-data /var/www/html/suitecrm/
chmod 755 -R /var/www/html/suitecrm/

Quando terminar, você pode prosseguir com a configuração do Nginx.

Configurar Nginx para hospedar SuiteCRM

Em seguida, você precisará criar um arquivo de configuração de host virtual Nginx para hospedar o SuiteCRM na Internet. Você pode criá-lo com o seguinte comando:

nano /etc/nginx/conf.d/suitecrm.conf

Adicione as seguintes linhas:

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

   root /var/www/html/suitecrm;
   error_log /var/log/nginx/suitecrm.error;
   access_log /var/log/nginx/suitecrm.access;
   client_max_body_size 20M;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   location ~ \.php$ {
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php7.4-fpm.sock;
   }

   location ~* ^/index.php {
     # try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;

     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
   }

    # Don't log favicon
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    # Don't log robots
    location = /robots.txt  {
        access_log off;
        log_not_found off;
    }

    # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

     # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

Salve e feche o arquivo quando terminar e verifique se há algum erro de sintaxe no Nginx usando o seguinte comando:

nginx -t

Você deve obter a seguinte saída:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Em seguida, reinicie o serviço Nginx para aplicar as alterações:

systemctl restart nginx

Para verificar o status do serviço Nginx, execute o seguinte comando:

systemctl status nginx

Você deve obter a seguinte saída:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-22 10:16:45 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 18988 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19000 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19001 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.7M
     CGroup: /system.slice/nginx.service
             ??19001 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19002 nginx: worker process

May 22 10:16:45 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 22 10:16:45 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Neste ponto, o Nginx está configurado para servir o SuiteCRM. Agora você pode prosseguir para acessar o SuiteCRM.

Acesse SuiteCRM

Agora, abra seu navegador e acesse o SuiteCRM usando a URL http://suitecrm.example.com. Você deverá ver a seguinte página:

Aceite o contrato de licença e clique no botão Avançar. Você deverá ver a seguinte página:

Certifique-se de que todos os pré-requisitos estejam instalados e clique no botão Avançar. Você deverá ver a seguinte página:

Forneça o nome do banco de dados, usuário, senha, nome de usuário do administrador, senha, URL do SuiteCRM, endereço de e-mail e clique no botão Avançar. Assim que a instalação for concluída, você deverá ver a seguinte página:

Agora, clique no botão Avançar. Você deverá ver a página de login do SuiteCRM:

Forneça seu nome de usuário e senha de administrador e clique no botão ENTRAR. Você deverá ver o painel do SuiteCRM na seguinte página:

SuiteCRM seguro com Let's Encrypt

Em seguida, você precisará instalar o pacote do cliente Certbot para instalar e gerenciar o Let's Encrypt SSL.

Primeiro, instale o Certbot com o seguinte comando:

apt-get install certbot python3-certbot-nginx -y

Assim que a instalação for concluída, execute o seguinte comando para instalar o Let's Encrypt SSL em seu site:

certbot --nginx -d suitecrm.example.com

Você será solicitado a fornecer um endereço de e-mail válido e aceitar os termos de serviço conforme mostrado abaixo:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for suitecrm.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/suitecrm.conf

Em seguida, escolha se deseja ou não redirecionar o tráfego HTTP para HTTPS conforme mostrado abaixo:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digite 2 e pressione Enter para finalizar a instalação. Você deverá ver a seguinte saída:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/suitecrm.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://suitecrm.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=suitecrm.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/suitecrm.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/suitecrm.example.com/privkey.pem
   Your cert will expire on 2021-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Agora, seu SuiteCRM está protegido com Let's Encrypt SSL. Você pode acessá-lo com segurança usando o URL https://suitecrm.example.com

Conclusão

É isso por enquanto. Você instalou com sucesso o SuiteCRM com Nginx e Let's Encrypt SSL no Ubuntu 20.04. Agora você pode implementar o SuiteCRM em sua organização. Para mais informações, acesse o manual do usuário do SuiteCRM.

Artigos relacionados: