En esta entrada vamos a ver cómo instalar YetiForce en CentOS 7 paso a paso, una magnífica aplicación de CRM de código abierto que podrás desplegar sobre tu servidor o VPS CentOS.
Contenido
Antes de instalar YetiForce en CentOS 7
Si tienes intención de seguir los pasos de esta guía de instalación de YetiForce en CentOS 7 debes satisfacer los siguientes requerimientos:
- Un sistema CentOS 7 actualizado.
- Una pila o entorno LAMP (servidor web con PHP y bases de datos MariaDB/MySQL).
- Acceso a consola con root o un usuario con privilegios de sudo.
- Conexión a Internet.
Puede que aún no dispongas del entorno adecuado, si es así no te vendrá mal consultar nuestra guía de instalación de la pila LAMP en CentOS 7.
También necesitaremos algunas herramientas del sistema procedentes del repositorio de CentOS 7, por lo que actualizamos su información:
~$ sudo yum update
E instalamos dichas herramientas:
~$ sudo yum install -y policycoreutils-python unzip wget
Lo recomendable es instalar YetiForce como servidor virtual propio, pero para eso es necesario disponer de un dominio o subdominio. Así que por brevedad y sencillez, en este tutorial instalamos YetiForce como parte de la página web principal de CentOS 7 sobre HTTP para que todo el mundo pueda realizar la instalación. Modificar el proceso para un servidor virtual y conexión HTTPS es muy sencillo.
Cómo descargar YetiForce para CentOS 7
Vamos a descargar YetiForce para CentOS 7 desde el sitio web del proyecto, donde podremos obtener la última versión:
Encontraremos el paquete en formato .zip, listo para descargar desde el navegador, aunque para este ejemplo copiaremos el enlace y lo descargaremos desde consola mediante wget:
~$ wget https://github.com/YetiForceCompany/YetiForceCRM/releases/download/6.1.0/YetiForceCRM-6.1.0-complete.zip
Cómo instalar YetiForce en CentOS 7
Para instalar YetiForce en CentOS 7 tenemos que preparar el sistema previamente, siguiendo una serie de pasos que describimos a continuación.
Archivos de YetiForce
Descomprimiremos el paquete que acabamos de descargar directamente en la ubicación que hayamos elegido:
~$ sudo unzip -q YetiForceCRM-6.1.0-complete.zip -d /var/www/yetiforce
Como Yetiforce necesita escribir en su propio directorio, cambiamos el propietario del mismo al usuario con el que corre el servidor web (apache para Apache en CentOS 7):
~$ sudo chown -R apache /var/www/yetiforce/
Servidor web
Crearemos un archivo de configuración del servidor web para YetiForce:
~$ sudo nano /etc/httpd/conf.d/yetiforce.conf
Creamos un alias para acceder fácilmente desde el sitio web principal. Además activamos el uso de archivos .htaccess en el directorio de YetiForce:
Alias /yetiforce /var/www/yetiforce <Directory /var/www/yetiforce> AllowOverride all </Directory>
Guardamos los cambios y recargamos el servicio:
~$ sudo systemctl reload httpd
PHP
Instalaremos una serie de extensiones de PHP en CentOS 7 que requiere YetiForce:
~$ sudo yum install -y php-bcmath php-gd php-imap php-intl php-ldap php-mbstring php-opcache php-pecl-apcu php-pecl-imagick php-soap php-xml php-zip
También tendremos que configurar ciertos valores requeridos, que modificaremos en el archivo php.ini:
~$ sudo nano /etc/php.ini
Serán los siguientes valores:
... error_reporting = E_ALL & ~E_NOTICE ... expose_php = Off ... disable_functions = shell_exec,exec,system,passthru,popen ... realpath_cache_ttl = 600 ... auto_detect_line_endings = On ... max_input_vars = 10000 ... upload_max_filesize = 100M ... output_buffering = "On" ... post_max_size = 50M ... session.use_strict_mode = 1 ... session.cookie_samesite = "Strict" ... mysqlnd.collect_statistics = Off ... short_open_tag = On ... default_socket_timeout = 600 ... memory_limit = 1024M ... max_execution_time = 600 ... max_input_time = 600 ...
Y por último, otros valores los modificaremos en el archivo de configuración de la extensión opcache:
~$ sudo nano /etc/php.d/10-opcache.ini
Como son:
... opcache.max_accelerated_files=40000 ... opcache.interned_strings_buffer=100 ... opcache.save_comments=0 ... opcache.revalidate_freq=0 ... opcache.file_update_protection=0 ...
Guardados todos los cambios, recargamos el servicio:
~$ sudo systemctl reload httpd
SELinux
Aunque dimos permisos de escritura al servidor web sobre el directorio de YetiForce, si tenemos activado SELinux en CentOS 7, como suele ocurrir por defecto, habrá que crear un contexto del servicio web para ese directorio y su contenido:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/yetiforce(/.*)?"
Una vez creado el contexto, lo aplicamos:
~$ sudo chcon -R -t httpd_sys_rw_content_t /var/www/yetiforce/
Bases de datos
YetiForce se apoya en el servicio de bases de datos MariaDB/MySQL que tenemos instalado en CentOS 7, por lo que habrá que crear un usuario y una base para la aplicación.
Conectamos al servicio con el cliente de consola mysql y un usuario con suficientes privilegios:
~$ sudo mysql -u root -p
Creamos la base de datos:
> create database yetiforce character set utf8 collate utf8_unicode_ci;
Si el servicio es MySQL 8 creamos el usuario especificando el plugin de autenticación:
> create user yetiforce@localhost identified with mysql_native_password by 'XXXXXXXX';
Si se trata de MariaDB o MySQL 5 no es necesario:
> create user yetiforce@localhost identified by 'XXXXXXXX';
Concedemos al usuario los permisos sobre la base:
> grant all privileges on yetiforce.* to yetiforce@localhost;
Y finalizamos la sesión:
> exit
Tenemos que realizar alguna configuración adicional sobre el servicio de bases de datos, por lo que editaremos su archivo de configuración principal, que para MariaDB 10 procedente del repositorio oficial de MariaDB es server.cnf:
~$ sudo nano /etc/my.cnf.d/server.cnf
Para otras versiones de MariaDB o para MySQL tendrás que editar el archivo equivalente.
Incluimos estas directivas en la sección mysqld, asegurándonos de que no se encuentran duplicadas y con otros valores en el archivo:
... [mysqld] ... character_set_server=utf8 table_definition_cache=2400 innodb_lock_wait_timeout=600 ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart mariadb
Instalación web
Es el momento de instalar YetiForce en CentOS 7 a través del instalador web, por lo que indicaremos en el navegador la URL que corresponda a la configuracion que hayamos decidido.
En este ejemplo basta añadir el alias /yetiforce a la dirección IP o dominio del servidor CentOS 7:
En la primera página del instalador seleccionaremos el idioma de la instalación.
Continuamos y se nos presentarán los términos de licencia de la aplicación:
Tendremos que mostrar nuestra conformidad para continuar con la instalación.
A continuación debemos seleccionar el tipo de instalación de entre los tres disponibles:
Nos interesa el primer tipo, «Own server«, ya que los otros dos son servicios de pago.
Una página de comprobación de la configuración nos mostrará los requisitos deseados y si se cumplen o no:
Si has seguido los pasos previos a la instalación web, todos los requisitos imprescindibles y la mayoría de los adicionales se cumplirán, por lo que continuamos.
Casi siempre queda algún detalle menor, por lo que una alerta nos solicitará que confirmemos la decisión de instalar:
En la siguiente sección tendremos que facilitar la información para conectar con el servicio de bases de datos, crear el usuario administrador y algunos datos de localización:
Después se nos mostrará un resumen de configuración que deberemos confirmar, o retroceder para modificar el dato que consideremos necesario:
Por último, introduciremos los datos de nuestra empresa u organización para personalizar nuestra instancia de YetiForce:
Comenzará el proceso de instalación, que llevará algunos instantes, según las características del servidor CentOS 7.
Finalmente se mostrará la página principal con la sesión iniciada:
Será necesario indicar el motivo del acceso a la plataforma.
Tras guardar el comentario, se mostrará la página principal de YetiForce:
Y por fin queda listo YetiForce para empezar a trabajar.
Cómo configurar YetiForce en CentOS 7
Aunque configurar YetiForce en CentOS 7 es un trabajo que depende de las necesidades de cada organización, alguna tarea concreta si que es común para todas las instalaciones.
YetiForce en español para CentOS 7
YetiForce no incluye paquetes de idiomas adicionales, por lo que será necesario descargar aquellos que necesitemos, por ejemplo el español. Para ello visitaremos «System settings / System tools / Language Management«.
Seguiremos el enlace «Download language» y se nos mostrará una lista de idiomas disponibles, cada uno con su propio enlace de descarga:
Podemos descargar los idiomas que necesitemos, pero para que la aplicación cambie de idioma es necesario acudir a la configuración de usuario, en «My prefrences«, donde en la sección «Layout» desplegaremos la lista «Language«:
La configuración se guarda y la aplicación cambia de idioma al visitar cualquier otra sección de YetiForce, como por ejemplo el escritorio virtual:
Mecanismo de cifrado
Una de las alertas que veremos se refiere al mecanismo de cifrado de las contraseñas de YetiForce, que por defecto está desactivado. Para activarlo podemos seguir el enlace que nos ofrece el pop-up o entrar en «Configuración del sistema» y en el panel lateral «Seguridad / Encriptación«.
Elegiremos el primer método de los ofrecidos y asignaremos una contraseña de 16 caracteres:
Guardadados los cambios, el programador de tareas se encargará del resto.
Librería Roundcube
Una librería que podemos añadir y que YetiForce recomienda es RoundCube. Si visitamos «Configuración del sistema» y en el panel lateral «Configuración de módulos / Módulos – Instalación» veremos en primer término que la librería no está instalada, pero se ofrece un enlace para instalarla directamente:
Mediante «Descargar librería» se instalará Roundcube, pero puede tomar unos instantes, incluso unos pocos minutos, dependiendo de la calidad de la conexión y la carga del servidor.
Cron
Muchas características de YetiForce se apoyan en la configuración de tareas programadas. Por ello, crearemos un archivo del programador de tareas cron de CentOS 7 para YetiForce:
~$ sudo nano /etc/cron.d/yetiforce.cron
El contenido será una línea en la que el usuario conel que corre el web lanzará cada 5 minutos el script de tareas programadas y registrará el resultado en un archivo de log:
CRMPATH=/var/www/yetiforce */5 * * * * apache php $CRMPATH/cron.php > $CRMPATH/cache/logs/cron.log 2>&1
Modifica la variable CRMPATH de forma adecuada para especificar la ubicación de tu propia instalación de YetiForce.
Guardamos los cambios y en pocos minutos comenzarán a realizarse las tareas programadas.
Conclusión
Ahora que ya sabes cómo instalar YetiForce en CentOS 7 puedes empezar a trabajar con esta aplicación de CRM sobre tu servidor o VPS.
Si tienes dudas, sugerencias o alguna pregunta, puedes dejar un comentario.
¡Apoya este sitio!
¿Ya tienes la aplicación operativa gracias a esta guía de instalación de YetiForce en CentOS 7? Si es así y te apetece agradecérnoslo, cualquier pequeña aportación ayuda al mantenimiento de este sitio y a la creación de más tutoriales sobre CentOS 7 y YetiForce. Puedes hacerlo dejando 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!