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.