Guía sencilla de cómo instalar Oracle Apex y ORDS en sistemas Linux en formato Standalone.
Versiones a instalar en esta guía:
APEX 24.1
Java23
ORDS 24.4
Las descargas las encontrarás en los siguientes enlaces:
Download Required Software
1) Descargamos la última versión de Oracle Apex, este caso 24.1.
https://www.oracle.com/tools/downloads/apex-241-downloads/
Bajamos el fichero: Oracle APEX 24.1 – All languages
2) Descargamos la última versión de ORDS, en este caso 24.4.
https://www.oracle.com/database/sqldeveloper/technologies/db-actions/download/
Nuestra instalación será en modo Standalone.
3) Bajamos versión JDK 11 o superior. En nuestro caso la versión 23.
https://www.oracle.com/java/technologies/downloads/?er=221886#java23
PASOS A SEGUIR PARA LA INSTALACIÓN DE APEX
En este post, se asume que ya tenemos una Base de datos Oracle instalada, en nuestro caso Oracle 19.20 sobre sistema operativo Red Hat Enterprise Linux 9.
1) CREAMOS EL TABLESPACE DONDE SE VA A REALIZAR LA INSTALACION APEX
Creamos un nuevo tablespace, le vamos dar el nombrar de APEX donde vamos a realizar la instalación.
SQL> CREATE BIGFILE TABLESPACE APEX DATAFILE SIZE 500M AUTOEXTEND ON next 1G MAXSIZE UNLIMITED ;
— Comprobamos que se ha instalado correctamente
SQL> select name from v$tablespace where name=’APEX’;
Una vez descargados los recursos que hemos indicado anteriormente al principio del post, debemos extraer los archivos de instalación de Apex
y Ords en una carpeta específica para cada una de las instalaciones.
2) INSTALACION DE ORACLE APEX
Nos dirigimos a la carpeta donde se han extraído los ficheros de apex, donde se encuentra el fichero apexins.sql
El formato de instalación es el siguiente:
— @apexins.sql tablespace_apex tablespace_files tablespace_temp images
SQL> @apexins.sql APEX APEX TEMP /i/
Tras unos minutos recibiremos un mensaje de la que la instalación se ha completado.

3) CREACION CUENTAS ADMINISTRADOR APEX
Una vez finalizada la ejecución del comando anterior, ejecutemos el script apxchpwd.sql el cual creará la cuenta de administrador de instancias cuyo nombre por defecto es ADMIN. En nuestro caso dejamos el usuario ADMIN.
Hay que tener en cuenta lo siguiente para elegir la password del usuario administrador:
* Password must contain at least one punctuation character (!»`’#$%&()[]{},.*+-/|\:;?_~).
SQL> @apxchpwd.sql
…set_appun.sql
This script can be used to change the password of an Oracle APEX instance administrator. If the user does not yet exist, a user record will be
Enter the administrator’s username [ADMIN]
User «ADMIN» does not yet exist and will be created.
Enter ADMIN’s email [ADMIN] rgpinto@oracleconraul.com
Enter ADMIN’s password []
Created instance administrator ADMIN.
4) DESBLOQUEAMOS UN USAURIO PUBLICO Y LE PONEMOS UNA PASSWORD.
Desbloqueamos el Usuario APEX_PUBLIC_USER y le asignamos una nueva contraseña, ya que esta cuenta se crea con una contraseña aleatoria durante la instalación y deja el usuario bloqueado, por tanto debe ser cambiada antes seguir con las configuraciones. Esta contraseña no puede tener caracteres especiales.
El usuario APEX_PUBLIC_USER tiene por defecto el profile DEFAULT, por lo tanto si quieres evitar la caducidad de la contraseña, debes cambiar el parámetro PASSWORD_LIFE_TIME. En mi caso al ser una instancia de pruebas, voy a crear un nuevo profile para que la contraseña no caduque, obviamente en entornos productivos no es aconsejable y por seguridad es mejor cambiar la password cada 180 días, el valor establecido en el profile DEFAULT.
SQL> CREATE PROFILE «UNLIMITED_PWD_EXPIRATION» LIMIT
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
SESSIONS_PER_USER UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
PRIVATE_SGA UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME DEFAULT
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_LOCK_TIME 1
FAILED_LOGIN_ATTEMPTS 10;
Asignamos el nuevo profile al usuario APEX_PUBLIC_USER. Cambiamos la password y desbloqueamos el ususario.
SQL> ALTER USER APEX_PUBLIC_USER PROFILE UNLIMITED_PWD_EXPIRATION;
User altered.
SQL> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY <password> ACCOUNT UNLOCK;
User altered.
5) CONFIGURACION DE LOS SERVICIOS RESTful
En este punto vamos a configurar Oracle REST Data Services cómo servidor web, donde los archivos estáticos se entregan mediante el módulo de servicio RESTful integrado en Oracle APEX. Para ello debemos ejecutar el fichero apex_rest_config.sql.
Este proceso se crean dos nuevas cuentas de base de datos, debemos por tanto, asignar el password a los nuevos usuarios creados.
SQL> @apex_rest_config.sql
PL/SQL procedure successfully completed.
.
.
.
PL/SQL procedure successfully completed.
Enter a password for the APEX_LISTENER user []
Enter a password for the APEX_REST_PUBLIC_USER user []
6) DESHABILITAR Oracle XML DB Protocol Server, si no lo está.
Deshabilitamos el servidor de protocolo XML para evitar que el puerto que vamos a configurar esté en uso.
6.1 – Comprobamos que está deshabilitado:

En caso contrario ejecutamos lo siguiente:
EXEC DBMS_XDB.SETHTTPPORT(0);
7) ACCESO A LA BASE DE DATOS (ACL)
Por defecto, los servicios de red que permiten conectarnos al usuario de la base de datos propietario del esquema APEX, están deshabilitados, por tanto es necesario utilizar el paquete DBMS_NETWORK_ACL_ADMIN, para otorgar privilegios de conexión a este usuario.
Antes de lanzar el comando tendrás que determinar a qué host vas a permitir conectarse a APEX.
- Si queremos otorgar privilegios de conexión a cualquier host para la bae de datos propietario del esquema APEX, usaremos *
- Si queremos otorgar únicamente privilegios de conexión a los servidores que se ejecuten en el mismo host de la base de datos, utilizaremos localhost
Conectado cómo DBA ejecutamos el comando siguiente. En nuestro caso vamos a utilizar * para dar permisos de conexión a cualquier host.
SQL> BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => APEX_APPLICATION.g_flow_schema_owner,
principal_type => xs_acl.ptype_db));
END;
/
PL/SQL procedure successfully completed.
SQL>
8) INSTALACIÓN ORACLE REST Data Service (ORDS)
Creamos un directorio donde se realizará la instalación. En nuestro caso /u01/ords.
unzip ords-24.4.0.345.1601.zip -d /u01/ords/
8.1) Fuera del directorio ords, siguiendo las especificaciones de Oracle, creamos un directorio config, donde posteriormente indicaremos la configuración del ORDS.
mkdir -p /u01/ords_install/config
8.2) Creamos una carpeta images.
mkdir /u01/ords/images
Copiamos todas las imágenes del directorio «images» de nuestra instalación de APEX a la ubicación «images» de nuestro ORDS.
cp -r images/ /u01/ords/
Creamos una carpeta de logs, fuera del directorio ords.
mkdir -p /u01/ords_install/logs
9) INSTALACION JAVA
Antes de comenzar la instalación del ORDS, es necesario tener en nuestro sistema la versión de Oracle Java que la versión de Apex requiera cómo requerimiento. Dependiendo la versión de Oracle Apex la versión soportada de Java cambia, para nuestra versión se requiere Java 11 o 17.
Chequeamos nuestra versión actual:
[oracle@localhost ords]$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
[oracle@localhost ords]$
Actualizamos la versión de java de la siguiente manera:
[oracle@localhost softwareapex]$ sudo rpm -iv jdk-23_linux-x64_bin.rpm
Volvemos a comprobar la versión y vemos que se ha actualizado correctamente:
[oracle@localhost softwareapex]$ java -version
java version "23.0.2" 2025-01-21
Java(TM) SE Runtime Environment (build 23.0.2+7-58)
Java HotSpot(TM) 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)
10 CREACIÓN DEL ORDS.
Creamos un nuevo tablespace para albergar los datos del ORDS.
SQL> CREATE BIGFILE TABLESPACE ORDS DATAFILE SIZE 500M AUTOEXTEND ON next 1G MAXSIZE UNLIMITED ;
Tablespace created.
Lanzamos la instalación. Dentro de la carpeta bin del directorio ords, lanzamos el siguiente comando.
./ords --config /u01/ords_install/config install --interactive --log-folder /u01/ords_install/logs
Importante: Los parámetros –config apuntando al directorio de configuración y el parámetro –log-folder indicando donde se albergarán los ficheros logs de ords.
Elegimos la base de datos donde se realiza la instalación.
Oracle REST Data Services - Interactive Install
Enter a number to select the TNS net service name to use from /u01/app/oracle/product/19/dbhome_1/network/admin/tnsnames.ora or specify the database connection
[1] TEST SERVICE_NAME=test
[S] Specify the database connection
Choose [1]:
Repasamos los valores de la instalación, y cambiamos algunos valores para adecuarlos a nuestros requisitos. Una vez establecidos, usamos la opción [A] y comienza la instalación. Nuestra instalación se realizará con el protocolo HTTP.
Introduzca un número para actualizar el valor, o bien seleccione la opción A para aceptar y continuar
[1] Tipo de conexión: TNS
[2] Conexión TNS: TNS_NAME=TEST TNS_FOLDER=/u01/sw/network/admin
Usuario administrador: SYS AS SYSDBA
[3] Contraseña de base de datos para usuario de tiempo de ejecución de ORDS (ORDS_PUBLIC_USER): <contraseña especificada>
[4] Usuario de tiempo de ejecución de ORDS y tablespaces de esquema: Valor por defecto: ORDS Temporal TEMP
[5] Función adicional: Acciones de Base de Datos
[6] Configurar e iniciar ORDS en modo autónomo: Sí
[7] Protocolo: HTTP
[8] Puerto HTTP: 8080
[9] Ubicación de recursos estáticos de APEX:
[A] Aceptar y continuar - Crear configuración e instalar ORDS en la base de datos
[Q] Salir - No continuar. Sin cambios
Una vez finalizada la instalación, podemos lanzar el ejecutable ORDS para acceder a Apex, vía Web.
Dentro de la carpeta bin de ords lanzamos el siguiente comando de forma manual:
./ords --config /u01/ords_install/config serve --port 8080 --apex-images /u01/ords/images
Si todo es correcto, sería conveniente realizar un script de arranque / parada del servicio.
Con esto ya puedes acceder a tú página de inicio de APEX.
http://localhost:8080/ords
Pantalla inicial tras instalación Oracle Apex.
