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
- O que faremos
- Pré-requisitos
- Etapa 1 - Instalar o servidor da Web Nginx
- Etapa 2 - Instalar e configurar o PHP-FPM
- Etapa 3 - Instalar e configurar o MariaDB
- Etapa 4 - Baixe e configure o SuiteCRM
- Etapa 5 - Instalador da Web do SuiteCRM
- Etapa 6 - Etapas finais
- 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
- Instalar o servidor da Web Nginx
- Instalar e configurar o PHP-FPM
- Instalar e configurar o MariaDB
- Baixe e configure o SuiteCRM
- Instalador da Web do SuiteCRM
- 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/