Documentación de Velneo
35
35
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Cambiar el aspecto
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegador compatibles
      • Acceso a recursos del sistema
      • Siempre HTTPS
      • Funcionamiento de VATPS por websocket
      • CORS para llamadas XmlHttpRequest vía API o mediante el objeto Consumo servicio Web
  • Aplicación vLanzadera y login social
    • Configuración de vLanzadera en Apache en el Cloud de Velneo
    • Configuración de vLanzadera en Apache en servidores propietarios
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Identificación de usuario
    • Interfaz de Velneo vDevelop
      • Dock de proyecto
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
        • Refactorización automátca
        • Exportación e importación de objetos
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Columna de rejilla
        • Rejilla avanzada
          • Columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
          • Variables locales especiales
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Consumo servicio Web
          • Proceso de respuesta de consumo servicio Web
          • Códigos de error de consumo servicio Web
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
              • Enum de errores de JSON/CSV
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • GPS
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Controles
              • Ejemplos de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
              • Lista de codecs
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones JSON
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Funciones remotas
          • Funciones de campo
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Buscar/Reemplazar (Ctrl + F)
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • FormData
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
              • VApp: enumeraciones
              • VApp: ejemplos
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataView
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
            • VExtension
              • VExtension: enumeraciones
            • VFile
              • VFile: enumeraciones
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGPS
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
              • VMainWindow: enumeraciones
              • VMainWindow: ejemplos
            • VMdiView
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
              • VObjectInfo: enumeraciones
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLKey
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
              • VSisInfo: enumeraciones
            • VTableInfo
              • VTableInfo: enumeraciones
            • VTabWidget
            • VTextEdit
            • VTextFile
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
            • Documentación para migrar de QtQuick Controls 1.X a 2.X
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
      • Modo mantenimiento
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Activación de licencias de Velneo vServer
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
    • Velneo vAdmin Web
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de multitarea: procesos, colas y servicios
      • Manejo de rejillas
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Formularios: inducción automática del maestro en altas de registros de tablas plurales
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
      • Listas virtuales
  • Velneo vClient Web
    • Cómo incrustar una aplicación de Velneo Web en un DIV de una página html
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
        • Componer certificado fullchain
        • Certificados TLS/SSL para intranets
      • Estructura de directorios
    • Iniciar y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATPS
      • Protocolo VATP
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
      • Colas de procesos en 4º plano
    • vPacker
      • Mensajes de log de sistema
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
    • Caché local de Velneo vModApache
  • Optimización del consumo de memoria en Apache
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
      • Panel de tablas
      • Panel de datos
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
    • Velneo vDataClient Web
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de tubos de ficha y de lista
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
      • Copias
    • Copias de seguridad automáticas
    • Velneo Cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Dominios de empresa y certificados
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • Arranque automático de un servidor tras una parada no controlada
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Paso 1 - Instalación de Apache
  • Windows
  • Linux
  • Paso 2 - Instalación de vServer (servicio vatp)
  • Windows
  • Linux
  • Paso 3 - Configuración de firewall y puertos
  • Paso 4 - Instalación de vLanzadera
  • Creación de clave para login con jwt
  • Paso 5 - Instalación y configuración de vModApache
  • Windows
  • Linux
  • Paso 6 - Configuración adicional de apache para la vLanzadera
  • En windows
  • En linux
  • Configuración adicional para intranets
  • Proxy para redirigir el tráfico WSS al puerto 443

¿Te fue útil?

  1. Aplicación vLanzadera y login social

Configuración de vLanzadera en Apache en servidores propietarios

Última actualización hace 15 días

¿Te fue útil?

En esta guía se detallan los pasos para configurar y la para que funcione en servidores propietarios en plataformas Windows o Linux.

Paso 1 - Instalación de Apache

Es requisito obligatorio instalar Apache en la misma máquina donde tengamos instalado Velneo vServer.

Windows

Recomendamos el uso de para seguir esta documentación, ya que las sendas y cambios que se indican en esta documentación son para esta distribución de Apache Haus. Si usas Apache de otra manera, tendrás que adaptar las indicaciones de la documentación a la distribución que utilices.

Consulta con un experto en despliegue Web para problemas que puedas encontrar en la instalación y despliegue de Apache.

En la descargar la versión con OpenSSL1.1.1 e importante, la versión x64.

Al descomprimir el zip, obtenemos un directorio que tiene un readme_first.html con la documentación de Apache Haus (recomendamos leerlo) y un directorio de Apache24.

Para facilitar la configuración, recomendamos renombrar el directorio de "Apache24" a "apache2" y moverlo al homepath del usuario del servicio vatp que, si está asociado a la cuenta de sistema local, está ubicado en:

C:\Windows\System32\config\systemprofile

Editar el fichero:

C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf

Buscar la línea con el siguiente código:

Define SRVROOT "Apache24"

Y sustituirlo por:

Define SRVROOT "C:/Windows/System32/config/systemprofile/apache2"

Abrir en una terminal cmd o powershell como administrador (click derecho sobre cmd o powershell y ejecutar como administrador) y poner los siguientes comandos:

cd C://Windows/System32/config/systemprofile/apache2/bin

.\httpd.exe -k install

Ahora ya tenemos Apache como servicio.

Abrimos el panel de servicios en Windows y debería haber un servicio llamado Apache2.X. Iniciamos el servicio.

Para ello debemos hacer lo siguiente:

Alojar los ficheros del certificado en la carpeta:

C:\Windows\System32\config\systemprofile\apache2\conf\ssl

Editamos el fichero httpd-ahssl.conf dentro del directorio C:\Windows\System32\config\systemprofile\apache2\conf\extra y comprobamos que estén descomentadas las siguientes líneas:

SSLCertificateFile "${SRVROOT}/conf/ssl/mi-dominio.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/mi-dominioi.key"

En el que sustituiremos "mi-dominio.crt" y "mi-dominioi.key" por los nombres de ficheros de certificado y clave de nuestro propio certificado.

También debemos editar la línea:

ServerName localhost:443

Y reemplazarla por:

ServerName mi-dominio:443

Reinicia el servicio de Apache.

Para probar que hasta este punto está todo correcto, probar a cargar https://mi-dominio (es importante que sea https). Si hasta este punto está todo correcto te debería de cargar la página de bienvenida de Apache.

Recomendamos no continuar con los siguientes pasos hasta que no se cumpla esta validación.

Eliminamos el siguiente directorio:

C:\Windows\System32\config\systemprofile\apache2\htdocs

Creamos el siguiente directorio:

C:\Windows\System32\config\systemprofile\apache2\html

Dentro creamos un fichero llamado index.html y le agregamos un contenido cualquiera. Por ejemplo: "Hola mundo".

Editamos el fichero:

C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf

Y hacemos la siguiente modificación:

Sustituir:

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

Por:

DocumentRoot "C:/Windows/System32/config/systemprofile/apache2/html"
<Directory "C:/Windows/System32/config/systemprofile/apache2/html">

Editamos el fichero:

C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf

Y hacer la siguiente modificación:

Sustituir:

DocumentRoot "${SRVROOT}/htdocs"

Por:

DocumentRoot "C:/Windows/System32/config/systemprofile/apache2/html"

Sustituir:

<Directory "${SRVROOT}/htdocs">

Por:

<Directory "C:/Windows/System32/config/systemprofile/apache2/html">

Reiniciar el servicio de Apache2 y acceder a https://mi-dominio.

Ahora en vez de mostrar la página de bienvenida de Apache, debe mostrar el contenido que has puesto en el fichero de index.html. Si es así, puedes continuar con el siguiente paso.

Linux

Esta documentación ha sido elaborada tomando como base la distribución de Ubuntu 20. Si usas otro distribución operativo tendrás que adaptar la configuración en caso de que la estructura de directorios no sea la misma.

En primer lugar abrir una terminal y actualizar el repositorio de aplicaciones ejecutando el comando:

$sudo apt update

A continuación instalar Apache2 con el comando:

$sudo apt install apache2
$sudo a2dismod mpm_event
$sudo a2enmod mpm_worker
$systemctl restart apache2

Comprobar que se ha creado el siguiente directorio:

/etc/apache2

A continuación vamos a activar el SSL que es obligatorio para ejecutar Lanzadera y que funcione la ejecución Web.

$sudo a2dissite 000-default.conf
$sudo a2ensite default-ssl.conf
$sudo a2enmod ssl
$sudo service apache2 restart

Accede a https://mi-dominio (es importante que sea https) Si hasta este punto está todo correcto te debería de cargar la página de bienvenida de Apache.

A continuación, para el correcto funcionamiento de la vLanzadera en futuros pasos, hay que cambiar el DocumentRoot que por defecto viene en /var/www/html

Ejecutar el siguiente comando para editar la configuración:

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

Se abrirá un editor de texto. Buscar la línea que pone:

DocumentRoot /var/www/html

Y sustituirla por:

# Si se va a usar vServer con el usuario de linux velneo:
DocumentRoot /home/velneo/apache2/html

#Si se va a usar vServer con el usuario de linux root:
DocumentRoot /root/apache2/html

En este paso, suponemos y recomendamos para seguir la documentación que el usuario de Linux que va a ejecutar el vServer es velneo. Si no es así, en la senda cambiar "velneo" por el nombre de usuario que corresponda. Para el usuario root, las rutas cambian como indicamos.

Editar el fichero de apache2.conf:

$sudo nano /etc/apache2/apache2.conf

Buscar la línea con lo siguiente:

<Directory /var/www/>

Y cambiarla por:

# Si usas el usuario velneo
<Directory /home/velneo/apache2/html>

# Si usas el usuario root
<Directory /root/apache2/html>

A continuación, hay que crear esa senda y crear un fichero html en ella:

# Si usas el usuario velneo
$sudo mkdir -p /home/velneo/apache2/html
$sudo touch /home/velneo/apache2/html/index.html

# Si usas el usuario root
$sudo mkdir -p /root/apache2/html
$sudo touch /root/apache2/html/index.html

Añadirle permisos de ejecución a la senda para que apache pueda acceder:

# Si usas el usuario velneo
$sudo chmod +x /home
$sudo chmod +x /home/velneo
$sudo chmod -R +x /home/velneo/apache2

# Si usas el usuario root
$sudo chmod +x /root
$sudo chmod -R +x /root/apache2

Editar el fichero de index:

# Si usas el usuario velneo
$sudo nano /home/velneo/apache2/html/index.html

# Si usas el usuario root
$sudo nano /root/apache2/html/index.html

Y escribir cualquier contenido, por ejemplo "Hola Mundo".

Reinicia Apache y vuelve a acceder a https://mi-dominio.

Ahora en vez de mostrar la página de bienvenida de Apache, debe mostrar el contenido que has puesto en el fichero de index.html. Si es así, puedes continuar con el siguiente paso.

Paso 2 - Instalación de vServer (servicio vatp)

Windows

Es importante que tanto el vServer como el Apache respondan a través del mismo dominio (mi-dominio.com)

Una vez instalado Velneo vServer, hacer las siguientes comprobaciones:

    • Que el servicio vatp se ha arrancado correctamente con la licencia: busca en el log el mensaje de inicio similar a este: "Servidor vatp de 64 bits iniciado con licencia [....]. Versión: XX.X.X.XXXXX , Puerto: 690, Puestos de edición: X, Puestos de ejecución: X, Código de licencia: xxx-xxxx-xxx".

    • Comprueba el puerto vatp, lo necesitamos más adelante.

    • Busca en los mensajes de Velneo vAdim una entrada de inicio similar a la siguiente: "Cifrado de VATPS activado, certificado ssl: xxxx. Válido hasta el xxxx".

    • Localiza el mensaje de "Servidor websockets iniciado en puerto xxx" Necesitamos el puerto más adelante.

Linux

Para no tener problemas siguiendo la guía, recomendamos ejecutar Velneo vServer como servicio con un usuario llamado velneo en un puerto superior al 1024. Si lo ejecutas con otro usuario, deberás adaptar algunas instrucciones. Si decides ejecutar el vServer con root ten en cuenta que debes seguir las instrucciones para root y no para el usuario velneo.

Una vez instalado Velneo vServer, hacer las siguientes comprobaciones.

Una vez instalado Velneo vServer, hacer las siguientes comprobaciones:

    • Que el servicio vatp se ha arrancado correctamente con la licencia: busca en el log el mensaje de inicio similar a este: "Servidor vatp de 64 bits iniciado con licencia [....]. Versión: XX.X.X.XXXXX , Puerto: 690, Puestos de edición: X, Puestos de ejecución: X, Código de licencia: xxx-xxxx-xxx".

    • Comprueba el puerto vatp, lo necesitamos más adelante.

    • Busca en los mensajes de Velneo vAdim una entrada de inicio similar a la siguiente: "Cifrado de VATPS activado, certificado ssl: xxxx. Válido hasta el xxxx".

    • Localiza el mensaje de "Servidor websockets iniciado en puerto xxx" Necesitamos el puerto más adelante.

Paso 3 - Configuración de firewall y puertos

Para que el servidor funcione correctamente, es fundamental que los puertos utilizados estén habilitados en el sistema, especialmente si hay un firewall activo.

En concreto, deben estar abiertos:

  • El puerto principal de escucha del servidor.

  • El puerto de WebSockets, que es utilizado por Velneo Web.

Por norma, el puerto de Velneo Web se calcula tomando el puerto del servidor y añadiendo un 9 al final. Por ejemplo, si el servidor utiliza el puerto 690, el puerto para Velneo Web será 699.

Asegúrate, por tanto de que ambos puertos estén abiertos en la máquina donde se instala el servidor, para que este pueda iniciar todos sus servicios correctamente.

Paso 4 - Instalación de vLanzadera

Una vez instalada, al ejecutar la aplicación se abre el formulario principal que muestra, en caso de que los haya, una lista de errores a solucionar.

Creación de clave para login con jwt

En Windows, debemos crear dentro de la clave HKEY_USERS.DEFAULT\Software\Velneo\vServer una entrada de tipo cadena llamada jwtKey y establecer la clave que queramos usar.

En Linux, debemos editar el fichero vServer.conf y, si no la tenemos ya, añadir una línea que contenga la propiedad:

jwtKey=TU_CLAVE_JWT_DE_32

La clave JWT debe tener una longitud mínima de 32 caracteres.

De forma opcional, se puede configurar un parámetro de tiempo de validez del token.

jwtExpiredSeconds=NUMERICO_SEGUNDOS

Por seguridad el servidor solo aceptará el token generado por la lanzadera durante los siguientes jwtExpiredSeconds segundos más 60 segundos de cortesía por si hay desviación de la hora entre el cliente y el servidor.

Si no se configura el parámetro tendrá un valor por defecto de 60 segundos.

Por temas de seguridad, la clave JWT solo debe ser conocida por el administrador.

Asegúrate de reinciar Velneo vServer tras la configuración. Si la configuración no se hace correctamente, aparece un error en el formulario de inicio de vLanzadera con el siguiente mensaje:

Para hacer login con la vLanzadera es necesario que esté definida una clave jwt. Consulta la documentación. La vLanzadera devolverá un error -1 si se intenta utilizar en este estado.

Posibles errores

Error al crear directorio /senda/directorio

Si al abrir vLanzadera hay un error "Error al crear directorio /senda/directorio", quiere decir que en el paso 1 no hemos creado correctamente los directorios, o que estos no tienen los permisos necesarios y vServer no puede acceder. Verifica que todas las instrucciones del paso 1 se han seguido correctamente.

Error descarga: senda/fichero

Si al abrir vLanzadera hay un error de “Error descarga: senda/fichero” quiere decir que en el paso 1 no hemos creado correctamente los directorios, o que estos no tienen los permisos necesarios y vServer no puede acceder. Verifica que todas las instrucciones del paso 1 se han seguido correctamente. Continúa con el siguiente paso cuando la vLanzadera no muestre errores en el formulario de inicio.

Paso 5 - Instalación y configuración de vModApache

Windows

En C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf, dentro del bloque Virtualhost y antes del cierre de etiqueta de virtualhost:

<Location /auth>
		SetHandler velneo
		#VelneoMode SERVER
		Vrl vatps://usuario:contraseña@servidor[:num_puerto]/id_instancia
	</Location>
</Virtualhost>

Linux

En /etc/apache2/sites-enabled/default-ssl.conf, dentro del bloque Virtualhost y antes del cierre de etiqueta de virtualhost:

	<Location /auth>
		SetHandler velneo
		#VelneoMode SERVER
		Vrl vatps://usuario:contraseña@servidor[:num_puerto]/id_instancia
	</Location>
</Virtualhost>

Continúa con el siguiente paso cuando al arrancar apache2, puedas ver un enganche que pertenece a vModApache a la instancia de vLanzadera. Al desconectar el servicio debería de desconectarse el enganche.

Paso 6 - Configuración adicional de apache para la vLanzadera

Crear un fichero vLanzadera.conf en la siguiente ruta:

# Windows
C:/Windows/System32/config/systemprofile/apache2/conf/extra

# Linux
/etc/apache/conf-available

Añadir el siguiente contenido al fichero:

Header add Cross-Origin-Embedder-Policy: require-corp
Header add Cross-Origin-Opener-Policy: same-origin
Header set Cache-Control: "max-age=1800"

AddType application/wasm wasm

<IfModule mod_headers.c>
        RewriteEngine On
        #LogLevel alert rewrite:trace6
        # Serve gzip compressed CSS and JS files if they exist
        # and the client accepts gzip.
        RewriteCond "%{HTTP:Accept-encoding}" "gzip"
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}\.gz" -s
        RewriteRule "^(.*)\.(css|js)"         "$1\.$2\.gz" [QSA]


        # Serve correct content types, and prevent mod_deflate double gzip.
        RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
        RewriteRule "\.js\.gz$"  "-" [T=text/javascript,E=no-gzip:1]

        <FilesMatch "(\.js\.gz|\.css\.gz)$">
                # Serve correct encoding type.
                Header append Content-Encoding gzip


                # Force proxies to cache gzipped &
                # non-gzipped css/js files separately.
                Header append Vary Accept-Encoding
        </FilesMatch>
        
        # Serve brotli compressed wasm files if they exist
        # and the client accepts brotli.
        RewriteCond "%{HTTP:Accept-encoding}" "br"
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}\.br" -s
        RewriteRule "^(.*)\.(wasm)"         "$1\.$2\.br" [QSA]

        # Serve correct content types, and prevent mod_deflate double gzip.
        RewriteRule "\.wasm\.br$"  "-" [T=application/wasm,E=no-gzip:1]

        <FilesMatch "(\.wasm\.br)$">
                # Serve correct encoding type.
                Header append Content-Encoding br
                Header append Vary Accept-Encoding
        </FilesMatch>
</IfModule>

En windows

Editar C:\Windows\System32\config\systemprofile\apache2\conf\httpd.conf

Localiza y descomenta las siguientes líneas:

#LoadModule headers_module modules/mod_headers.so
#LoadModule rewrite_module modules/mod_rewrite.so

Modifica el fichero C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf, y al final, antes de la directiva añade un include al fichero vLanzadera.conf quedando de la siguiente manera:

...
	Include "C:/Windows/System32/config/systemprofile/apache2/conf/extra/vLanzadera.conf"
</VirtualHost>

Reinicia el servicio de apache2.

A continuación hay que añadir un RewriteRule para que el sitio raíz (el que devuelve el index.html del “Hola mundo”) responda con vLanzadera. Para ello editamos el fichero C:\Windows\System32\config\systemprofile\apache2\conf\extra\httpd-ahssl.conf y buscamos el siguiente bloque:

<Directory "C:/Windows/System32/config/systemprofile/apache2/html">
	Options Indexes Includes FollowSymLinks
	AllowOverride AuthConfig Limit FileInfo
  Require all granted
</Directory>

Y le añadimos el rewrite rule para que quede de la siguiente manera:

<Directory "C:/Windows/System32/config/systemprofile/apache2/html">
	Options Indexes Includes FollowSymLinks
	AllowOverride AuthConfig Limit FileInfo
  	Require all granted
  	# Para la redirección de la lanzadera de /* a /auth/*
  	RewriteEngine On
  	RewriteRule ^/?$ /auth?%{QUERY_STRING} [NC,L]	
</Directory>

Para comprobar que de momento tenemos todo correcto, debemos reiniciar Apache y luego verificar que, https://mi-dominio ahora debe devolver lo mismo que https://mi-dominio/auth.

En linux

Ejecutar los siguientes comandos:

$sudo a2enmod rewrite
$sudo a2enmod headers

Edita el fichero /etc/apache2/sites-enabled/default-ssl.conf e inserta lo siguiente al final del documento antes de la etiqueta de cierre de </VirtualHost> de modo que quede así:

...
	Include /etc/apache2/conf-available/vLanzadera.conf
</VirtualHost>
...

Reinicia el servicio de Apache:

$sudo service apache2 restart

En este punto, al cargar https://mi-dominio/auth, debería aparecerte una página en blanco, pero la pestaña debería tener el título de "Lanzadera".

A continuación hay que añadir un RewriteRule para que el sitio raíz (el que devuelve el index.html del "Hola mundo") responda con vLanzadera. Para ello:

Editamos el fichero /etc/apache2/apache2.conf y buscamos el siguiente bloque:

<Directory /home/velneo/apache2/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Y le añadimos el RewriteRule quedando así:

<Directory /home/velneo/apache2/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted

        # Para la redirección de la lanzadera de /* a /auth/*
        RewriteEngine On
        RewriteRule ^/?$ /auth?%{QUERY_STRING} [NC,L]
</Directory>

Para comprobar que tenemos todo correcto, reiniciar Apache y entonces https://mi-dominio ahora debe devolver lo mismo que https://mi-dominio/auth.

En este punto, vLanzadera ya debería funcionar correctamente y ser capaz de ejecutar las aplicaciones en web. Si hay algún fallo, asegúrate de que no se ha cacheado una configuración incorrecta a lo largo del proceso limpiando la caché del navegador o probando con el modo incógnito.

Configuración adicional para intranets

Se trata de un fichero comprimido que contiene una serie de carpetas y ficheros.

El ese fichero comprimido se incluye el vin de vLanzadera, que en este punto ya tendremos instalado y hecha la configuración inicial.

La configuración adicional que debemos hacer es la siguiente:

  1. Copiar del zip todo el contenido de la carpeta assets-wasm/vLanzadera/35.0/assets/

    1. En disco, borrar el contenido de la carpeta apache2/html/35.0/assets .

    2. Pegar lo que hemos copiado del zip.

  2. Copiar del zip todo el contenido de la carpeta wasm-assets/vLanzadera/vLanzadera/35.0/assets

    1. En el disco, borrar todo el contenido de la carpeta apache2/html/vLanzadera/35.0/assets

    2. Pegar lo que hemos copiado del zip.

  3. Copiar del zip todo el contenido de la carpeta wasm-assets/vLanzadera/vLanzadera/assets.

    1. En el disco, borrar todo el contenido de la carpeta apache2/html/vLanzadera/assets.

    2. Pegar lo que hemos copiado del zip.

Proxy para redirigir el tráfico WSS al puerto 443

Por defecto, para websockets (necesarios para la ejecución web) se usa el puerto que tenga nuestro servidor + 9. Es decir, que si el puerto del servidor es el 690, para Websockets se usa el 699. En el caso de que queramos usar en su lugar el puerto estándar 443, será necesario realizar configuración adicional en Apache y en vLanzadera.

Si usábamos un RewriteRule para usar la raíz del host para servir la lanzadera, hay que añadirle un RewriteCond: RewriteCond %{HTTP:Upgrade} !=websocket [NC] para que no aplique esa redirección a las peticiones wss. La directiva <directory> quedaría así (se ha insertado la línea 8):

<Directory /home/${USERNAME}/apache2/html/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted

        # Para la redirección de la lanzadera de /* a /auth/*
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} !=websocket [NC]
        RewriteRule ^/?$ /auth?%{QUERY_STRING} [NC,L]
</Directory>

Fuera de la directiva <directory> hay que declarar otro RewriteRule para redirigir las peticiones wss que llegan del puerto 443 al puerto vatp + 9 (699 en el ejemplo) y configurar el proxy inverso (se añaden las líneas 12 a 19) :

<Directory /home/${USERNAME}/apache2/html/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted

        # Para la redirección de la lanzadera de /* a /auth/*
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} !=websocket [NC]
        RewriteRule ^/?$ /auth?%{QUERY_STRING} [NC,L]
</Directory>

RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/$ wss://localhost:699/$1 [P,L]

# Proxy inverso para manejar conexiones WSS
ProxyPreserveHost On
ProxyPass ^/$ wss://localhost:699/
ProxyPassReverse ^/$ wss://localhost:699/

Además, será necesario habilitar una serie de módulos adicionales en Apache.

En Windows se suelen configurarse en el fichero httpd.conf:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

Para activarlos en Linux, en distribuciones como Ubuntu o Debian, podemos usar el comando a2enmod, que está diseñado para habilitar módulos de Apache:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel

En este punto habría que . A lo largo de esta documentación hacemos referencia a mi-dominio.

En este punto habría que . En hay indicaciones de como incluir los certificados en Apache. Según hemos indicado antes, en esta documentación suponemos que tenemos un certificado para un dominio llamado "mi-dominio".

Revisar los .

Sigue los pasos indicados en la documentación para .

Sigue los pasos de la documentación para (recuerda que en este punto ya has puesto en marcha los certificados en Apache así que será configurar la misma senda de ambos ficheros en el servidor).

Al arrancar el servicio, comprueba desde el vAdmin los siguientes :

Revisar los . Realizar las configuraciones en la máquina e instalar librerías que falten.

Sigue los pasos de la documentación para .

Sigue los pasos de la documentación para

Al arrancar el servicio, comprueba desde el vAdmin los siguientes :

Ver el punto .

La lanzadera utiliza para intercambiar información con el servidor. Para garantizar y securizar el intercambio de información entre la lanzadera y Velneo vServer, es necesario especificar una clave JWT en el registro de Velneo vServer.

Sigue los .

para cargar vLanzadera, donde la "senda_base” indicada en la documentación debe ser "/auth" y apuntar a la instancia de vLanzadera creada en .

En intranets en las que no se vaya a hacer uso de Internet se han de descargar los recursos de Velneo Web desde .

Ejecutar vLanzadera con Velneo vClient y en , editar los 3 registros, activar el check personalizado y reempalzar el código fuente de cada uno por el equivalente incluido en la carpeta wasm-assets/vLanzadera/vLanzadera/estaticosdel zip.

También será necesario .

Velneo vModApache
vLanzadera
Apache Haus
página de descargas
requerimientos de la versión
requerimientos de la versión actual
JWT
pasos de la documentación de vModApache para instalarlo y configurarlo
nuestra página de descargas
el paso 1
el paso 3
mensajes
mensajes
instalar vServer en Windows
instalar vServer en Linux
Configura una directiva location
Aplicación vLanzadera y login social
estáticos
obtener y configurar un certificado ssl para el dominio que se vaya a usar en el servidor
configurar previamente un certificado ssl para el dominio que se va a usar
incluir un certificado ssl propio
incluir un certificado ssl propio
configurar el puerto 443 en el arranque del vServer