Cómo instalar el software CRM de código abierto EspoCRM en Debian 9

En esta guía te mostraremos cómo instalar y configurar la última versión del software EspoCRM en Debian 9 sobre una pila LAMP, para crear una plataforma gratuita de gestión de relaciones con los clientes en línea para tu empresa.

EspoCRM es una plataforma de gestión de relaciones con los clientes (CRM) de código abierto, flexible y fácil de usar, diseñada para ser rápida, sencilla y personalizable. El software está escrito principalmente en el lenguaje de programación PHP y puede desplegarse fácilmente en Linux sobre un servidor web Apache o Nginx, el lenguaje de programación PHP y el sistema de gestión de bases de datos MySQL o MariaDB. EspoCRM es compatible con una gran variedad de idiomas y puede implantarse en centros de llamadas, bancos, educación, sanidad, turismo, comercio minorista, inmobiliaria o en negocios de comercio electrónico.

Requisitos

  • Instalación mínima en una máquina virtual o servidor físico del sistema operativo Debian 9
  • Privilegios de la cuenta raíz o una cuenta con privilegios de raíz a través del comando sudo (acceso local a través de la consola o acceso remoto a través de SSH)
  • Uno de los NIC del servidor configurado con una dirección IP estática
  • Un nombre de dominio público registrado para que realices la instalación a través de la interfaz web y accedas al sitio web de la aplicación. En las intranets, puedes acceder a la aplicación a través de un dominio local o a través de la dirección IP de tu servidor
  • ¡Un servidor de correo configurado en tus instalaciones o acceso a un servicio de correo electrónico público, como Gmail, Outlook, Yahoo!

Requisitos previos

En primer lugar, accede a la consola de tu servidor Debian y asegúrate de que actualizas los repositorios del sistema, el kernel y los paquetes de software mediante los siguientes comandos.

apt update
apt upgrade

A continuación, configura el nombre de host de la máquina ejecutando el siguiente comando. Asegúrate de sustituir el valor del nombre de host utilizado en este tema por tu propia notación.

hostnamectl set-hostname www.mycrm.org

Ejecuta los siguientes comandos para comprobar si el nombre de host de la máquina se ha configurado correctamente.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Por último, reinicia el servidor de Debian para que se apliquen las actualizaciones del kernel y el nombre de host cambie correctamente.

systemctl reboot

A continuación, debes instalar el paquete de software LAMP en el sistema Debian. En el primer paso, instala el servidor web Apache y un intérprete de la pasarela de procesamiento PHP junto con todos los módulos PHP necesarios para que la aplicación funcione correctamente, ejecutando el siguiente comando en la consola de tu servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap php7.0-soap php7.0-mcrypt php-mailparse

A continuación, instala un backend de base de datos RDBMS. En esta guía, configuraremos la aplicación EspoCRM para utilizar la base de datos MariaDB como backend. Emite el siguiente comando para instalar la base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos MySQL.

apt install mariadb-server php7.0-mysql mariadb-client

Una vez instalados Apache, la base de datos MySQL y PHP, abre el archivo de configuración por defecto de PHP para editarlo y modifica las siguientes variables de PHP como se describe a continuación. Asegúrate de que inicialmente haces una copia de seguridad del archivo de configuración de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busca, edita y cambia las siguientes variables en el archivo de configuraciónphp.ini:

file_uploads = On
default_charset = UTF-8
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
memory_limit = 256M
max_input_time = 180
max_execution_time = 180
zend.assertions = 0
date.timezone = Europe/London

Sustituye la time.zone a tu hora física consultando la lista de zonas horarias que proporciona la documentación de PHP en el siguiente enlace http://php.net/manual/en/timezones.php

Para aumentar la velocidad de carga de las páginas de tu aplicación mediante el plugin OPCache disponible en PHP7, inserta las siguientes líneas de código OPCache en la parte inferior del archivo de configuración del intérprete de PHP, debajo de la sentencia [opcache] como se detalla a continuación:

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Cierra el php.ini archivo de configuración y comprueba si las variables se han añadido correctamente, algo que puedes hacer emitiendo el siguiente comando.

grep opcache /etc/php/7.0/apache2/php.ini| grep -v ";"

A continuación, añade la siguiente regla de aplicación del cortafuegos UFW en tu sistema, para permitir que el tráfico HTTP pase a través del cortafuegos, emitiendo el siguiente comando

ufw allow WWW

o

ufw allow 80/tcp

Algunos administradores de sistemas prefieren las reglas iptables raw para gestionar las reglas del cortafuegos en el servidor Debian. En el caso de iptables, emite los siguientes comandos para instalar el cortafuegos y añade las siguientes reglas para permitir el tráfico de entrada de los puertos 80 y 22 (en el caso de las conexiones remotas SSH) para que puedas acceder al sistema y navegar por la aplicación a través de un navegador web.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Por último, abre un navegador y visita la dirección IP de tu máquina Debian o tu nombre de dominio a través del protocolo HTTP. Si no conoces la dirección IP de tu máquina, ejecuta el comando ifconfig o ip a para obtener la dirección IP de tu servidor. Si se establece la conexión con el servidor web, deberías poder ver la página web por defecto del servidor web Apache en tu navegador.

http://your_domain.tld

En el siguiente paso, habilita los módulos Apache rewrite, y deflate SSL que requiere el EspoCRM para funcionar correctamente, emitiendo el siguiente comando.

a2enmod rewrite deflate ssl

El módulo SSL requiere que también habilites el archivo de configuración SSL por defecto para poder visitar la aplicación a través del protocolo HTTPS. El protocolo HTTPS se utiliza para asegurar el tráfico entre el servidor y los clientes. Ejecuta el siguiente comando para habilitar el archivo de configuración del sitio Apache SSL.

a2ensite default-ssl.conf

Después, abre el archivo de configuración del sitio SSL por defecto de Apache con un editor de texto e inserta las siguientes líneas de código después de la directiva DocumentRoot como se muestra en el siguiente ejemplo, para activar las reglas colocadas en el archivo .htaccess. El archivo .htaccess suele estar situado en la parte superior de la raíz web de tu dominio.

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

También debes abrir el archivo/etc/apache2/sites-enabled/000-default.conf para editarlo y añadir las mismas reglas de reescritura de URL que se han insertado en el archivo de configuración SSL. Añade las líneas de código después de la declaración DocumentRoot como se muestra en el siguiente ejemplo.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Por último, reinicia el demonio de Apache para que se apliquen todas las reglas configuradas hasta el momento y visita tu dominio a través del protocolo HTTPS. Como estás utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, certificado que no es de confianza para el navegador, debería aparecer una advertencia de error de conexión insegura en el navegador. Acepta la advertencia para aceptar el certificado no fiable y seguir siendo redirigido a la página web por defecto de Apache.

systemctl restart apache2

https://yourdomain.tld

Aviso de certificado autofirmado SSL

Si planeas exponer tu plataforma EspoCRM para producción en Internet, deberías considerar la posibilidad de comprar un certificado emitido por una Autoridad de Certificación de confianza u obtener un par de certificados gratuitos de Let’s Encrypt CA, para que los clientes puedan visitar la aplicación sin que aparezcan errores en sus navegadores.

En caso de que la aplicación del cortafuegos UFW bloquee las conexiones de red entrantes al puerto HTTPS, deberías añadir una nueva regla para permitir que el tráfico HTTPS pase a través del cortafuegos, emitiendo el siguiente comando

ufw allow HTTPS

o

ufw allow 443/tcp

En el caso del cortafuegos iptables, añade la siguiente regla para permitir el tráfico entrante del puerto 443 en el cortafuegos para que puedas navegar por el nombre del dominio. Guarda y reinicia el servicio iptables para aplicar las reglas después de reiniciar el sistema.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

Por último, crea un archivo PHP info en la ruta webroot de tu dominio ejecutando el siguiente comando.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Comprueba los ajustes de PHP y la configuración de la zona horaria visitando el archivo de información de PHP desde un navegador en la siguiente URL, como se muestra en la siguiente imagen. Desplázate hasta la configuración dela fecha para comprobar la configuración de la zona horaria de PHP.

https://domain.tld/info.php

En el siguiente paso, entra en la consola del servidor MySQL y asegura la cuenta raíz de MariaDB ejecutando los siguientes comandos. Escribe exit para salir de la consola de la base de datos.

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(ninguno)]> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [mysql]> update user set plugin=» where user=’root’;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush privilegios;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [mysql]> exit

Bye

Además, ejecuta el scriptmysql_secure_installation para asegurar aún más el demonio MariaDB. Mientras se ejecuta el script se te harán una serie de preguntas diseñadas para asegurar la base de datos MariaDB, como: cambiar la contraseña de root de MySQL, eliminar los usuarios anónimos, desactivar los inicios de sesión de root remoto y eliminar la base de datos de prueba. Escribe «sí» para todas las preguntas que te hagan, como se ilustra en el siguiente extracto.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Comprueba el problema de seguridad del servidor MariaDB intentando acceder a la base de datos a través de la consola sin la contraseña de root. El acceso a la base de datos debería ser denegado si no se proporciona una contraseña para la cuenta de root, como se ilustra en el siguiente extracto del comando:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Ahora, intenta acceder a la base de datos con una contraseña de root. Deberías poder acceder a la consola de MySQL, como se muestra en el siguiente ejemplo de comando:

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Bye

Instalar EspoCRM

Después de que el servidor HTTP Apache, el demonio MariaDB y el intérprete PHP hayan sido configurados correctamente para instalar la aplicación EspoCRM en tu sistema Debian. Ejecuta el siguiente comando para instalar las utilidades de la línea de comandos mencionadas en él.

apt install wget bash-completion zip unzip curl

En el siguiente paso, visita la página oficial de descargas de EspoCRM en https://www.espocrm.com/download/ y coge el último archivo comprimido del paquete zip en tu sistema mediante la utilidad wget. La versión actual de EspoCRM en el momento de escribir este tutorial es EspoCRM-5.0.3

wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zip
ls

Una vez finalizada la descarga del archivo zip, extrae el archivo zip a tu directorio de trabajo actual y lista los archivos extraídos ejecutando los siguientes comandos. Los archivos de instalación de la aplicación se encuentran en el directorio EspoCRM-5.0. 3.

unzip EspoCRM-5.0.3.zip
ls
ls -al EspoCRM-5.0.3

A continuación, asegúrate de eliminar los archivos index.html e info.php del directorio webroot:

rm /var/www/html/index.html
rm /var/www/html/info.php

Copia todos los archivos ubicados en el directorio extraído a la ruta raíz del documento de tu servidor web ejecutando el siguiente comando. Además, asegúrate de copiar el archivo oculto .htaccess en la ruta webroot.

cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/

A continuación, ejecuta los siguientes comandos para conceder a la cuenta www-data de Apache permisos completos de escritura en la ruta raíz de la web. Utiliza el comandols para listar los permisos de los archivos instalados de EspoCRM situados en el directorio /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

A continuación, accede a la consola de la base de datos MariaDB y crea una base de datos de EspoCRM. Utiliza un nombre descriptivo para la base de datos y crea un usuario con una contraseña fuerte para gestionar esta base de datos. Sustituye el nombre de la base de datos, el usuario y la contraseña utilizados en este ejemplo por tus propios valores. Los comandos utilizados para este paso se muestran en el siguiente extracto.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(ninguno)]> crear base de datos espocrm_db;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> concede todos los privilegios en espocrm_db.* a ‘crm_user’@’localhost’ identificado por ‘password1234’;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(ninguno)]> borra los privilegios;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

Bye

Ahora, abre un navegador y navega por la dirección IP o el nombre de dominio de tu servidor a través del protocolo HTTPS para proceder al proceso de instalación de la plataforma EspoCRM. En la primera pantalla de instalación, el instalador de EspoCRM mostrará un mensaje de bienvenida y una lista en la que podrás seleccionar el idioma de instalación. Selecciona el idioma apropiado de la lista presentada y pulsa el botón de inicio para comenzar el proceso de instalación, como se muestra en la siguiente imagen.

https://yourdomain.tld

Pantalla de bienvenida de EspoCRM

En la siguiente pantalla, lee las declaraciones del acuerdo de licencia y marca la casilla«Acepto el acuerdo» y pulsa el botón Siguiente para pasar al siguiente paso.

Acepta el acuerdo de licencia

En la siguiente pantalla de instalación, configura la conexión a la base de datos MySQL. Proporciona la dirección del host de la base de datos MySQL (127.0.0.1 o localhost), el nombre de la base de datos, el nombre de usuario y la contraseña configurada para la aplicación EspoCRM. Después de completar todos los campos de la base de datos requeridos, pulsa el botón Siguiente para pasar al siguiente paso de la instalación. Utiliza la siguiente captura de pantalla como guía para completar este paso.

Detalles de la base de datos

En la siguiente pantalla, el instalador de EspoCRM comprobará las configuraciones del entorno de tu servidor para determinar si todas las variables recomendadas de MySQL y los módulos y ajustes de PHP están correctamente configurados. Si todas las configuraciones se superan, pulsa el botón Instalar para iniciar el proceso de instalación de EspoCRM.

Ajustes recomendados

En el siguiente paso, añade una cuenta de administrador para EspoCRM y establece una contraseña segura para esta cuenta de administrador. Cuando termines, pulsa el botón Siguiente para continuar con el proceso de instalación.

Establecer un nombre de usuario y una contraseña

A continuación, configura los ajustes del sistema EspoCRM seleccionando el Formato de Fecha y el Formato de Hora adecuados. Además, elige la configuración de la zona horaria apropiada para tu aplicación, seleccionando el continente/ciudad más cercano de la lista de zonas horarias proporcionada. Configura el primer día de la semana, la moneda por defecto de la aplicación, las marcas de separación de miles y decimales y el idioma del sistema. Cuando todos los ajustes anteriores estén configurados, pulsa el botón Siguiente para continuar con el proceso de instalación.

Ajustes de fecha y hora

En el siguiente paso, configura los ajustes del correo saliente de EspoCRM. Añade un nombre para la cabecera de correo electrónico «De nombre» y la dirección de contacto de la cuenta de administrador. Esta dirección se utilizará para enviar correos electrónicos a clientes externos. Además, asegúrate de añadir la dirección del servidor de correo electrónico, el número de puerto del servidor de correo y marca la casilla Auth y proporciona las credenciales de autenticación del servidor y el nivel de seguridad, si es el caso. Cuando termines de completar este paso, pulsa el botón siguiente para completar el proceso de instalación.

Configuración de SMTP

Una vez que se haya importado la estructura de la base de datos y se hayan escrito todos los ajustes de la plataforma en el archivo de configuración de la aplicación, se completará el proceso de instalación. El instalador te notificará que la instalación se ha completado con éxito y mostrará una nota sobre la tarea programada de EspoCRM que debes añadir en el archivo crontab de tu servidor.

Instalación de EspoCRM completa

Para acceder y gestionar tu aplicación CRM, abre un navegador y navega hasta la dirección IP o el nombre de dominio de tu servidor a través de HTTPS. Utiliza las credenciales configuradas durante el proceso de instalación para iniciar sesión en el panel del backend de EspoCRM, como se muestra en la siguiente captura de pantalla.

https://yourdomain.tld

Entra en el dashbaord del CRM

El panel de control de EspoCRM por defecto no debería contener ningún dato hasta el momento. Una vista previa del panel inicial de EspoCRM se ilustra en la siguiente captura de pantalla.

Panel de control de EspoCRM

Para seguir configurando los ajustes de la plataforma EspoCRM, pulsa en el icono superior derecho con tres líneas horizontales y pulsa en el enlace de Administración del menú superior descendente, como se muestra en la siguiente imagen.

Sección de administración

Para obligar a los visitantes a acceder de forma segura a la interfaz del backend de EspoCRM a través del protocolo HTTPS, que encripta el tráfico entre el servidor y los navegadores de los clientes, vuelve a tu terminal del servidor y edita el archivo .htaccess situado en la ruta raíz del documento de tu sitio web, ejecutando el siguiente comando.

nano /var/www/html/.htaccess

En el archivo .htaccess, busca la línea<SiMódulo mod_rewrite.c> y añade las siguientes reglas después de la sentencia RewriteEngine On para redirigir automáticamente todo el tráfico del dominio a HTTPS.

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

En la parte superior, el archivo puede cambiar la configuración nativa del servidor PHP, como el aumento de los valores de las variables PHP upload_max_filesize y post_max_size, con el fin de soportar la carga de archivos de gran tamaño en el almacenamiento de la aplicación. Modifica estos ajustes de PHP con mucha precaución. Asegúrate de que estas variables se ajustan a los recursos y configuraciones de tu servidor.

# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

A continuación, prueba el trabajo programado antes de añadirlo para que se ejecute en el archivo daemon crontab, emitiendo el siguiente comando. El trabajo crontask debe ejecutarse con privilegios de cuenta de ejecución del servidor HTTP Apache.

sudo -u www-data /usr/bin/php7.0 -f /var/www/html/cron.php

Por último, añade la siguiente tarea crontab que pertenece a la cuenta www-data de Apache, ejecutando el siguiente comando.

crontab -u www-data –e

Extracto del archivo crontab:

*    *    *    *    *     /usr/bin/php7.0 -f /var/www/html/cron.php > /dev/null 2>&1

¡Eso es todo! Has instalado y configurado con éxito la plataforma EspoCRM en Debian 9. Para otras configuraciones relativas a la plataforma EspoCRM, visita la página de documentación en la siguiente dirección:https://www.espocrm.com/documentation/

También te podría gustar...