You are on page 1of 3

APEX installation on Linux - Step by Step

Hi All,

Here the step by step for APEX installation on Linux.

You can download the latest Apex version from:


http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

1. Copy the apex_4.2.2_en.zip to $ORACLE_HOME:


cp apex_4.2.2_en.zip $ORACLE_HOME

2. Extract apex_4.2.2_en.zip :
cd $ORACLE_HOME; unzip apex_4.2.2_en.zip;cd $ORACLE_HOME/apex

3. Create a new tablespace for Apex objects:

create TABLESPACE APEX


DATAFILE '/full_path_for_data_directory/apex01.dbf'
SIZE 1000M
AUTOEXTEND ON
NEXT 100M
MAXSIZE 8000M;

4. Start APEX installation:


sqlplus "/as sysdba" @apexins.sql APEX APEX TEMP /i/

Arguments:
Position 1: Name of tablespace for Application Express application user
Position 2: Name of tablespace for Application Express files user
Position 3: Name of temporary tablespace or tablespace group
Position 4: Virtual directory for APEX images

Example:
1)Local
sqlplus "sys/syspass as sysdba" @apexins SYSAUX SYSAUX TEMP /i/
2)With connect string
sqlplus "sys/syspass@10g as sysdba" @apexins SYSAUX SYSAUX TEMP /i/

5. Change ADMIN account password:


sqlplus "/as sysdba" @apxchpwd.sql

*** The password must contain at least one punctuation character: (!#$%&()*+,-/:;?_).

6. Run the Embedded PL/SQL Gateway configuration (EPG):


sqlplus "/as sysdba" @apex_epg_config.sql $ORACLE_HOME (full path)

Page 1 of 3
7. Update the APEX images with those from the new release:
sqlplus "/as sysdba" @apxldimg.sql $ORACLE_HOME (full path)

8. Make sure that the following accounts are unlocked and not expired:
If EXPIRED - Change password for following users :
ANONYMOUS,XDB,APEX_PUBLIC_USER,FLOWS_FILES,APEX_040200.
IF LOCKED - Unlock:
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
ALTER USER XDB ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER FLOWS_FILES ACCOUNT UNLOCK;
ALTER USER APEX_040200 ACCOUNT UNLOCK;

9. Enable network services (ACL) and XML DB HTTP server:


sqlplus "/as sysdba"
exec dbms_xdb.sethttpport(8080);

Verify the port:


SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;

10. Enable remote HTTP connections:


sqlplus "/as sysdba"
exec dbms_xdb.setlistenerlocalaccess(l_access => false);

11. Grant connect privileges to any host for the APEX_040200 database user:
sqlplus "/as sysdba"
DECLARE
ACL_PATH VARCHAR2(4000);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040200
-- the "connect" privilege if APEX_040200
-- does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_040200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_040200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
Page 2 of 3
END;
/
COMMIT;

run also the following command:


Alter system set shared_servers=10;
*add hared_servers=10 to your spfile/pfile.

12. Check that Apex was installed:


SELECT comp_name, version, status FROM dba_registry WHERE comp_id='APEX';

COMP_NAME VERSION STATUS


------------------------------ ------------------------------ -----------

Oracle Application Express 4.2.2.00.11 VALID

13. Login first time. You will be asked to change ADMIN password:
http://localhost:8080/apex/apex_admin

14. Workspace login page:


http://localhost:8080/apex

Workspace: INTERNAL
Username: ADMIN
Password: Your new admin password

DECLARE
ACL_PATH VARCHAR2(4000);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_050000
-- the "connect" privilege if APEX_050000 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE (ACL_PATH, 'APEX_050100','connect')
IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,'APEX_050100', TRUE,'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml','ACL that lets power
users to connect to everywhere','APEX_050100', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;

Page 3 of 3