Como instalar SuiteCRM com Nginx no CentOS 7
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
- Baixe o SuiteCRM
- Configurar o Firewalld
- Gerar novo SSL Letsencrypt
- Configurar host virtual SuiteCRM Nginx
SuiteCRM é um software de CRM (Customer Relationship Management) de código aberto baseado em PHP. É um fork do popular software de CRM SugarCRM e se tornou mais popular depois que a equipe por trás dele 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, mostraremos como instalar e configurar o SuiteCRM usando o Nginx como servidor Web. O software CRM será executado na pilha LEMP com HTTPS ativado. E para isso, usaremos o CentOS 7 como sistema operacional principal.
O que nos faremos
- Instalar o servidor da Web Nginx
- Instalar e configurar PHP-FPM
- Instalar e configurar o MariaDB
- Baixe e configure o SuiteCRM
- Instale o SuiteCRM por meio do instalador da Web
- Configuração final
Pré-requisitos
- Servidor CentOS 7
- Privilégios de root
Passo 1 - Instale o servidor Web Nginx
A primeira etapa que devemos fazer para conectar o servidor e instalar a pilha básica do SuiteCRM. Conecte-se ao servidor via SSH usando o seguinte comando:
ssh
Depois de conectar como usuário root, precisamos instalar um repositório de terceiros em nosso sistema. Especificamente, precisamos instalar o repositório EPEL (Extra Package for Enterprise Linux) no sistema antes de instalar o Nginx.
Instale o repositório EPEL usando o comando yum da seguinte maneira:
yum -y install epel-release
Agora podemos instalar o servidor web Nginx no sistema.
yum -y install nginx
Se a instalação estiver concluída, inicie o serviço e habilite-o para ser executado automaticamente no momento da inicialização usando o comando systemctl conforme mostrado abaixo.
systemctl start nginx
systemctl enable nginxO servidor da Web Nginx agora está instalado e, por padrão, está sendo executado na porta 80. Verifique-o usando os comandos netstat ou curl.
netstat -plntu
curl -I localhostCertifique-se de que a porta 80 esteja no status LISTEN e que o comando curl forneça o código de status HTTP 200 em sua saída.
Passo 2 - Instalar e configurar o PHP-FPM
Nesta etapa, instalaremos e configuraremos o PHP-FPM versão 7 no servidor CentOS 7. Por padrão, o centOS não fornece repositório para a nova versão 7 do PHP. Portanto, precisamos adicionar um repositório diferente para a instalação do PHP-FPM 7.
Adicione o novo repositório PHP 7 webtatic ao sistema usando o comando rpm.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Agora instale os pacotes e extensões do PHP 7 usando o comando yum conforme mostrado abaixo.
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
Se a instalação estiver concluída, edite o arquivo de configuração php.ini padrão usando o vim.
vim /etc/php.ini
Altere o tamanho máximo do arquivo de upload para a instalação do SuiteCRM para 100 MB. No mínimo, o SuiteCRM precisa de mais de 6 MB.
upload_max_filesize = 100M
Descomente a seguinte linha CGI e altere o valor para 0.
cgi.fix_pathinfo=0
Para a configuração do caminho da sessão, remova o comentário da linha e altere o caminho para /var/lib/session conforme mostrado abaixo.
session.save_path = "/var/lib/php/session"
É isso. Salve as alterações e saia do vim.
Agora crie um novo diretório para o caminho da sessão e altere as permissões de propriedade do diretório para o usuário e grupo nginx.
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/sessionEm seguida, precisamos editar a configuração do php-fpm. Para isso, vá até o diretório /etc/php-fpm.d e edite o arquivo de configuração www.conf.
cd /etc/php-fpm.d/
vim www.confAgora altere a linha de usuário e grupo para nginx.
user = nginx
group = nginxEm vez de usar a porta do sistema, o PHP-FPM será executado no arquivo de soquete unix.
Altere a linha de escuta:
listen = /var/run/php-fpm/php-fpm.sock
Defina a permissão para o arquivo de soquete Unix e a propriedade do arquivo de soquete conforme mostrado abaixo.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660É isso. Salve as alterações e saia do editor.
Agora inicie o serviço PHP-FPM e adicione-o para iniciar automaticamente no momento da inicialização.
systemctl start php-fpm
systemctl enable php-fpmCom isso, o PHP-FPM está instalado e rodando o arquivo socket.
Você pode verificar isso usando o comando netstat:
netstat -pl | grep php
Certifique-se de ver o arquivo php-fpm.sock.
Etapa 3 - Instalar e configurar o MariaDB
Nesta etapa, vamos instalar o MariaDB, iniciá-lo e ativá-lo para iniciar sempre na inicialização do sistema. E, finalmente, criaremos um novo banco de dados e usuário para instalação do SuiteCRM.
Instale o mariadb do repositório CentOS usando o seguinte comando yum.
yum install -y mariadb mariadb-server
Inicie o serviço MariaDB e habilite-o para iniciar o tempo de inicialização usando os comandos abaixo.
systemctl start mariadb
systemctl enable mariadbPortanto, o MariaDB agora está instalado e funcionando. Agora, precisamos configurar a senha root usando o comando mysql_secure_installation.
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] YPortanto, a senha root do MariaDB foi configurada.
Em seguida, precisamos criar um novo banco de dados e um novo usuário para instalação do SuiteCRM. Para isso, efetue login no shell do MySQL com o usuário root e sua senha.
mysql -u root -p
Crie um novo banco de dados denominado suitecrm_db e um novo usuário crmadmin com a senha hakase-labs123. Tudo isso pode ser feito usando as consultas mysql abaixo.
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;Portanto, a configuração do banco de dados para a instalação do SuiteCRM foi concluída.
Etapa 4 - Baixe e configure o SuiteCRM
Nesta etapa, faremos algumas tarefas para a instalação do SuiteCRM. Faremos o download do código-fonte do SuiteCRM, configuraremos o Firewalld, geraremos um novo SSL Letsencrypt e configuraremos o host virtual nginx para o SuiteCRM. Então vamos começar.
Baixar SuiteCRM
Se ainda não, instale o git em seu sistema usando o comando yum abaixo.
yum -y install git
Agora vá para o diretório /opt e baixe o código SuiteCRM usando o comando git conforme mostrado abaixo.
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrmDepois disso, crie um diretório de cache, altere as permissões para alguns arquivos e diretórios no diretório suitecrm e, em seguida, altere o proprietário de todo o código suitecrm para o usuário e grupo nginx.
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrmPortanto, o código suiteCRM foi baixado no servidor no diretório /opt/suitecrm/.
Configurar o Firewalld
Se você não tiver o Firewalld em execução no seu servidor, instale-o usando o seguinte comando.
yum -y install firewalld
Inicie o serviço e habilite-o para ser executado no momento da inicialização.
systemctl start firewalld
systemctl enable firewalldEm seguida, precisamos abrir novas portas HTTP e HTTPS. É usado para acesso ao SuiteCRM. Execute os seguintes comandos firewall-cmd para isso.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanentAgora recarregue as regras do firewalld usando o seguinte comando.
firewall-cmd --reload
Agora, novas portas HTTP e HTTPS foram adicionadas ao Firewalld. Se você quiser ver a configuração detalhada, execute o comando abaixo.
firewall-cmd --list-all
Gerar Novo SSL Letsencrypt
Neste tutorial, usaremos SSL para acesso ao SuiteCRM. E usaremos certificados SSL gratuitos da letsencrypt para esse fim.
Para gerar novos certificados SSL letsencrypt, precisamos primeiro instalar a ferramenta de comando letsencrypt certbot em nosso sistema. Está disponível no repositório do CentOS. Instale o certbot usando o seguinte comando yum.
yum -y install certbot
Quando a instalação do certbot estiver concluída, gere o arquivo de certificado SSL para o nome de domínio suiteCRM suitecrm.hakase-labs.co.
Execute o comando abaixo para gerar arquivos de certificado SSL.
certbot certonly --standalone -d suitecrm.hakase-labs.co
Você será questionado sobre o endereço de e-mail para renovar a notificação - digite seu e-mail e pressione Enter para continuar.
Para Letsencrypt TOS, digite A para concordar e pressione Enter novamente. E para a consulta de endereço de e-mail de compartilhamento, digite N e pressione Enter.
Quando a geração do certificado estiver concluída, você obterá o resultado abaixo.
Novos arquivos de certificado são gerados no diretório /etc/letsencrypt/live/domain.com.
Configurar host virtual SuiteCRM Nginx
Vá para o diretório de configuração do Nginx /etc/nginx e crie um novo arquivo suitecrm.conf no diretório conf.d usando o editor Vim.
cd /etc/nginx/
vim conf.d/suitecrm.confLá, cole o host virtual SuiteCRM Nginx abaixo.
# 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 "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
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 /usr/share/nginx/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:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}É isso. Salve a alteração e saia do Vim.
Agora teste a configuração do nginx e verifique se não há nenhum erro. Feito isso, reinicie o serviço.
nginx -t
systemctl restart nginxCom isso, a configuração do nginx para a instalação do SuiteCRM foi concluída.
Etapa 5 - Instalador da Web do SuiteCRM
Abra seu navegador da Web e visite o nome de domínio SuiteCRM: suitecrm.hakase-labs.co.
Você será redirecionado para a conexão HTTPS install.php e obterá a página sobre a licença GNU AFFERO. Marque a caixa Aceito e clique em Avançar.
Na página do ambiente do sistema, verifique se todos os resultados estão corretos.
E clique em Avançar para continuar.
Em seguida, vem a configuração do administrador e do banco de dados. Digite as informações do banco de dados, como dbname, dbuser e dbpassword. Para a configuração de administrador, digite seu nome de usuário, e-mail e senha.
Role até a parte inferior e clique em Avançar para continuar instalando o SuiteCRM.
Aguarde um momento, quando a instalação estiver concluída, e você será redirecionado para a página de login conforme mostrado abaixo.
Nesta página, digite o usuário administrador e a senha e pressione o botão Login.
E você obterá o painel do SuiteCRM conforme mostrado abaixo.
Então o SuiteCRM foi instalado.
Passo 6 - Configuração final
Nesta última etapa, precisamos adicionar configuração ao cronjob.
Basicamente, precisamos criar um novo cron como usuário e grupo nginx.
sudo crontab -e -u nginx
E cole a seguinte configuração.
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
Salvar e sair.
É isso. A instalação do SuiteCRM com servidor web Nginx no CentOS 7 foi concluída.
Referência
- https://suitecrm.com/wiki/index.php/Installation