Instalación y configuración

A continuación indicamos los pasos a seguir para instalar y configurar Apache y Velneo vModApache.

Descargar e instalar el módulo Velneo vModApache

Accede a la página de descargas de nuestro sitio web, descarga el producto e instálalo en la máquina donde vayas a instalar el servidor Apache si es Windows y descomprimirlo en una carpeta si es Linux.

En este punto aclarar que el servidor Apache y Velneo vServer no tienen por qué estar en la misma máquina; pueden estar en máquinas diferentes.

Ver la documentación sobre requerimientos de Velneo para obtener información sobre sistemas operativos soportados y sobre posibles dependencias en el caso de Linux.

Descargar e instalar el servidor Apache 2.4.X

Velneo requiere una versión 2.4.X de 64 bits de Apache con soporte de OpenSSL 1.1 (la versión mínima que lo soporta es la 2.4.39).

Windows

Dado que no suele haber instaladores, lo que puedes hacer es descargar los binarios.

Una vez que descargue el paquete binario descomprímelo en una ubicación que prefieras.

Para ejecutar Apache como servicio puedes hacerlo usando la consola o símbolo del sistema desde el subdirectorio bin de Apache y ejecutar el comando:

httpd.exe -k install

Linux

Las rutas y comandos que indicamos en esta documentación son para Ubuntu. En otras distribuciones podrán variar.

Instalar Apache:

sudo apt install apache2

lo dejara en /etc/apache2

Desactivar el modo prefork que viene activo por defecto:

sudo a2dismod mpm_event Activar el modo worker que viene incluido pero no activo:

sudo a2enmod mpm_worker Reiniciar Apache para que surta efecto el cambio:

systemctl restart apache2

Configurar la carga del módulo Velneo vModApache

Windows

El nombre del archivo correspondiente al módulo vModApache se llama llama mod_velneo.so; éste no es instalado en el directorio de módulo de Apache, sino que se instala en el directorio de Velneo por defecto (C:\Archivos de programa\Velneo\); el motivo de ello es que dicho módulo usa una serie de librerías que son instaladas en dicho directorio.

Por tanto, para declarar su carga, debemos incluir la senda completa del mismo y entrecomillarla si ésta contiene espacios en blanco:

#Carga el módulo de Velneo
LoadModule velneo_module "C:/Archivos de programa/Velneo/mod_velneo.so"

Linux

Dentro del directorio del apache se encuentra el fichero envvars, añadir las entradas siguientes:

export LD_LIBRARY_PATH=/SENDA_Velneo-vmodapache
export QT_PLUGIN_PATH=/SENDA_Velneo-vmodapache/plugins

Con la senda en la que se encuentra la instalación de vModApache.

Esta configuración es necesaria para el correcto funcionamiento del módulo además de la carga de plugins para formatos de imágenes, etc.

El nombre del archivo correspondiente al módulo vModApache se llama libmod_velneo.so. Se instala en el directorio donde hayas descomprimido vModApache.

La librería mod_velneo.so tiene dependencias. Para comprobar si todas se cumplen ejecutar:

export LD_LIBRARY_PATH=/SENDA_Velneo-vmodapache y después

ldd /SENDA_Velneo-vmodapache/libmod_velneo.so

Si alguna de las librerías no se encuentra, hay que instalarla con apt install.

Con sudo nautilus o consola:

En /etc/apache2/mods-available crear el fichero vModApache.load que contenga la senda de instalación de vModApache:

LoadModule velneo_module SENDA\Velneo-vmodapache/libmod_velneo.so

Para activar el modulo:

sudo a2enmod vModApache

Para desactivarlo:

sudo a2dismod vModApache

Si da error mirar log: tail -f /var/log/apache2/error.log.

Desarrollar e instanciar un proyecto que contendrá los procesos que, ejecutados desde la web, retornarán el código html a servir

Consultar en el capítulo dedicado a Velneo vDevelop.

Configurar en Apache las directivas de virtualhost o location para el servicio de páginas de Velneo

Windows

Se configurará en el archivo de configuración de Apache (httpd.conf).

Podremos, o bien, establecer una directiva de location, o bien una directiva de virtualhost.

Linux

En el directorio /etc/apache/conf.d crear el fichero vModApache.conf que contenga la directiva de location o de virtualhost .

Declaración de una directiva location

<Location /senda_base>
setHandler velneo
[VelneoMode SERVER]
Vrl vatps://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
</Location>

Donde:

senda_base será la senda base para la web del proyecto a servir.

setHandler es la directiva de Apache que establece el nombre del manejador. Debe ser siempre la constante velneo.

VelneoMode SERVER: este parámetro es opcional. Por defecto, los procesos que se ejecutan desde Velneo vModApache se ejecutan en local, es decir, son ejecutados por el propio componente Velneo vModApache. Esto quiere decir que se ejecutará en la máquina donde esté instalado el componente. Al ser Velneo vModApache quien los ejecuta, podremos usar comandos de instrucción de proceso que no requieran de la intervención del usuario pero sí el uso de GUI, como el comando de instrucción de proceso exportar informe a fichero (excepto en Linux, que no es funcional tampoco en modo local). Si usamos este parámetro, los procesos serán ejecutados en el servidor. En este caso, no se podrán usar comandos de instrucción de proceso que haga uso de GUI.

En el parámetro Vrl se indicará la VRL del servidor, usuario, contraseña e identificador de la instancia que va a ser atacada vía web.

Dado que para la conexión se ha de usar el protocolo VATPS en al Vrl especificaremos "vatp://" si lo tiene, tendemos que especificar "vatps://".

Si el usuario especificado no tiene contraseña, no se incluirá dicho parámetro, pero sí los dos puntos: …usuario:@SERVIDOR…

En el caso de que el usuario o la contraseña incluya caracteres especiales tales como @, \, etc. éstos no podrán ser escritos directamente en la cadena sino que tendrán que ir codificados en su equivalente html (%CODIGO_CARACTER). Ejemplo:

Ejemplo: si la contraseña del usuario es 123@45, la especificaríamos así: 123%4045

Si el número de puerto del servicio de Velneo vServer es el 690, no habrá que especificarlo tampoco en la VRL, ya que éste es el puerto por defecto para el servicio.

Ejemplos:

# Ejemplo de ejecución local
<Location /gestion>
setHandler velneo
Vrl vatps://web:2e3x4A1@localhost/GESTION
</Location>
# Ejemplo de ejecución en el servidor
<Location /gestion>
setHandler velneo
VelneoMode SERVER
Vrl vatps://web:2e3x4A1@localhost/GESTION
</Location>

Supongamos que en el proyecto de destino hemos creado un proceso llamado INDEX; la url para ejecutarlo sería:

http://IP_SERVIDOR/gestion/index.pro

Donde:

IP_SERVIDOR será la IP o el nombre del servidor donde está alojado el servidor apache.

gestion es la senda base que hemos especificado en el archivo de configuración de Apache.

index.pro Objeto a ejecutar de la instancia de Velneo, la extensión “.pro” lo identifica como un proceso.

Declaración de una directiva virtualhost

Esta podremos declararla tanto en el fichero httpd.conf como en el fichero httpd-vhosts.conf de Apache, en caso de hacerlo en el segundo, tendremos que asegurarnos que en el fichero httpd.conf se incluya la llamada al fichero httpd-vhosts.conf, mediante el comando:

Include conf/extra/httpd-vhosts.conf

Habitualmente este include suele venir declarado en el fichero pero a modo de comentario:

#Include conf/extra/httpd-vhosts.conf

Para habilitar la llamada simplemente habrá que quitarle el carácter #.

La directiva de virtualhost la declararemos del modo siguiente:

<VirtualHost *:número_puerto>
ServerName nombre_servidor
[VelneoMode SERVER]
setHandler velneo
Vrl vatps://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
</VirtualHost>

Donde:

número_puerto será el número de puerto de escucha para la web.

nombre_servidor será el nombre del servidor virtual.

En el parámetro Vrl se indicará la VRL del servidor, usuario, contraseña e identificador de la instancia que va a ser atacada vía web.

Si el usuario especificado no tiene contraseña, no se incluirá dicho parámetro, pero sí los dos puntos: …usuario:@SERVIDOR…”

Si el número de puerto del servicio de Velneo vServer es el 690, no habrá que especificarlo tampoco en la VRL, ya que éste es el puerto por defecto para el servicio.

VelneoMode SERVER: este parámetro es opcional. Por defecto, los procesos que se ejecutan desde Velneo vModApache se ejecutan en local, es decir, son ejecutados por el propio componente Velneo vModApache. Esto quiere decir que se ejecutará en la máquina donde esté instalado el componente. Al ser Velneo vModApache quien los ejecuta, podremos usar comandos de instrucción de proceso que no requieran de la intervención del usuario pero sí el uso de GUI, como el comando de instrucción de proceso exportar informe a fichero. Si usamos este parámetro, los procesos serán ejecutados en el servidor. En este caso, no se podrán usar comandos de instrucción de proceso que haga uso de GUI.

Ejemplos:

#Ejemplo de directivas virtualhost de Velneo ejecución local
<VirtualHost *:80>
ServerName midominio.com
setHandler velneo
Vrl vatps://web:2e3x4A1@localhost/GESTION
</VirtualHost>
#Ejemplo de directivas virtualhost de Velneo ejecución en el servidor
<VirtualHost *:80>
ServerName midominio.com
VelneoMode SERVER
setHandler velneo
Vrl vatps://web:2e3x4A1@localhost/GESTION
</VirtualHost>

Supongamos que en el proyecto de destino hemos creado un proceso llamado INDEX; la url para ejecutarlo sería:

http://midominio.com/index.pro

Donde:

midominio.com será el nombre del dominio.

gestion es la senda base que hemos especificado en el archivo de configuración de Apache.

index.pro Objeto a ejecutar de la instancia de Velneo, la extensión “.pro” lo identifica como un proceso.

Una vez configurado el servidor Apache, en Windows, debemos reiniciar el servicio de Apache para que tome la nueva configuración.

En Linux reiniciaremos Apache con:

sudo /etc/init.d/apache2 restart

Si da error mirar log: tail -f /var/log/apache2/error.log.

Si todo está correcto y el servicio de Apache se ha iniciado, nos conectaremos con Velneo vAdmin al servidor donde está la aplicación configurada en Apache y deberá haberse generado al menos un enganche de ejecución.

Decimos "al menos" porque dependerá de la configuración que tengamos establecida en el servidor Apache. Ver las siguientes directivas de Apache relativas a ello:

StartServers ThreadsPerChild MaxRequestWorkers

Para conectarnos a un Velneo vServer por protocolo VATPS que produce excepciones de SSL por no tener un certificado válido, la solución debería pasar por configurar en el mismo un certificado válido (ver este capítulo de la documentación).

Solamente en los casos estrictamente necesarios, podría configurarse en la máquina una excepción, ya que la comunicación dejará de ser segura si se hace. Para ello debemos instalar cualquier componente cliente de la plataforma (Velneo vClient, por ejemplo) conectarnos con el servidor. En la ventana de conexión dará un aviso de error de SSL y si hacemos clic sobre él, nos preguntará si queremos generar una excepción par ese servidor. Confirmamos y ya la tendremos creada.

Notas importantes

En sistemas operativos Windows, dado que vamos a conectarnos a las instancias por protocolo VATPS debemos asegurarnos de copiar del directorio de instalación de Velneo vClient las librerías libcrypto-1_1-x64.dll y libssl-1_1-x64.dll y pegarlas en el directorio donde esté el ejecutable de Apache (httpd.exe).

Si usamos la API de Velneo para JavaScript (por ejemplo, porque usamos la APIRest de Velneo vERP), la directiva location tiene que configurarse con VelneoMode SERVER.

A tener en cuenta sobre la configuración de instancias en Apache

Cuando ejecutamos Velneo vModApache en modo local comparte funcionalmente la mayoría de las características del componente Velneo vClient, por lo tanto:

  • Velneo vClient sólo puede ejecutar una única instancia de una solución.

  • Velneo vModApache funciona igual y sólo puede ejecutar una única instancia de una solución.

Si lo ejecutamos en modo servidor (VelneoMode SERVER), entonces podremos configurar más de una instancia en un mismo servidor Apache.

Puede tratarse tanto de instancias de soluciones distintas, como de distintas instancias de una misma solución. También podremos servir instancias de distintos servidores.

También es posible configurar una instancia para que se ejecute en local y otra u otras más para que se ejecuten en el servidor.

Cuando configuramos una instancia para que sea ejecutada en el sevidor, se informará de ello en el log de Apache. Ejemplo:

[Tue Apr 30 12:49:39.985713 2019] [velneo:notice] [pid 16300:tid 536] Habilitado VelneoMode SERVER en Location /miWeb

Última actualización