Cómo instalar SuiteCRM en Debian 12

SuiteCRM es un software CRM (Customer Relationship Management) gratuito y de código abierto escrito en PHP. Te ayuda a organizar y gestionar los departamentos de marketing, ventas y atención al cliente de tu empresa. SuiteCRM es adecuado para casi todos los sectores, como la industria manufacturera, el sector público, la tecnología, las finanzas, la educación, etc.

En esta guía, te guiaremos paso a paso por la instalación de SuiteCRM en el servidor Debian 12. Instalarás y ejecutarás SuiteCRM con la pila LAMP (Apache2, MariaDB y PHP) en tu máquina Debian. También asegurarás SuiteCRM con certificados SSL/TLS de Letsencrypt.

Requisitos previos

Los siguientes requisitos son necesarios para continuar con esta guía:

  • Un servidor Debian 12.
    Un usuario no root con privilegios de administrador.
    Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

SuiteCRM es un software CRM escrito en PHP con MySQL/MariaDB como base de datos. En esta guía, ejecutarás SuiteCRM con la Pila LAMP (Apache2, MariaDB y PHP), y ahora instalarás paquetes de la Pila LAMP con extensiones PHP adicionales.

En primer lugar, actualiza el índice de paquetes de Debian mediante el comando apt update que aparece a continuación.

sudo apt update

actualizar repo

Ahora instala los paquetes LAMP Stack (Apache2, MariaDB y PHP) con algunas extensiones de PHP mediante el siguiente comando.

sudo apt install apache2 mariadb-server php php-cli php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-intl php-cli php-opcache php-soap php-imap php-ldap unzip

Escribe y para proceder a la instalación.

instalar dependencias

A continuación, ejecuta el siguiente comando systemctl para verificar el servicio apache2. Esto asegurará que el servicio apache2 está habilitado y en ejecución.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

La salida enabled confirma que apache2 está habilitado, y la salida active (running) confirma que apache2 está en ejecución.

comprobar apache2

Verifica el servicio mariadb utilizando el siguiente comando.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

De forma similar a la salida del servicio apache2, deberías ver que el servicio mariadb está habilitado y en ejecución.

comprobar mariadb

Por último, verifica la versión de PHP y algunas extensiones habilitadas ejecutando el siguiente comando.

php -v
php -m

La siguiente salida te muestra que PHP 8. 2 está instalado con algunos módulos habilitados como curl, exif, fileinfo y gd.

comprobar php

Configurar el servidor MariaDB

Después de instalar las dependencias, asegurarás la instalación de tu servidor MariaDB y crearás una nueva base de datos y un nuevo usuario que se utilizarán para SuiteCRM.

Ejecuta el siguiente comando mariadb-secure-installation para asegurar tu servidor MariaDB.

sudo mariadb-secure-installation

Durante el proceso, introduce Y para confirmar la configuración o n para No y denegar los cambios.

  • ¿Cambiar a autenticación unix_socket? Introduce n y pulsa ENTER. El usuario raíz por defecto de MariaDB ya está protegido. opcionalmente, también puedes habilitarlo tecleando y para sí.
  • ¿Cambiar la contraseña de root? Introduce y para confirmar y establecer tu nueva contraseña de root de MariaDB.
  • ¿Eliminar usuario anónimo? Introduce y para confirmar.
  • ¿Deshabilitar el inicio de sesión de root de forma remota? Introduce y para confirmar. Sólo se permitirá la conexión local si utilizas el usuario raíz de MariaDB.
  • ¿Quitar la base de datos de prueba y el acceso a ella? Introduce y para confirmar y eliminar la base de datos por defecto «test».
  • Por último, introduce y de nuevo para recargar todos los privilegios de las tablas en tu servidor MariaDB y aplicar los nuevos cambios.

Ahora que MariaDB está protegido, crearás una nueva base de datos y un nuevo usuario para SuiteCRM.

Inicia sesión en el servidor MariaDB mediante el siguiente comando de cliente mariadb. Introduce tu contraseña de root de MariaDB cuando te lo pida.

sudo mariadb -u root -p

A continuación, ejecuta las siguientes consultas para crear una nueva base de datos suitecrmdb y el usuario suitecrm con contraseña password. Asegúrate de cambiar la contraseña por tu propia contraseña.

CREATE DATABASE suitecrmdb;
CREATE USER 'suitecrm'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON suitecrmdb.* TO 'suitecrm'@'localhost';
FLUSH PRIVILEGES;

crear base de datos y usuario

Ahora ejecuta la siguiente consulta para verificar el usuario suitecrm.

SHOW GRANTS FOR 'suitecrm'@'localhost';

En la siguiente salida, deberías ver que el usuario suitecrm tiene acceso a la base de datos suitecrmdb.

usuario de la base de datos veridy

Escribe quit para salir del servidor MariaDB.

Configurar PHP

Ahora que el servidor MariaDB está configurado, el siguiente paso es configurar tu instalación de PHP. SuiteCRM requiere algunos cambios en las configuraciones de PHP, como el error_reporting personalizado, habilitar el módulo OPCache, y también el upload_max_filesize y post_max_size personalizados.

Abre la configuración PHP por defecto /etc/php/8.2/apache2/php.ini y /etc/php/8.2/cli/php.ini utilizando el siguiente comando del editor nano.

sudo nano /etc/php/8.2/apache2/php.ini
sudo nano /etc/php/8.2/cli/php.ini

Cambia los parámetros por defecto de algunas configuraciones utilizando las siguientes líneas. Asegúrate de ajustar date.timezone con la zona horaria de tu servidor, y memory_limit con la memoria del servidor.

date.timezone = Europe/Amsterdam

max_execution_time = 60
memory_limit = 256M

upload_max_filesize = 25M
post_max_size = 25M

Cambia el parámetro por defecto error_reporting así:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING

Descomenta el parámetro session.save_path para configurar la ruta de sesión por defecto a /var/lib/php/sessions.

session.save_path = "/var/lib/php/sessions"

Ahora activa la extensión OPCache y ajusta algunos parámetros como los siguientes:

opcache.enable=1
; The OPcache shared memory storage size.
opcache.memory_consumption=256

; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 100000 are allowed.
opcache.max_accelerated_files=20000

; When disabled, you must reset the OPcache manually or restart the
; webserver for changes to the filesystem to take effect.
opcache.validate_timestamps=0

Guarda y cierra el archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios que has realizado.

sudo systemctl restart apache2

Descarga e instalación de SuiteCRM

Llegados a este punto, la Pila LAMP ya está configurada para SuiteCRM. Ahora descargarás el código fuente de SuiteCRM y lo instalarás mediante la línea de comandos.

Crea un nuevo directorio /var/www/suitecrm que se utilizará como instalación de destino para SuiteCRM.

mkdir -p /var/www/suitecrm

Desplázate al directorio /var/www/suitecrm y descarga el código fuente de SuiteCRM utilizando el comando wget que aparece a continuación. Asegúrate de consultar la página de descargas de SuiteCRM para obtener la última versión del código fuente. En este momento, SuiteCRM 8. 4 es la última versión.

cd /var/www/suitecrm
wget https://suitecrm.com/download/142/suite84/562972/suitecrm-8-4-0.zip

Una vez descargado, extrae el archivo suitecrm-8-4-0. zip utilizando el comando unzip que aparece a continuación.

unzip suitecrm-8-4-0.zip

A continuación, ejecuta el siguiente comando para establecer los permisos y la propiedad adecuados del código fuente de SuiteCRM.

find . -type d -not -perm 2755 -exec chmod 2755 {} \;
find . -type f -not -perm 0644 -exec chmod 0644 {} \;
find . ! -user www-data -exec chown www-data:www-data {} \;
chmod +x bin/console

Por último, ejecuta el archivo binario /var/www/suitecrm/bin/console para instalar SuiteCRM a través de la línea de comandos. Asegúrate de cambiar los detalles del nombre de la base de datos, el usuario, el host, el nombre del dominio de destino, el usuario administrador y la contraseña que se utilizarán para la instalación de SuiteCRM.

sudo -u www-data ./bin/console suitecrm:app:install -u "alice" -p "password" -U "suitecrm" -P "password" -H "127.0.0.1" -N "suitecrmdb" -S "http://suitecrm.hwdomain.io/"

Una vez finalizada la instalación, se mostrará la siguiente salida en tu terminal:

instalar suitcrm mediante cli

Configuración del host virtual Apache2 para Suite

En el siguiente paso, crearás una nueva configuración de host virtual Apache2 que se utilizará para ejecutar SuiteCRM. Antes de proceder, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP de tu servidor.

Ejecuta el siguiente comando a2enmod para habilitar los módulos de Apache2 necesarios para SuiteCRM.

sudo a2enmod rewrite ssl header

A continuación, crea una nueva configuración de host virtual Apache2 /etc/apache2/sites-available/suitecrm.conf utilizando el siguiente comando del editor nano.

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

Introduce la siguiente configuración y asegúrate de cambiar la opción ServerName por el nombre de tu dominio.

<VirtualHost *:80>
DocumentRoot /var/www/suitecrm/public
ServerName suitecrm.hwdomain.io

<Directory /var/www/suitecrm/public>
Options FollowSymLinks
AllowOverride All
</Directory>

ErrorLog /var/log/apache2/suitecrm-error.log
CustomLog /var/log/apache2/suitecrm-access.log common

</VirtualHost>

Guarda y cierra el archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando para activar el archivo de host virtual suitecrm.conf y verifica tus configuraciones de Apache2.

sudo a2ensite suitecrm.conf
sudo apachectl configtest

Si la sintaxis es correcta, deberías obtener la salida Sintaxis OK.

configurar vhosts

A continuación, ejecuta el siguiente comando systemctl para reiniciar el servicio apache2 y aplicar los cambios.

sudo systemctl restart apache2

Por último, abre tu navegador web y visita el nombre de dominio de tu instalación de SuiteCRM, como http://suitecrm.hwdomain.io/. Si todo va bien, deberías ver la página de inicio de sesión de SuiteCRM.

Proteger SuiteCRM con SSL/TLS de Letsencrypt

Con todo configurado, ahora asegurarás SuiteCRM con certificados SSL/TLS de Letsencrypt.

Instala Certbot y el plugin Certbot Apache utilizando el siguiente comando apt install. Escribe y para proceder con la instalación.

sudo apt install certbot python3-certbot-apache

Ahora ejecuta el siguiente comando certbot para generar los certificados SSL/TLS. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email [email protected] -d suitecrm.hwdomain.io

Una vez finalizado el proceso, tus certificados SSL se generarán en el directorio /etc/letsencrypt/live/suitecrm.hwdomain.io. Además, el archivo suitecrm.conf del host virtual de SuiteCRM se configurará automáticamente con HTTPS.

Vuelve a tu navegador web y visita tu nombre de dominio SuiteCRM, deberías ser redirigido a la página de inicio de sesión de SuiteCRM para conexiones seguras HTTPS. Introduce tu usuario y contraseña de administrador y haz clic en Iniciar sesión.

página de acceso a suitecrm

Si todo va bien, deberías ver el panel de administración de SuiteCRM como el siguiente:

cuadro de mandos suitecrm

Conclusión

En resumen, ya has instalado correctamente SuiteCRM en un servidor Debian 12 con una pila LAMP (Apache2, MariaDB y PHP). También has asegurado SuiteCRM con SSL/TLS Letsencrypt, que se genera a través de Certbot. Ahora puedes utilizar SuiteCRM como la principal aplicación CRM (Customer Relationship Management) de tu empresa, y puedes empezar por añadir el servidor SMTP a tu instalación de SuiteCRM.

También te podría gustar...