En esta guía, le 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 su empresa.
EspoCRM es una plataforma de administración de relaciones con los clientes (CRM) de código abierto, flexible y fácil de usar, diseñada para ser rápida, simple y personalizable. El software está escrito principalmente en el lenguaje de programación PHP y se puede implementar fácilmente en Linux sobre un servidor web Apache o Nginx, el lenguaje de programación PHP y el sistema de administración de bases de datos MySQL o MariaDB. EspoCRM es compatible con una gran variedad de idiomas y se puede implementar en centros de llamadas, bancos, educación, atención médica, turismo, comercio minorista, bienes raíces o 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 cuenta raíz o una cuenta con privilegios raíz a través del comando sudo (acceso local a través de consola o acceso remoto a través de SSH)
- Una de las NIC del servidor configurada con una dirección IP estática
- Un nombre de dominio público registrado para que realice la instalación a través de la interfaz web y acceda al sitio web de la aplicación. En intranets, puede acceder a la aplicación a través de un dominio local o a través de la dirección IP de su servidor
- Un servidor de correo configurado en sus instalaciones o acceso a un servicio de correo electrónico público, como Gmail, Outlook, Yahoo!
Requisitos previos
Primero, inicie sesión en la consola de su servidor Debian y asegúrese de actualizar los repositorios del sistema, el núcleo y los paquetes de software emitiendo los siguientes comandos.
apt update
apt upgrade
A continuación, configure el nombre de host de la máquina ejecutando el siguiente comando. Asegúrese de reemplazar el valor del nombre de host utilizado en este tema con su propia notación.
hostnamectl set-hostname www.mycrm.org
Ejecute 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
Finalmente, reinicie el servidor Debian para aplicar las actualizaciones del núcleo y el nombre de host cambie correctamente.
systemctl reboot
A continuación, debe instalar el paquete de software LAMP en el sistema Debian. En el primer paso, instale el servidor web Apache y un intérprete de puerta de enlace 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 su 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, instale un backend de base de datos RDBMS. En esta guía, configuraremos la aplicación EspoCRM para usar la base de datos MariaDB como backend. Ejecute 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
Después de instalar Apache, la base de datos MySQL y PHP, abra el archivo de configuración predeterminado de PHP para editar y modificar las siguientes variables de PHP como se describe a continuación. Asegúrese de que inicialmente haga 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
Busque, edite y cambie las siguientes variables en php.ini archivo de configuración:
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
Reemplace time.zone variable de acuerdo a su tiempo físico consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php
Para aumentar la velocidad de carga de las páginas de su aplicación a través del complemento OPCache disponible en PHP7, inserte las siguientes líneas de código OPCache en la parte inferior del archivo de configuración del intérprete de PHP, debajo de [opcache] declaración, 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 verifique si las variables se han agregado correctamente, algo que puede hacer emitiendo el siguiente comando.
grep opcache /etc/php/7.0/apache2/php.ini| grep -v ";"
A continuación, agregue la siguiente regla de aplicación de cortafuegos UFW en su 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
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
Finalmente, abra un navegador y visite la dirección IP de su máquina Debian o su nombre de dominio a través del protocolo HTTP. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comando para obtener la dirección IP de su servidor. Si se establece la conexión con el servidor web, debería poder ver la página web predeterminada del servidor web Apache en su navegador.
http://tu_dominio.tld
En el siguiente paso, habilite la reescritura de Apache y elimine los módulos SSL requeridos por EspoCRM para ejecutarse correctamente, emitiendo el siguiente comando.
a2enmod rewrite deflate ssl
El módulo SSL requiere que también habilite el archivo de configuración SSL predeterminado para 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. Ejecute el siguiente comando para habilitar el archivo de configuración del sitio Apache SSL.
a2ensite default-ssl.conf
Luego, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto e inserte las siguientes líneas de código después de DocumentRoot directiva, como se muestra en el siguiente ejemplo, para activar las reglas colocadas en el archivo .htaccess. El archivo .htaccess generalmente se encuentra en la parte superior de la raíz web de su dominio.
nano /etc/apache2/sites-enabled/default-ssl.conf
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Finalmente, reinicie el demonio de Apache para aplicar todas las reglas configuradas hasta el momento y visite su dominio a través del protocolo HTTPS. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, certificado que no es de confianza para el navegador, se debe mostrar una advertencia de error de conexión insegura en el navegador. Acepte la advertencia para aceptar el certificado que no es de confianza y continúe siendo redirigido a la página web predeterminada de Apache.
systemctl restart apache2
https://tudominio.tld
Si planea exponer su plataforma EspoCRM para la producción en Internet, debe considerar 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 de firewall UFW bloquee las conexiones de red entrantes al puerto HTTPS, debe agregar una nueva regla para permitir que el tráfico HTTPS pase a través del firewall emitiendo el siguiente comando.
ufw allow HTTPS
o
ufw allow 443/tcp
Para el firewall de iptables, agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que pueda buscar el nombre de dominio. Guarde y reinicie 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
Finalmente, cree un archivo de información PHP en la ruta webroot de su dominio ejecutando el siguiente comando.
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
Verifique la configuración de PHP y la configuración de la zona horaria visitando el archivo de script de información de PHP desde un navegador en la siguiente URL, como se ilustra en la imagen a continuación. Desplácese hacia abajo hasta la fecha configuración para verificar la configuración de la zona horaria de PHP.
https://dominio.tld/info.php
En el siguiente paso, inicie sesión en la consola del servidor MySQL y asegure la cuenta raíz de MariaDB ejecutando los siguientes comandos. Escriba salir 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)]> usar 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]> actualice el conjunto de usuarios plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> privilegios de vaciado;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye
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!
Verifique el problema de seguridad del servidor MariaDB intentando iniciar sesión en la base de datos a través de la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, 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)
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 Apache HTTP, el demonio MariaDB y el intérprete PHP se hayan configurado correctamente para instalar la aplicación EspoCRM en su sistema Debian. Ejecute el siguiente comando para instalar las utilidades de línea de comandos mencionadas en él.
apt install wget bash-completion zip unzip curl
wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zip
ls
unzip EspoCRM-5.0.3.zip
ls
ls -al EspoCRM-5.0.3
rm /var/www/html/index.html
rm /var/www/html/info.php
cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/
A continuación, ejecute los siguientes comandos para otorgar a Apache www-data cuenta con permisos de escritura completos en la ruta raíz web. Usa el ls comando para enumerar los permisos para los archivos instalados de EspoCRM ubicados en el directorio /var/www/html/.
chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/
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 [(ninguno)]> otorgar todos los privilegios en espocrm_db.* a 'crm_user'@'localhost' identificado por 'password1234';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(ninguno)]> privilegios de vaciado;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
https://tudominio.tld
En la siguiente pantalla, lea las declaraciones del acuerdo de licencia y marque "Acepto el acuerdo t" y presione el botón Siguiente para pasar al siguiente paso.
En la siguiente pantalla de instalación, configure los ajustes de conexión de la base de datos MySQL. Proporcione la dirección de 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, presione el botón Siguiente para pasar al siguiente paso de instalación. Use la siguiente captura de pantalla como guía para completar este paso.
En la siguiente pantalla, el instalador de EspoCRM verificará las configuraciones de su entorno de servidor para determinar si todas las variables de MySQL recomendadas y los módulos y configuraciones de PHP están configurados correctamente. Si se pasan todas las configuraciones, presione el botón Instalar para iniciar el proceso de instalación de EspoCRM.
En el siguiente paso, agregue una cuenta de administrador para EspoCRM y configure una contraseña segura para esta cuenta de administrador. Cuando termine, presione el botón Siguiente para continuar con el proceso de instalación.
A continuación, configure los ajustes del sistema EspoCRM seleccionando el Formato de fecha y el Formato de hora adecuados. Además, elija la configuración de zona horaria apropiada para su aplicación seleccionando el continente/ciudad más cercano de la lista de zonas horarias provista. Configure el primer día de la semana, la moneda predeterminada de la aplicación, los separadores de miles y decimales y el idioma del sistema. Cuando todas las configuraciones anteriores estén configuradas, presione el botón Siguiente para continuar con el proceso de instalación.
En el siguiente paso, configure los ajustes de correo saliente de EspoCRM. Agregue un nombre para el encabezado de correo electrónico "De nombre" y la dirección de contacto de correo electrónico de la cuenta de administrador. Esta dirección se utilizará para enviar correos electrónicos a clientes externos. Además, asegúrese de agregar la dirección del servidor de correo electrónico, el número de puerto del servidor de correo y marque la casilla de verificación Auth y proporcione las credenciales de autenticación del servidor y el nivel de seguridad, si ese es el caso. Cuando termine de completar este paso, presione el botón siguiente para completar el proceso de instalación.
Una vez que se haya importado la estructura de la base de datos y se hayan escrito todas las configuraciones de la plataforma en el archivo de configuración de la aplicación, se completará el proceso de instalación. El instalador mostrará una notificación de que la instalación se ha completado con éxito y mostrará una nota sobre el trabajo programado de EspoCRM que debe agregar al archivo crontab de su servidor.
Para acceder y administrar su aplicación CRM, abra un navegador y navegue hasta la dirección IP o el nombre de dominio de su servidor a través de HTTPS. Utilice las credenciales configuradas durante el proceso de instalación para iniciar sesión en el panel backend de EspoCRM, como se muestra en la siguiente captura de pantalla.
https://tudominio.tld
El panel de control predeterminado de EspoCRM no debería contener datos hasta el momento. En la siguiente captura de pantalla se muestra una vista previa del tablero inicial de EspoCRM.
Para configurar aún más los ajustes de la plataforma EspoCRM, presione el ícono superior derecho con tres líneas horizontales y presione el enlace Administración desde el menú de arriba hacia abajo, como se muestra en la imagen a continuación.
Para obligar a los visitantes a acceder de forma segura a la interfaz de back-end de EspoCRM a través del protocolo HTTPS que cifra el tráfico entre el servidor y los navegadores del cliente, regrese a la terminal de su servidor y edite el .htaccess archivo ubicado en la ruta raíz del documento de su sitio web, emitiendo el siguiente comando.
nano /var/www/html/.htaccess
En el archivo .htaccess, busque el
# 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 del servidor PHP nativo, como valores aumentados para upload_max_filesize y post_max_size Variables de PHP, para admitir cargas de archivos grandes en el almacenamiento de la aplicación. Modifique estas configuraciones de PHP con mucha precaución. Asegúrese de que estas variables coincidan con los recursos y las configuraciones de su 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, pruebe el trabajo programado antes de agregarlo para que se ejecute en el archivo daemon crontab, emitiendo el siguiente comando. El trabajo de crotask debe ejecutarse con privilegios de cuenta de tiempo de ejecución del servidor Apache HTTP.
sudo -u www-data /usr/bin/php7.0 -f /var/www/html/cron.php
Finalmente, agregue el siguiente trabajo crontab propiedad de Apache www-data cuenta, emitiendo 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! Ha instalado y configurado correctamente la plataforma EspoCRM en Debian 9. Para otras configuraciones relacionadas con la plataforma EspoCRM, visite la página de documentación en la siguiente dirección: https://www.espocrm.com/documentation/