8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 23c | Misc | PL/SQL | SQL | RAC | WebLogic | Linux

Home » Articles » Misc » Here

Oracle Application Express (APEX) Installation

The installation section should be followed for new installations and upgrades. Since the release of APEX 18.x, each release requires a full installation, so there is no concept of patching anymore. This simplifies the approach greatly.

In previous versions an upgrade was required when a release affected the first two numbers of the version (4.2 to 5.0 or 5.1 to 18.1), but if the first two numbers of the version were not affected (5.1.3 to 5.1.4) you had to download and apply a patch, rather than do the full installation. This is no longer the case.

If you are using the multitenant architecture in Oracle 12cR1, you should read this article before you continue.

Related articles.

Setup

Download the APEX software.

Unzip the software either on your client PC if you intend to install it from there using the SQL*Plus client on your PC, or on the database server if you intend to install it from there. The latter will be more efficient as you will reduce the network traffic between the SQL*Plus client and the database server.

Create a new tablespace to act as the default tablespace for APEX.

-- For Oracle Managed Files (OMF).
CREATE TABLESPACE apex DATAFILE SIZE 100M AUTOEXTEND ON NEXT 1M;

-- For non-OMF.
CREATE TABLESPACE apex DATAFILE '/path/to/datafiles/apex01.dbf' SIZE 100M AUTOEXTEND ON NEXT 1M;

Installation

Change directory to the directory holding the unzipped APEX software.

$ cd /home/oracle/apex

Connect to SQL*Plus as the SYS user and run the "apexins.sql" script, specifying the relevant tablespace names and image URL.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> -- @apexins.sql tablespace_apex tablespace_files tablespace_temp images
SQL> 
SQL> @apexins.sql APEX APEX TEMP /i/

If you are upgrading, you've finished the DB upgrade at this point. You only need to run subsequent steps for new installations. You will need to redeploy the image files to your app server. If you are using ORDS, it's a good idea to run an ORDS validate to make sure the APEX hasn't affected your ORDS installation.

Once complete, change the admin password by running the "apxchpwd.sql" scripts as the SYS user.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> @apxchpwd.sql

If you want to add the user silently, you could run the following code, specifying the required password and email.

BEGIN
    APEX_UTIL.set_security_group_id( 10 );
    
    APEX_UTIL.create_user(
        p_user_name       => 'ADMIN',
        p_email_address   => 'me@example.com',
        p_web_password    => 'PutPasswordHere',
        p_developer_privs => 'ADMIN' );
        
    APEX_UTIL.set_security_group_id( null );
    COMMIT;
END;
/

Create the APEX_LISTENER and APEX_REST_PUBLIC_USER users by running the "apex_rest_config.sql" script.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> @apex_rest_config.sql

If you want to add these users silently, you can specify the passwords as parameters to the script.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> @apex_rest_config.sql ApexPassword1 ApexPassword2

Now you need to decide which gateway to use to access APEX. The Oracle recommendation is ORDS.

Oracle REST Data Services (ORDS) Configuration

If you want to use Oracle REST Data Services (ORDS) to front APEX, you can follow the instructions here.

Embedded PL/SQL Gateway (EPG) Configuration

If you want to use the Embedded PL/SQL Gateway (EPG) to front APEX, you can follow the instructions here. This is used for both the first installation and upgrades.

Run the "apex_epg_config.sql" script, passing in the base directory of the installation software as a parameter.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> @apex_epg_config.sql /home/oracle

Unlock the ANONYMOUS account.

SQL> CONN sys@cdb1 AS SYSDBA

DECLARE
  l_passwd VARCHAR2(40);
BEGIN
  l_passwd := DBMS_RANDOM.string('a',10) || DBMS_RANDOM.string('x',10) || '1#';
  -- Remove CONTAINER=ALL for non-CDB environments.
  EXECUTE IMMEDIATE 'ALTER USER anonymous IDENTIFIED BY ' || l_passwd || ' ACCOUNT UNLOCK CONTAINER=ALL';
END;
/

Check the port setting for XML DB Protocol Server.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> SELECT DBMS_XDB.gethttpport FROM DUAL;

GETHTTPPORT
-----------
          0

1 row selected.

SQL>

If it is set to "0", you will need to set it to a non-zero value to enable it.

SQL> CONN sys@pdb1 AS SYSDBA
SQL> EXEC DBMS_XDB.sethttpport(8080);

PL/SQL procedure successfully completed.

SQL>

APEX should now be available from a URL like "http://machine:port/apex".

Oracle HTTP Server (OHS) Configuration

If you want to use Oracle HTTP Server (OHS) to front APEX, you can follow the instructions here.

Change the password and unlock the APEX_PUBLIC_USER account. This will be used for any Database Access Descriptors (DADs).

SQL> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY myPassword ACCOUNT UNLOCK;

If you don't want the password to expire you will need to create a new profile with password expiration disabled and assign it to the user.

Create a DAD in the OHS:

Alternatively, edit the "dads.conf" file directly. For the OHS that comes with Forms and Reports Services, this is located here "$FR_INST/config/OHS/ohs1/mod_plsql/dads.conf". Once amended, remember to restart the HTTP server.

$ $FR_INST/bin/opmnctl restartproc process-type=OHS

Copy the APEX images to your Oracle HTTP Server.

$ cp -R /tmp/apex/images $FR_INST/config/OHS/ohs1/htdocs/apex_images

Make them available from the "/i/" alias by adding the following alias to the virtual host defined in the "ssl.conf" or "httpd.conf" file in the "$FR_INST/config/OHS/ohs1" directory.

Alias /i/ "/u01/app/oracle/middleware/FR_inst/config/OHS/ohs1/htdocs/apex_images/"

APEX should now be available from a URL like "http://machine:port/apex".

Network ACLs

If your APEX installation needs to contact other servers on the network, you will need to create the appropriate ACLs to allow account to the network services. This is discussed here.

For more information see:

Hope this helps. Regards Tim...

Back to the Top.