GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar SuiteCRM en Debian 9

SuiteCRM, una bifurcación de SugarCRM, es una plataforma empresarial de gestión de relaciones con los clientes (CRM) de código abierto escrita en lenguaje de programación PHP que se puede utilizar para crear estrategias, acciones y decisiones empresariales.

Este tutorial describe todos los pasos necesarios para instalar la última versión de la plataforma SuiteCRM en Debian 9, con el fin de implementar una potente plataforma en línea para su negocio. La aplicación CRM se implementará en Debian Linux bajo el servidor Apache HTTP, PHP y motor de base de datos MariaDB.

Requisitos

  • Un servidor completo o un servidor privado virtual con un mínimo de 2 Gb de RAM y la instalación mínima del servidor Debian 9.
  • Acceso a la raíz cuenta a través de la consola de la máquina o de forma remota a través de SSH. Además de la cuenta raíz, también puede usar una cuenta con privilegios raíz a través de sudo comando.
  • La interfaz de red externa configurada con una dirección IP estática o el servidor DHCP configurado para arrendar una dirección IP estática para esta interfaz.
  • Un nombre de dominio público registrado para acceder a la aplicación desde Internet. Si la aplicación se implementa en intranets, puede realizar el proceso de instalación y acceder al sitio web a través de la dirección IP de su servidor.
  • Un servidor de correo configurado en sus instalaciones para utilizar el registro en el sitio web u otras funciones de la aplicación. También puede utilizar un servicio de correo público, como Gmail o Yahoo!, Microsoft Exchange u otros para enviar y recibir correos.

Preparar el servidor

En el primer paso, inicie sesión en la consola de su servidor con la cuenta raíz o un usuario con privilegios de raíz obtenidos a través de sudo y configure el nombre de su sistema con el siguiente comando. Asegúrese de reemplazar el nombre de host de la máquina utilizado en este ejemplo en consecuencia.

hostnamectl set-hostname www.mycrm.org

Después de cambiar el nombre de host del sistema, emita el siguiente comando para verificar si el nombre de la máquina se aplicó correctamente.

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

A continuación, asegúrese de actualizar los repositorios de su sistema, los paquetes de software y el kernel mediante la emisión de los siguientes comandos.

apt update
apt upgrade

Finalmente, después de que se complete el proceso de actualización, reinicie la máquina para aplicar los cambios de nombre de host y las actualizaciones del kernel, ejecutando el siguiente comando.

systemctl reboot

Después de reiniciar la máquina, vuelva a iniciar sesión en la consola del servidor y ejecute el siguiente comando para instalar algunas utilidades de la línea de comandos, como wget, curl y zip, que luego se usarán para descargar software a través de Internet y extraer archivos zip.

apt install wget curl zip unzip

Instalar Apache y PHP

La aplicación SuiteCRM se implementará en Debian sobre una pila LAMP. Los primeros componentes de la pila LAMP que instalaremos son el servidor Apache HTTP y el intérprete del lenguaje de programación dinámico PHP. Ejecute el siguiente comando para instalar el servidor web Apache y todos los módulos PHP necesarios en su sistema.

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

Instalar base de datos MariaDB

El siguiente componente del paquete de software LAMP que instalaremos en el servidor Debian es el motor de base de datos MariaDB. La aplicación requiere la base de datos RDBMS para almacenar diferentes configuraciones de plataforma, como usuarios, sesiones, contactos, productos, catálogos y otros. Para instalar el motor de base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos, ejecute el siguiente comando en la consola de su máquina.

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

Una vez que se hayan instalado todos los componentes LAMP, verifique si el servidor web Apache y el demonio MariaDB están funcionando y escuchando las conexiones de red en el puerto 80 y 3306 TCP emitiendo uno de los siguientes comandos.

netstat –tlpn
ss- tulpn

La utilidad Netstat no está presente de forma predeterminada en el sistema Debian 9. Para instalar netstat utilidad en un servidor Debian Stretch, ejecute el siguiente comando.

apt install net-tools

yo Para acceder de forma segura al sitio web de CRM a través del protocolo HTTPS que asegurará el tráfico entre el servidor y los navegadores de los clientes, asegúrese de habilitar también el módulo Apache TLS y el archivo de configuración del sitio SSL, emitiendo los siguientes comandos.

a2enmod ssl
a2ensite default-ssl.conf

  A continuación, habilite el módulo de reescritura de Apache emitiendo el siguiente comando. El módulo de reescritura es necesario si desea modificar las configuraciones del servidor web sobre la marcha a través de .htaccess archivos colocados en su dominio webroot.

a2enmod rewrite
systemctl restart apache2

  A continuación, active el módulo de reescritura colocando las reglas requeridas en los archivos de configuración de Apache. Primero, aplicaremos las reglas de reescritura en el archivo de configuración predeterminado de Apache. Entonces, abre /etc/apache2/sites-enabled/000-default.conf archivo para editarlo con un editor de texto e inserte las siguientes reglas de reescritura de URL después de DocumentRoot declaración, como se muestra en el siguiente extracto.

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

Extracto del archivo 000-default.conf:

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

Cierra el 000-default.conf con CTRL+o, luego Ctrl+x y abra el archivo de configuración del sitio SSL predeterminado de Apache e inserte las reglas de reescritura de URL agregando las siguientes líneas de código después de la directiva DocumentRoot, como se muestra en el siguiente ejemplo:

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>

Finalmente, después de haber realizado todos los cambios anteriores, reinicie el demonio de Apache para retomar todas las reglas nuevas configuradas hasta el momento.

systemctl restart apache2

Ahora, debe visitar su dominio o la dirección IP del servidor a través del protocolo HTTP desde una máquina de escritorio remota. La página web predeterminada de Debian debe mostrarse en su navegador.

http://tudominio.tld

Configuración del cortafuegos

Si no puede ver la página web, verifique si la aplicación de firewall UFW está habilitada en el servidor Debian. Si ese es el caso, debe insertar las siguientes reglas para permitir que el tráfico HTTP y HTTPS pase a través del firewall.

ufw allow 'WWW Full'

o

ufw allow 80/tcp
ufw allow 443/tcp

Las iptables A continuación se describen las reglas sin procesar del cortafuegos para permitir que el tráfico entrante TCP de los puertos 80 y 443 pase el cortafuegos.

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

Finalmente, después de haber agregado las reglas de firewall requeridas, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en un navegador remoto visitando su nombre de dominio o la dirección IP del servidor a través del protocolo HTTPS. Ejecute los comandos ifconfig o ip a para mostrar la dirección IP de su servidor.

http://tudominio.tld

Debido a que está utilizando el certificado autofirmado automáticamente emitido por Apache en la instalación, certificado que no es de confianza para el navegador, debe mostrarse una advertencia que dice "Su conexión no es segura" en el navegador. Acepte el certificado que no es de confianza para evitar el error y ser redirigido a la página web predeterminada de Apache, como se ilustra en la siguiente imagen.

Configurar MariaDB y PHP

Ahora, comience a asegurar la cuenta raíz de MariaDB. Inicie sesión en la consola MySQL y ejecute los siguientes comandos para actualizar raíz complemento de cuenta.

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

  Además, ejecute el script mysql_secure_installation proporcionó repositorios Debian stretch para asegurar aún más la base de datos MariaDB. La secuencia de comandos le hará las siguientes preguntas: cambie la contraseña raíz de MySQL, elimine usuarios anónimos, deshabilite los inicios de sesión raíz remotos y elimine la base de datos de prueba. Responda sí a todas las preguntas, como se ilustra en el siguiente ejemplo de salida de secuencia de comandos.

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!

Pruebe si se aplicaron todas las medidas de seguridad intentando iniciar sesión en la consola MySQL con una cuenta raíz y sin contraseña. 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)

Ahora, intente iniciar sesión en la consola MySQL con la cuenta raíz y la contraseña, como se muestra en el siguiente ejemplo. Debería poder iniciar sesión en la consola MySQL. Escriba salir para salir de la base de datos MySQL.

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

En el siguiente paso, cambie las siguientes variables de PHP en php.ini archivo de configuración como se describe a continuación. Abra /etc/php/7.0/apache2/php.ini archivo para editar y modificar las siguientes líneas. Primero, asegúrese de hacer una copia de seguridad del archivo de configuración inicial 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 = 128M
post_max_size = 60M
upload_max_filesize = 60M
memory_limit = 256M
max_input_time = 60
max_execution_time = 6000
date.timezone = Europe/London

Reemplazar la zona horaria variable en el archivo de configuración de PHP según la ubicación geográfica de su servidor. La lista de zonas horarias de PHP se puede encontrar en el siguiente enlace http://php.net/manual/en/timezones.php

Para aumentar la velocidad de carga de las páginas de su sitio web, habilite el complemento OPCache disponible para PHP7. Inserte las siguientes líneas de OPCache en la parte inferior del archivo de configuración del intérprete de PHP, después de [opcache] declaración, como se muestra en el siguiente extracto:

[opcache]
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

Finalmente, cierre el php.ini archivo de configuración y reinicie el demonio de Apache para aplicar los cambios emitiendo el siguiente comando.

systemctl restart apache2

Para mostrar todas las configuraciones de PHP en un navegador, cree un archivo de información de PHP en la ruta webroot de su dominio ejecutando el siguiente comando.

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

Visite el archivo de script de información de PHP desde un navegador remoto en la siguiente URL. Desplácese hacia abajo hasta fecha configuración para verificar si la configuración de la zona horaria de PHP y otras configuraciones se aplicaron correctamente.

https://dominio.tld/info.php

Instalar SuiteCRM

Una vez que hayamos configurado todas las configuraciones LAMP requeridas para instalar la aplicación SuiteCRM, visite la página de descarga oficial de SuiteCRM en https://suitecrm.com/download/ y obtenga el último archivo zip en su sistema emitiendo el siguiente comando. Al momento de escribir esta guía, la última versión lanzada de SuiteCRM era el archivo SuiteCRM-7.9.9.zip.

wget https://suitecrm.com/files/158/SuiteCRM-7.9/178/SuiteCRM-7.9.9.zip
ls

Después de que se complete la descarga del archivo zip de SuiteCRM, extraiga el archivo zip en su directorio de trabajo actual y enumere los archivos extraídos emitiendo los siguientes comandos.

unzip SuiteCRM-7.9.9.zip
ls
ls –al SuiteCRM-7.9.9

Antes de copiar los archivos de instalación a su dominio webroot, asegúrese de eliminar el archivo index.html predeterminado instalado por el paquete Apache en la ruta raíz del documento del servidor web y también elimine el archivo info.php creado anteriormente.

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

Los archivos de instalación de la aplicación SuiteCRM se encuentran en su directorio de trabajo actual en SuiteCRM-7.9.9/ directorio. Problema ls Comando para enumerar los archivos de este directorio. Copie todo el contenido de la SuiteCRM-7.9.9/ directorio a la ruta raíz del documento de su servidor web emitiendo el siguiente comando.

cp -rf SuiteCRM-7.9.9/* /var/www/html/

A continuación, otorgue al usuario de tiempo de ejecución de Apache (www-data) permisos de escritura completos para la ruta raíz del documento de Apache, emitiendo el siguiente comando. Ejecutar ls Comando para enumerar los permisos para los archivos instalados ubicados en el directorio /var/www/html/.

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

A continuación, inicie sesión en la consola de la base de datos MariaDB y cree la base de datos SuiteCRM. Elija un nombre para esta base de datos y un usuario con una contraseña segura para administrar la base de datos de la aplicación, emitiendo los siguientes comandos. Asegúrese de cambiar el nombre de la base de datos, el usuario y la contraseña utilizados en este tutorial con su propia configuración.

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 mycrm_db;

Query OK, 1 row affected (0.00 sec)

MariaDB [(ninguno)]> otorgar todos los privilegios en mycrm_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

Ahora, comencemos el proceso de instalación de la aplicación SuiteCRM. Abra un navegador y navegue por la dirección IP o el nombre de dominio de su servidor a través del protocolo HTTPS.

http://tudominio.tld

En la primera pantalla de instalación, el instalador de SuiteCRM mostrará el acuerdo de licencia. Marque 'Acepto ' para aceptar los términos y condiciones de la licencia, elija el idioma para instalar la aplicación y presione el botón Siguiente para iniciar el proceso de instalación, como se ilustra en la siguiente captura de pantalla.

En la siguiente pantalla de instalación, el instalador de SuiteCRM verificará los requisitos del entorno de su sistema y mostrará un mensaje de Aceptar si se pasan todas las configuraciones de servidor y PHP. Para continuar con el proceso de instalación, presione el botón Siguiente, como se muestra en la siguiente captura de pantalla.

A continuación, el instalador mostrará la configuración de la conexión de la base de datos y la página de configuración del sitio. En el panel izquierdo, seleccione MySQL con extensión MySQLi como tipo de base de datos y proporcione el nombre de la base de datos MySQL creada para instalar la aplicación SuiteCRM, la dirección del host del servidor de la base de datos, el nombre de usuario de la base de datos y la contraseña necesaria para acceder a la base de datos de SuiteCRM. Además, seleccione "Igual que el usuario administrador" en "Usuario de la base de datos de SuiteCRM /". En el plano derecho, agregue un nombre de usuario de administrador de la aplicación y establezca una contraseña segura para la cuenta de administrador. Verifique la dirección URL de la instancia de SuiteCRM para que coincida con su nombre de dominio a través del protocolo HTTPS, en el puerto 443 y agregue la dirección de correo electrónico de la cuenta de administrador. Use la siguiente imagen como guía para configurar este paso.

A continuación, en la misma pantalla de instalación, haga clic en "Elegir datos de demostración" en el menú "Más opciones" y elija no completar la base de datos de SuiteCRM con datos de demostración. Luego, haga clic en el menú Selección de escenario y seleccione habilitar los siguientes módulos de SuiteCRM:Ventas, Marketing, Finanzas, Servicios y Gestión de proyectos. Si no necesita un módulo mientras instala la aplicación, puede dejarlo sin marcar y habilitarlo después de que se complete el proceso de instalación mediante la página de administración de la aplicación.

A continuación, desplácese hacia abajo y presione el menú Especificación del servidor SMTP para habilitar la opción de correos electrónicos de SuiteCRM. Agregue el nombre y la dirección de correo electrónico que desea que aparezcan en el encabezado del correo electrónico "De". Luego, elija su proveedor de servicios de correo electrónico y especifique la configuración del servidor de correo. En esta guía, utilizaremos el proveedor de servicios de Gmail para enviar correos electrónicos, y la configuración del servidor de correo se puede encontrar ilustrada en la siguiente captura de pantalla. Una vez que haya completado la configuración requerida para habilitar su proveedor de servicios de correo, presione el menú Marca y agregue un nombre para que se muestre en la barra de título del navegador para la aplicación SuiteCRM y cargue la imagen del logotipo de su propio sitio web.

A continuación, desplácese hacia abajo nuevamente y presione el menú Configuración regional del sistema y especifique cómo se debe mostrar el formato de hora, la zona horaria y la configuración de moneda en la aplicación SuiteCRM. Finalmente, deje las opciones de Seguridad del sitio sin marcar por ahora y presione el botón Siguiente para completar el proceso de instalación. Puede usar la imagen a continuación para completar este paso.

Una vez que finalice el proceso de instalación, será redirigido a la página de inicio de sesión de SuiteCRM. Para acceder al panel de administración de la aplicación, inicie sesión en SuiteCRM con las credenciales de la cuenta de administrador configuradas durante el proceso de instalación, como se muestra en la imagen a continuación.

Antes de iniciar sesión en el panel de administración de SuiteCRM, primero regrese a la consola del servidor y emita el siguiente comando para eliminar el directorio de instalación que ya no es necesario y puede representar una brecha de seguridad.

rm -rf /var/www/html/install/

También puede visitar el panel de SuiteCRM navegando a la dirección IP de su servidor o nombre de dominio a través del protocolo HTTPS. En la siguiente captura de pantalla se presenta una vista del panel de administración de SuiteCRM.

http://tudominio.tld

Finalmente, para redirigir automáticamente a los visitantes a HTTPS, para que puedan acceder de forma segura a la interfaz de SuiteCRM desde sus navegadores, vuelva a la terminal de su servidor y edite el .htaccess generado automáticamente. archivo ubicado en la ruta raíz del documento de su dominio, emitiendo el siguiente comando.

nano /var/www/html/.htaccess

En el archivo .htaccess, busque e inserte las siguientes reglas de línea después de RewriteEngine On para redirigir automáticamente el tráfico del dominio a HTTPS.

.htaccess extracto del archivo:

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

En la parte inferior del archivo, puede modificar la configuración del servidor PHP nativo del servidor web agregando otras líneas con la configuración para reflejar sus propios recursos y configuraciones del 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

Para ejecutar los programadores de SuiteCRM, edite el archivo crontab de la cuenta de tiempo de ejecución de su servidor web con el siguiente comando y agregue la siguiente tarea cron para que se ejecute cada minuto.

crontab -e -u www-data

ejemplo de archivo crontab:

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

Si desea eludir las advertencias del navegador que se generan cada vez que un cliente visita su aplicación, debe considerar comprar un certificado emitido por una autoridad de certificación confiable o emitir un certificado gratuito de Let's Encrypt CA.

¡Eso es todo! La aplicación web SuiteCRM se instaló y configuró correctamente en un servidor Debian 9 sobre una pila LAMP.

Para personalizar aún más la plataforma SuiteCRM, asegúrese de visitar la página wiki de la aplicación en la siguiente dirección:https://suitecrm.com/wiki/index.php/Main_Page


Debian
  1. Cómo instalar el servidor Redis en Debian 11

  2. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  3. Cómo instalar ProFTPD en Debian 8

  4. Cómo instalar Nextcloud 14 en Debian 9

  5. Cómo instalar Odoo 12 en Debian 9

Cómo instalar FastPanel en Debian 11

Cómo instalar I2P en el servidor Debian:

Cómo instalar VNC en Debian 10

Cómo instalar Go en Debian 10

Cómo instalar el servidor VNC en Debian 11

Cómo instalar Go en Debian