Como instalar SuiteCRM en Ubuntu 20.04

Este tutorial le mostrará cómo instalar SuiteCRM en Ubuntu 20.04 con un servidor web Apache o Nginx. SuiteCRM es una solución de software libre de gestión de relaciones con los clientes de código abierto que proporciona una visión de 360 grados de sus clientes y negocios. Es una variante del popular software SugarCRM que dejó de proporcionar su edición comunitaria de código abierto en 2014.

suitecrm

Características

  • Sistema de calendario/recordatorio
  • Almacenamiento de documentos
  • Marketing por correo electrónico
  • Integración del chat interno
  • Calificación de clientes potenciales
  • automatización del marketing
  • acceso móvil
  • Cuotas/Estimaciones
  • Segmentación
  • Integración de redes sociales
  • gestión de tareas
  • gestión de territorios
  • automatización de la fuerza de ventas, campañas de marketing, asistencia al cliente, colaboración, Mobile CRM, Social CRM y elaboración de informes.
  • Instale plugins para ampliar su funcionalidad
  • Puede integrarse fácilmente con servicios de retransmisión SMTP de terceros como Gmail, Mandrill, Sendgrid, Amazon SES. También puede utilizar su propio servidor de correo.
  • Puede integrarse perfectamente con muchas aplicaciones populares de terceros como Mautic, Gmail, Facebook, Twitter, GoToMeeting, MailChimp, Zoom, Quickbooks, Avaya, DocuSign, etc.
  • Admite múltiples cuentas y funciones de usuario.
  • Y mucho más

Requisitos previos a la instalación en Ubuntu 20.04

Si todavía no tienes tu propio servidor de correo, te recomiendo que utilices el programa gratuito iRedMail para configurar rápidamente tu propio servidor de correo antes de instalar Mautic, para que no tengas que gastar dinero en un servicio comercial de enios SMTP.

Mautic está escrito en PHP y depende del servidor de base de datos MySQL/MariaDB. Por lo tanto, necesitas configurar una pila LAMP o una pila LEMP. Si prefiere el servidor web Apache, entonces configure la pila LAMP.

Cómo instalar la pila LAMP en Ubuntu 20.04

Si prefieres usar el servidor web Nginx, entonces configure la pila LEMP.

Cómo instalar la pila LEMP en Ubuntu 20.04

Ten en cuenta que iRedMail configurará automáticamente una pila LEMP por ti, así que si vas a instalar Mautic en tu servidor iRedMail, no necesitas configurar la pila LEMP de nuevo.

También necesitas un nombre de dominio. Yo registré mi nombre de dominio en NameCheap porque el precio es bajo y dan protección de privacidad whois gratis de por vida. Sin más preámbulos, vamos a instalar Mautic en el servidor Ubuntu 20.04.

Paso 1: Descarga SuiteCRM en tu servidor Ubuntu 20.04

Descarga la última versión estable ejecutando el siguiente comando en tu servidor.

wget https://suitecrm.com/files/162/SuiteCRM-7.11/525/SuiteCRM-7.11.18.zip

Instala la utilidad unzip y descomprímelo en el directorio /var/www/.

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip SuiteCRM-7.11.18.zip -d /var/www/

Se guardará en el directorio /var/www/SuiteCRM-7.11.18/. Le cambiamos el nombre para que sea más sencillo.

sudo mv /var/www/SuiteCRM-7.11.18/ /var/www/suitecrm

A continuación, ejecute los siguientes comandos para establecer los permisos correctos.

cd /var/www/suitecrm

sudo chown -R www-data:www-data /var/www/suitecrm/

sudo chmod -R 755 .

sudo chmod -R 775 cache custom modules themes data upload

sudo chmod 775 config_override.php 2>/dev/null

Paso 2: Crear una base de datos MariaDB y un usuario para SuiteCRM

Inicia sesión en la consola de MariaDB.

sudo mysql -u root

A continuación, cree una nueva base de datos para SuiteCRM utilizando el siguiente comando. La llamamos suitecrm, puedes usar el nombre que quieras para la base de datos.

CREATE DATABASE suitecrm;

El siguiente comando creará un usuario y una contraseña para la base de datos, y al mismo tiempo concederá todos los permisos de la nueva base de datos al nuevo usuario para que posteriormente SuiteCRM pueda escribir en la base de datos. Reemplaza los textos en azul por el nombre de la base de datos, el nombre de usuario y la contraseña que prefieras.

GRANT ALL ON suitecrm.* TO 'suitecrm'@'localhost' IDENTIFIED BY 'password';

Flush privileges table and exit MariaDB console.

FLUSH PRIVILEGES;

EXIT;

Paso 3: Instalar los módulos PHP necesarios y recomendados.

Ejecute el siguiente comando para instalar los módulos PHP requeridos o recomendados por SuiteCRM

sudo apt install php-imagick php7.4-fpm php7.4-mysql php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp

Si utilizas el servidor web Apache, entonces debe desactivar el módulo PHP para Apache.

sudo a2dismod php7.4

También es necesario desactivar el módulo MPM prefork en Apache.

sudo a2dismod mpm_prefork

Ahora necesitas ejecutar el siguiente comando para habilitar tres módulos con el fin de utilizar PHP-FPM en Apache, independientemente de si mod_php está instalado en tu servidor.

sudo a2enmod mpm_event proxy_fcgi setenvif

A continuación, reinicia Apache.

sudo systemctl restart apache2

Paso 4: Crear el archivo de configuración de Apache Virtual Host o Nginx para SuiteCRM

Apache

Si utilizas el servidor web Apache, crea un host virtual para SuiteCRM.

sudo nano /etc/apache2/sites-available/suitecrm.conf

Coloca el siguiente texto en el archivo. Sustituye suitecrm.dominio.com por tu nombre de dominio real y no olvides crear un registro DNS A para él.

<VirtualHost *:80>
  ServerName suitecrm.dominio.com
  DocumentRoot /var/www/suitecrm/

  ErrorLog ${APACHE_LOG_DIR}/suitecrm_error.log
  CustomLog ${APACHE_LOG_DIR}/suitecrm_access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/suitecrm/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

Include /etc/apache2/conf-available/php7.4-fpm.conf

</VirtualHost>

Guarda y cierra el archivo. A continuación, habilita este host virtual con:

sudo a2ensite suitecrm.conf

Recarga Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Nginx

Ahora deberías poder ver el asistente de instalación de SuiteCRM basado en la web en http://suitecrm.dominio.com/install.php.

Si utilizas el servidor web Nginx, crea un host virtual para SuiteCRM.

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

Coloca el siguiente texto en el archivo. Sustituye suitecrm.dominio.com por tu nombre de dominio real y no olvides crear un registro DNS A para él.

server {
   listen 80;
   listen [::]:80;
   server_name suitecrm.dominio.com;

   root /var/www/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;
     #Note: If you install SuiteCRM on iRedMail server, you should use the TCP socket instead. 
     #fastcgi_pass 127.0.0.1:9999
   }

   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;
     #Note: If you install SuiteCRM on iRedMail server, you should use the TCP socket instead.
     #fastcgi_pass 127.0.0.1:9999
     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;
  }
}

Guarda y cierra el archivo. A continuación, prueba la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, recarga Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora deberías poder ver el asistente de instalación de SuiteCRM basado en la web en http://suitecrm.dominio.com/install.php.

Step 5: Enabling HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let’s Encrypt. Ejecute el siguiente comando para instalar el cliente de Let’s Encrypt (certbot) en el servidor de Ubuntu 20.04.

sudo apt install certbot

Si usas Nginx, entonces también necesitas instalar el plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d suitecrm.dominio.com

Si utilizas Apache, instala el plugin de Certbot para Apache.

sudo apt install python3-certbot-apache

Y ejecuta este comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d suitecrm.dominio.com

Dónde

  • --nginx: Utilizar el plugin nginx.
  • --apache: Utilizar el plugin de Apache.
  • --agree-tos: Aceptar las condiciones del servicio.
  • --redirect:Forzar HTTPS mediante una redirección 301.
  • --hsts: Añadir la cabecera Strict-Transport-Security a cada respuesta HTTP. Obliga al navegador a utilizar siempre TLS para el dominio. Protege contra el SSL/TLS Stripping.
  • --staple-ocsp: Activa el grapado OCSP. Una respuesta OCSP válida se grapa al certificado que el servidor ofrece durante TLS.

El certificado debería obtenerse e instalarse automáticamente.

Paso 6: Aumentar el límite de tamaño de los archivos cargados

PHP establece un límite para el tamaño de los archivos a subir. El tamaño máximo de archivo por defecto para subir es de 2MB. Para aumentar el tamaño de subida, edita el archivo de configuración de PHP.

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

Encuentra la siguiente línea.

upload_max_filesize = 2M

Cambia el valor como se indica a continuación. Se recomienda establecer un valor de al menos 20MB.

upload_max_filesize = 20M

Guarda y cierra el archivo. Alternativamente, puedes ejecutar el siguiente comando para cambiar el valor sin abrir manualmente el archivo.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

A continuación, reinicia PHP-FPM.

sudo systemctl restart php7.4-fpm

También reinicia Apache/Nginx.

sudo systemctl restart apache2

o

sudo systemctl restart nginx

Paso 7: Finalizar la instalación de SuiteCRM en el navegador web

Ahora, en la barra de direcciones de su navegador, escriba el nombre de su dominio para SuiteCRM para acceder al asistente de instalación web.

https://suitecrm.your-domain.com/install.php

En primer lugar, acepta la licencia GNU AGPL.

A continuación, comprueba el entorno de tu servidor. Si todo está bien, haz clic en Siguiente.

A continuación, introduce los detalles de la base de datos MariaDB/MySQL creada en el paso 2. También tienes que establecer una contraseña para el usuario administrador, que se utilizará para iniciar sesión en la interfaz web. Cambia la URL a https://suitecrm.your-domain.com e introduce tu dirección de correo electrónico.

En la sección de más opciones, puedes configurar los ajustes del correo electrónico, como establecer el nombre y la dirección del remitente.

Si SuiteCRM está instalado en tu servidor de correo, entonces puedes utilizar 127.0.0.1 como servidor SMTP y el puerto 25 como puerto SMTP, así SuiteCRM utilizará tu propio servidor de correo para enviar los emails.

Si SuiteCRM y tu servidor de correo se ejecutan en diferentes hosts y quieres que SuiteCRM envíe correos electrónicos a través de tu servidor de correo, entonces debes elegir Otro como transporte de correo. A continuación,

  • Introduce el nombre de host de tu servidor de correo
  • Elige el puerto 587
  • Elige la encriptación TLS.
  • Introduce las credenciales de acceso de una dirección de correo electrónico de tu servidor de correo.

Haz clic en el botón Siguiente y se instalará SuiteCRM.

Paso 8: Activar HTTP2 para mejorar el rendimiento

Puede habilitar el protocolo HTTP2 para mejorar el rendimiento de carga de las páginas de SuiteCRM.

Apache

En primer lugar, debes habilitar el módulo HTTP2.

sudo a2enmod http2

A continuación, abre el archivo de host virtual SSL.

sudo nano /etc/apache2/sites-enabled/suitecrm-le-ssl.conf

Coloca la siguiente directiva después de la etiqueta de apertura .

Protocols h2 http/1.1

Guarda y cierra el archivo. A continuación, reinicia Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Nginx

Para habilitar el protocolo HTTP2 en el host virtual Nginx, encuentra la siguiente línea.

listen 443 ssl; # managed by Certbot

Simplemente añade http2 después de ssl.

listen 443 ssl http2; # managed by Certbot

Guarda y cierra el archivo. A continuación, vuelva a cargar Nginx.

sudo systemctl reload nginx

Paso 9: Añadir Cron Jobs

SuiteCRM depende de los trabajos Cron para funcionar correctamente. Edita el archivo crontab del usuario www-data. (No debe añadir comandos de SuiteCRM en el archivo crontab del usuario root).

sudo -u www-data crontab -e

Añade las siguientes líneas al final de este archivo.

######  SuiteCRM Cron Job #######
* * * * *  php7.4 -f /var/www/suitecrm/cron.php > /dev/null 2>&1

Guarda y cierra el archivo.

Cómo integrarse con Mautic

Mautic es una alternativa gratuita de código abierto a los proveedores de servicios de correo electrónico comerciales como MailChimp. Mautic tiene un plugin de SugarCRM, y como SuiteCRM se basa en SugarCRM 6.x, podemos utilizar el plugin de SugarCRM para integrarnos con Mautic.

First, we need to go to SuiteCRM web interface, click the dropdown arrow on the upper-right corner to access the administration module.

Then scroll down and select OAuth Keys.

Crea una nueva clave OAuth. Dale a la clave un nombre como mautic. Introduce algo como matuic-suitecrm en el campo Consumer key. A continuación, introduzca algunos caracteres aleatorios en el campo Secreto del consumidor. Guarde los cambios.

A continuación, ve a Mautic Settings -> Plugins -> SugarCRM. Introduce la URL de SuiteCRM, la clave de cliente (clave de consumidor) y el secreto de cliente (secreto de consumidor). A continuación, introduce el nombre de usuario y la contraseña del administrador de SuiteCRM. Selecciona la versión 6.x/community. Haga clic en el botón Autorizar App.

Una vez autorizada, puedes cambiar el estado de publicación de No a Sí. Si te encuentras con un error al intentar autorizar la aplicación, asegúrate de que los registros DNS de tu subdominio de Mautic y SuiteCRM se han propagado a Internet.

Ahora ya tienes tu propia gestión de clientes y puedes empezar a convertir tus contactos de Mautic en clientes y agendar acciones a realizar sobre ellos y gestionar tus conversaciones con ellos en una única aplicación.

¡Que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...