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
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.
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.
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.
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.
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;
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.
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:
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.
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.
Si todo va bien, deberías ver el panel de administración de SuiteCRM como el siguiente:
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.