GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar SuiteCRM en Ubuntu 20.04 con Apache/Nginx

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

Características de SuiteCRM

  • Sistema de calendario/recordatorios
  • Almacenamiento de documentos
  • Marketing por correo electrónico
  • Integración de chat interno
  • calificación de plomo
  • automatización de 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, atención al cliente, colaboración, CRM móvil, CRM social e informes.
  • Instale complementos para ampliar la funcionalidad de SuiteCRM.
  • SuiteCRM se puede integrar 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 roles de usuario.
  • Y mucho más

Requisitos previos para instalar SuiteCRM en el servidor Ubuntu 20.04

SuiteCRM está escrito en PHP y se basa en el servidor de base de datos MySQL/MariaDB. Por lo tanto, debe configurar una pila LAMP o una pila LEMP. Si prefiere Apache servidor web, luego configure la pila LAMP.

  • Cómo instalar la pila LAMP en Ubuntu 20.04

Si prefieres Nginx servidor web, luego configure la pila LEMP.

  • Cómo instalar LEMP Stack en Ubuntu 20.04

También necesita un nombre de dominio. Registré mi nombre de dominio de NameCheap porque el precio es bajo y brindan protección de privacidad whois gratis de por vida. Sin más preámbulos, instalemos SuiteCRM en el servidor Ubuntu 20.04.

Paso 1:descargue SuiteCRM en su servidor Ubuntu 20.04

Descargue la última versión estable ejecutando el siguiente comando en su servidor.

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

Instale el unzip utilidad y descomprímalo en /var/www/ directorio.

sudo apt install unzip

sudo mkdir -p /var/www/

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

Se guardará en /var/www/SuiteCRM-7.11.18/ directorio. Lo renombramos para hacerlo más simple.

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

Luego 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

Inicie sesión en la consola de MariaDB.

sudo mysql -u root

Luego, cree una nueva base de datos para SuiteCRM usando el siguiente comando. Este tutorial lo llama suitecrm , puede usar el nombre que desee 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, otorgará todos los permisos de la nueva base de datos al nuevo usuario para que más adelante SuiteCRM pueda escribir en la base de datos. Reemplace los textos en rojo con su nombre de base de datos, nombre de usuario y contraseña preferidos.

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

Vacíe la tabla de privilegios y salga de la consola de MariaDB.

FLUSH PRIVILEGES;

EXIT;

Paso 3:Instale los módulos PHP requeridos 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 usa el servidor web Apache, debe deshabilitar el módulo PHP para Apache.

sudo a2dismod php7.4

También debe deshabilitar el módulo MPM prefork en Apache.

sudo a2dismod mpm_prefork

Ahora debe ejecutar el siguiente comando para habilitar tres módulos para usar PHP-FPM en Apache, independientemente de si mod_php está instalado en su servidor.

sudo a2enmod mpm_event proxy_fcgi setenvif

Luego reinicie Apache.

sudo systemctl restart apache2

Paso 4:Cree un host virtual de Apache o un archivo de configuración de Nginx para SuiteCRM

Apache

Si usa el servidor web Apache, cree un host virtual para SuiteCRM.

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

Coloque el siguiente texto en el archivo. Reemplace suitecrm.example.com con su nombre de dominio real y no olvide crear un registro DNS A para él.

<VirtualHost *:80>
  ServerName suitecrm.example.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>

Guarde y cierre el archivo. Luego habilite este host virtual con:

sudo a2ensite suitecrm.conf

Vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

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

Nginx

Si usa el servidor web Nginx, cree un host virtual para SuiteCRM.

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

Coloque el siguiente texto en el archivo. Reemplace suitecrm.example.com con su nombre de dominio real y no olvide crear un registro DNS A para él.

server {
   listen 80;
   listen [::]:80;
   server_name suitecrm.example.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;
  }
}

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

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

Paso 5:habilitar 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 Let's Encrypt (certbot) en el servidor Ubuntu 20.04.

sudo apt install certbot

Si usa Nginx , entonces también necesita instalar el complemento 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 [email protected] -d suitecrm.example.com

Si usa Apache , instale el complemento Apache de Certbot.

sudo apt install python3-certbot-apache

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

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d suitecrm.example.com

donde

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 6:Aumente el límite de tamaño del archivo de carga

PHP establece un límite para el tamaño del archivo de carga. El tamaño de archivo máximo predeterminado para cargar es de 2 MB. Para aumentar el tamaño de carga, edite el archivo de configuración de PHP.

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

Busque la siguiente línea (línea 846).

upload_max_filesize = 2M

Cambie el valor como a continuación. Se recomienda configurarlo en al menos 20 MB.

upload_max_filesize = 20M

Guarde y cierre el archivo. Alternativamente, puede 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

Luego reinicie PHP-FPM.

sudo systemctl restart php7.4-fpm

También reinicie Apache/Nginx.

sudo systemctl restart apache2

o

sudo systemctl restart nginx

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

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

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

Primero, acepte la licencia GNU AGPL.

Luego verificará el entorno de su servidor. Si todo está bien, haga clic en Siguiente .

Luego ingrese los detalles de la base de datos MariaDB/MySQL creados en el paso 2. También debe establecer una contraseña para el usuario administrador, que se usará para iniciar sesión en la interfaz web. Cambie la URL a https://suitecrm.your-domain.com e ingrese su dirección de correo electrónico.

En more options sección, puede configurar los ajustes de correo electrónico, como configurar el nombre y la dirección del remitente.

Si SuiteCRM está instalado en su servidor de correo, puede usar 127.0.0.1 como servidor SMTP y el puerto 25 como puerto SMTP, por lo que SuiteCRM usará su propio servidor de correo para enviar correos electrónicos.

Si SuiteCRM y su servidor de correo se ejecutan en hosts diferentes y desea que SuiteCRM envíe correos electrónicos a través de su servidor de correo, debe elegir Other como transporte postal. Entonces

  • Ingrese el nombre de host de su servidor de correo
  • Elija el puerto 587
  • Elija el cifrado TLS.
  • Ingrese la credencial de inicio de sesión de una dirección de correo electrónico en su servidor de correo.

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

Paso 8:habilite HTTP2 para mejorar el rendimiento

Puede habilitar el protocolo HTTP2 para mejorar el rendimiento de carga de la página para SuiteCRM.

Apache

Primero, debe habilitar el módulo HTTP2.

sudo a2enmod http2

Luego abra el archivo de host virtual SSL.

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

Coloque la siguiente directiva después de la apertura <VirtualHost *:443> etiqueta.

Protocols h2 http/1.1

Guarde y cierre el archivo. Luego reinicie Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Nginx

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

listen 443 ssl; # managed by Certbot

Simplemente agregue http2 después de ssl .

listen 443 ssl http2; # managed by Certbot

Guarde y cierre el archivo. Luego recarga Nginx.

sudo systemctl reload nginx

Paso 9:Agregar trabajos cron

SuiteCRM depende de los trabajos de Cron para funcionar correctamente. Edite el archivo crontab del usuario de www-data. (No debe agregar comandos de SuiteCRM en el archivo crontab del usuario raíz).

sudo -u www-data crontab -e

Agregue las siguientes líneas al final de este archivo.

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

Guarde y cierre el archivo.

Cómo integrarse con Mautic

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

Primero, debemos ir a la interfaz web de SuiteCRM, hacer clic en la flecha desplegable en la esquina superior derecha para acceder al módulo de administración.

Luego desplácese hacia abajo y seleccione Claves OAuth.

Cree una nueva clave OAuth. Asigne a la clave un nombre como mautic . Ingrese algo como matuic-suitecrm en la Consumer key campo. Luego ingrese algunos caracteres aleatorios en el Consumer Secret campo. Guarde sus cambios.

A continuación, vaya a Mautic Settings -> Plugins -> SugarCRM . Ingrese su URL de SuiteCRM, clave de cliente (clave de consumidor) y secreto de cliente (secreto de consumidor). Luego ingrese el nombre de usuario y la contraseña del administrador de SuiteCRM. Seleccione la versión 6.x/community. Haga clic en el botón Autorizar aplicación.

Una vez autorizado, puede cambiar el estado de publicación de No a Yes . Si encuentra un error al intentar autorizar la aplicación, asegúrese de que los registros DNS para su subdominio Mautic y SuiteCRM se propaguen a Internet.


Ubuntu
  1. Cómo instalar Apache en Ubuntu 18.04

  2. Cómo instalar Apache en Ubuntu 20.04

  3. Cómo instalar Nginx en Ubuntu 16.04

  4. Cómo instalar Joomla con Apache en Ubuntu 18.04

  5. Cómo instalar Elgg con Nginx en Ubuntu 14.04

Cómo instalar InvoiceNinja en un servidor Ubuntu 18.04 con Apache/Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 20.04 con Apache/Nginx

Cómo instalar Apache Tomcat 10 en Ubuntu 20.04 con Nginx

Cómo instalar Apache Tomcat 10 en Ubuntu 22.04 con Nginx

Cómo instalar Apache en Ubuntu 22.04

Cómo instalar Nginx en Ubuntu 22.04