Установка Oracle APEX 20.1 на Database 18c Express Edition

Установка Oracle APEX 20.1 на Database 18c Express Edition

В посте рассматривается краткий обзор среды разработки Oracle APEX и пошаговая инструкция ее установки на Oracle Database 18c Express Edition.

Краткий обзор среды разработки APEX.

Oracle Application Express (APEX) – это low-code платформа для разработки функциональных, масштабируемых и безопасных web-приложений. На сегодняшний день последней актуальной версией APEX является Oracle APEX 20.1. Данная версия выпущена в апреле 2020 года. Для установки и работы с APEX 20.1 в Oracle Database 18c Express Edition необходимо понимать принцип работы новой опции Oracle Database – Multitenant. Начиная с Oracle Database 12с поддерживается новая архитектура – Multitenant, которая предоставляет возможность использовать множество баз данных для консолидации их в составе единой и главной базы данных. Такое объединение упрощает задачи администрирования баз данных. Единая и главная база данных используется в качестве платформы и называется контейнерная база данных (Container Database – CDB), а база данных из множества работающих в составе контейнерной базы данных называется подключаемой базой данных (Pluggable Database – PDB). Архитектура Multitenat позволяет создать в Oracle Database 18с Express Edition одну CDB базу и до трех PDB баз. По умолчанию в Oracle Database 18с Express Edition APEX отсутствует. В связи с этим, для установки и работы с APEX необходимо подключиться к PDB и выполнять установку и настройку APEX. Ниже пошагово описывается процесс установки APEX 20.1 на Oracle Database 18c Express Edition, работающей под управлением операционной системы Oracle Linux. Данная операционная система установлена и работает в виртуальной машине.  Нижеописанные шаги также будут работать с Oracle Database 18c Express Edition установленной на операционную систему Windows.

Для информации: Кроме установки и использования Oracle APEX на локальном компьютере, также есть возможность установить и использовать ее для разработки веб-приложений на бесплатном сервисе Always Free Service облака Oracle или же запросить и настроить свое рабочее пространство в бесплатном облачном сервисе apex.oracle.com. В данном посте рассматривается установка и доступ к среде разработки APEX на локальном компьютере.

Установка Oracle APEX 20.1.

Предполагается, что есть успешно установленная Oracle Database 18c Express Edition. При необходимости, можно установить Oracle Database 18c Express Edition используя следующие материалы: Установка Oracle Database 18c Express Edition на Linux и Установка Oracle Database 18c Express Edition на Windows. В посте подключение к PDB описываются различные способы подключения и работы в PDB.

Шаг 1. Установка APEX на Oracle Database 18c Express Edition.

Oracle APEX распространяется бесплатно и установочный файл можно скачать с официального сайта Oracle:

https://www.oracle.com/tools/downloads/apex-downloads.html

Для скачивания на портале Oracle необходимо наличие учетной записи с паролем. При ее отсутствии осуществляется регистрация новой учетной записи. Пройдя по ссылке, выбирается версия Oracle APEX 20.1 – All languages.

После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement. Запускается скачивание zip архива (apex_20.1.zip). Объем архива 160 Мб.

После завершения скачивания, архив apex_20.1.zip нужно скопировать в директорию /home/oracle/ операционной системы Oracle Linux, работающей в виртуальной машине. Выполняется разархивирование файла и проверка содержимого архива:

[oracle@dushanbe ~]$ pwd
/home/oracle
[oracle@dushanbe ~]$ ls
apex_20.1.zip  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[oracle@dushanbe ~]$ unzip apex_20.1.zip 
[oracle@dushanbe ~]$ ls
apex  apex_20.1.zip  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[oracle@dushanbe ~]$ cd apex
[oracle@dushanbe apex]$ pwd
/home/oracle/apex
[oracle@dushanbe apex]$ ls
apex_epg_config_cdb.sql    apexins_cdb.sql             apex_rest_config.sql  apxdevrm.sql        apxldimg.sql        apxremov_nocdb.sql  apxrtins_cdb_upg.sql  catapx.sql    dbcsconf.sql
apex_epg_config_core.sql   apexins_cdb_upg.sql         appins.sql            apxdvins_cdb.sql    apxpatch_cdb.sql    apxremov.sql        apxrtins_nocdb.sql    core          dbcsins.sql
apex_epg_config_nocdb.sql  apexins_nocdb.sql           apxappcon.sql         apxdvins_nocdb.sql  apxpatch_nocdb.sql  apxremov_xdb.sql    apxrtins.sql          coreins2.sql  devins.sql
apex_epg_config.sql        apexins.sql                 apxchpwd.sql          apxdvins.sql        apxpatch.sql        apxrtins1.sql       apxsdoins.sql         coreins3.sql  images
apexins1.sql               apex_rest_config_cdb.sql    apxconf.sql           apxdwngrd.sql       apxremov1.sql       apxrtins2.sql       apxsilentins.sql      coreins4.sql  load_trans.sql
apexins2.sql               apex_rest_config_core.sql   apxdevrm_cdb.sql      apxexit.sql         apxremov2.sql       apxrtins3.sql       apxupgrd.sql          coreins5.sql  utilities
apexins3.sql               apex_rest_config_nocdb.sql  apxdevrm_nocdb.sql    apxldimg_core.sql   apxremov_cdb.sql    apxrtins_cdb.sql    builder               coreins.sql

После разархивирования создалась папка apex с множеством sql скриптов для создания и настройки APEX. Необходимо из директории со скриптами (/home/oracle/apex/) подключиться к PDB XEPDB1 и начать установку APEX:

[oracle@dushanbe apex]$ sqlplus sys as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat Aug 8 11:21:28 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Enter password: 
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> alter session set container = xepdb1;
Session altered.
SQL> show pdbs;
CON_ID CON_NAME  OPEN MODE   RESTRICTED
------ --------- ----------- -----------
  3     XEPDB1   READ WRITE      NO
SQL> 

Подключение к XEPDB1 прошло успешно. Запускается скрипт apexins.sql для установки APEX со следующим синтаксисом:

@apexins.sql tablespace_apex tablespace_files tablespace_temp images

где, tablespace_apex – название табличного пространства для пользователя приложения APEX. tablespace_files – название табличного пространства для пользователя файлов APEX. tablespace_temp – название временного табличного пространства. images – виртуальная директория для изображений APEX. Для обеспечения корректного обновления APEX в будущем необходимо задать значение для этого параметра равное /i/.

Скрипт apexins.sql запускается со следующими значениями параметров:

SQL> @apexins.sql SYSAUX SYSAUX TEMP /i/
....

Thank you for installing Oracle Application Express 20.1.0.00.13
Oracle Application Express is installed in the APEX_200100 schema.
The structure of the link to the Application Express administration services is as follows:
http://host:port/pls/apex/apex_admin (Oracle HTTP Server with mod_plsql)
http://host:port/apex/apex_admin     (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)
http://host:port/apex/apex_admin     (Oracle REST Data Services)
The structure of the link to the Application Express development interface is as follows:
http://host:port/pls/apex (Oracle HTTP Server with mod_plsql)
http://host:port/apex     (Oracle XML DB HTTP listener with the embedded PL/SQL gateway)
http://host:port/apex     (Oracle REST Data Services)
timing for: Phase 3 (Switch)
Elapsed: 00:00:18.20
timing for: Complete Installation
Elapsed: 00:18:14.29
PL/SQL procedure successfully completed.
1 row selected.
…null1.sql
SYS>

Выше приводится последняя часть лога установки APEX, так как система генерирует очень много строк лога.  Лог показывает, что установка прошла успешно и заняла 18 мин 14 секунд времени.

Шаг 2. Настройки и подключение к APEX.

После успешного завершения установки необходимо создать пользователя с административными правами в APEX и назначить ему пароль, настроить порт подключения к APEX и создать рабочее пространство для разработки приложений.

Для создания администратора и назначения ему пароля запускается скрипт apxchpwd.sql в PDB. Данный скрипт также может быть использован для сброса пароля существующему администратору APEX.

После запуска скрипта система предложит ввести пользовательское имя для администратора (login), его email и пароль. По умолчанию система предлагает ADMIN для пользовательского имени администратора (login). Если необходимо оставить пользователя по умолчанию, то поле Enter the administrator’s username следует оставить пустым и нажать Enter. В поле Enter ADMIN’s email [ADMIN] можно указать свою электронную почту. В поле Enter ADMIN’s password [] надо назначить пароль администратора, который будет удовлетворять следующим требованиям:

  • Пароль должен содержать не менее 6 символов.
  • Пароль должен содержать не менее одного буквенного символа.
  • Пароль должен содержать не менее одного символа пунктуации:
    (!”#$%&()“*+,-/:;?_).
  • Пароль должен содержать не менее одного заглавного буквенного символа.
  • Пароль должен содержать не менее одного строчного буквенного символа.

Иначе система выдаст следующую ошибку:

ORA-20001: Password validation failed.
ORA-06512: at line 30
ORA-06512: at "APEX_200100.WWV_FLOW_FND_USER_INT", line 3744
ORA-06512: at line 20

Запускается скрипт для создания администратора с именем ADMIN и назначения его email и пароля:

SYS> @apxchpwd.sql
…set_appun.sql
This script can be used to change the password of an Application Express
instance administrator. If the user does not yet exist, a user record will be created.
Enter the administrator's username [ADMIN] 
User "ADMIN" does not yet exist and will be created.
Enter ADMIN's email [ADMIN] ****@****.tj
Enter ADMIN's password [] 
Created instance administrator ADMIN.
SYS>

Пользователь успешно создан.

Для настройки встроенного PL/SQL-шлюза необходимо запустить скрипт apex_epg_config.sql со следующим синтаксисом:

apex_epg_config.sql директория-на-уровень-выше-директории-распакованного-архива

директория-на-уровень-выше-директории-распакованного-архива – если после разархивирования архивного файла apex_20.1.zip папка apex со скрипты установки и настройки находятся в директории /home/oracle, то надо при запуске команды указать /home/oracle.

SYS> @apex_epg_config.sql /home/oracle
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
. Loading images directory: /home/oracle/apex/images
Directory created.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
Commit complete.
Directory dropped.
timing for: Load Images
Elapsed: 00:02:42.87
PL/SQL procedure successfully completed.
Commit complete.
SQL>

Успешно завершено.

Далее назначается порт для подключения к APEX. Проверяется текущее значение порта. По умолчание значение порта равно 0.

SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
GETHTTPPORT
-----------
    0
SQL> 

В примере назначается порт 8080 для доступа и проверяется новое значение:

SQL> EXEC DBMS_XDB.SETHTTPPORT(8080);
PL/SQL procedure successfully completed.

SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
GETHTTPPORT
-----------
   8080
SQL> 

Новое значение порта для доступа к APEX успешно задано.

На последнем шаге разблокируется пользователь ANONYMOUS в контейнерной базе данных (CDB). Для этого выполняется выход из SQL*Plus PDB, подключение к CDB и разблокировка пользователя:

SQL> exit
Disconnected from Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
[oracle@dushanbe apex]$ sqlplus sys as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sat Aug 8 11:56:21 2020
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Enter password: 
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> show pdbs;
CON_ID  CON_NAME  OPEN MODE  RESTRICTED
------- --------- ---------- -----------
   2    PDB$SEED  READ ONLY      NO   
   3     XEPDB1   READ WRITE     NO

SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK;
User altered.
SQL>

На этом завершается установка и настройки доступа к APEX. Можно подключиться к Oracle APEX 20.1 по следующим адресам:
http://localhost:8080/apex
http://localhost:8080/apex/apex_admin
Вместо localhost можно указать 127.0.0.1 или IP адрес хоста. В примере используется IP адрес хоста равный 192.168.0.1.

Запускается веб-браузер и выполняется переход к следующему адресу: http://192.168.0.1:8080/apex

После завершения установки автоматически создается рабочее пространство (Workspace) для выполнения административных задач в APEX. Название workspace – INTERNAL. Выполняется подключение к административному workspace под пользователем ADMIN и его паролем (данный пользователь и его пароль были созданы при запуске скрипта apxchpwd.sql (см. выше)).

После успешного входа система запросит создать новое рабочее пространство для разработки приложений:

На этапе Identify Schema надо будет указать название схемы (пользователя базы данных), к которой будет привязана новое рабочее пространство. Если в поле Re-use existing schema выбран No, то в поле Schema Name необходимо указать название нового пользователя/схемы, в Schema Password задать ему пароль, а в поле Space Quota (MB) назначить ему квоту на использование пространства в табличном пространстве. В примере для поля Re-use existing schema выбирается значение Yes и в Schema Name указывается тестовая и учебная схема/пользователь hr. Это даст возможность использовать связанные таблицы, представления, триггеры, данные и другие объекта схемы hr во время создания приложений в APEX:

Нажимается Next и выполняется переход на шаг создания пользователя с административными правами для нового создаваемого пространства – Dushanbe. Для нового пространства тоже создается пользователь с именем Admin. Также указывается пароль, имя и фамилия администратора, email нового создаваемого пространства для разработки приложений:

Нажимается Next и выполняется переход на следующий шаг – подтверждения настроек нового рабочего пространства:

После нажатия Create Workspace начнется создание рабочего пространства и при успешном завершении система выдаст следующее сообщение:

Это означает, что в APEX успешно создано новое рабочее пространство с именем Dushanbe. Нажатие кнопки Done позволит пользователю ADMIN получить доступ к своему рабочему пространству и начать работу:

Первоначально выполняется выход пользователя ADMIN из административного рабочего пространства (workspace) INTERNAL . Для этого в правом верхнем углу нажимается на имя пользователя и нажимается на Sign Out.

Нажимается на Return to Sign in Page и на новой странице указываются данные для подключения к новому рабочему пространству (workspace) Dushanbe:

При первом входе администратору нового рабочего пространства (workspace) необходимо самостоятельно сменить пароль:

После успешной смены пароля администратор workspace Dushanbe получает доступ к среде:

Рабочее пространство Dushanbe готово для начала разработки веб-приложений.

7 thoughts on “Установка Oracle APEX 20.1 на Database 18c Express Edition

  1. Добрый день, Рустам!
    В последней версии APEX нет файла apex_epg_config.sql. Предлагается настроить ords, но внятной пошаговой инструкции не нашел. Был бы благодарен, если в ближайших статьях рассмотрели этот вопрос.

    1. Добрый день, Герман.
      Спасибо за Ваш вопрос.

      Действительно, в APEX версии 20.2.0.00.20 от октября 2020 года уже не поддерживается Web Listener с типом Embedded PL/SQL Gateway и Oracle HTTP Server (mod_plsql). Файл apex_epg_config.sql отвечает за настройку Embedded PL/SQL Gateway. В связи с этим, необходимо установить и использовать Oracle REST Data Services (ORDS). Попробую в следующем месяце подготовить пост с описанием установки и настройки APEX с ORDS.

  2. Доброго времени суток, Рустам!
    Использую Oracle APEX 4 в котором имеется несколько workspace’ов. Для создания нового workspace’са необходимо подключиться через workspace: INTERNAL, user: ADMIN. Если забыт пароль от workspace’са INTERNAL, его можно переназначить используя скрипт @apxchpwd.sql подключившись к базе через SYS, но при этом сохранив существующие workspace’сы с установленными для них паролями? Сохраняться ли link’и которые были созданы для связи с другими схемами?

    Заранее, спасибо!

    1. Добрый день, Евгений.
      Спасибо за Ваш вопрос.

      Да, административные задачи по управлению рабочим пространством (workspace) выполняются в workspace’е INTERNAL. Пароль учетной записи с административными правами (в Вашем случае учетная запись ADMIN) можно сбросить двумя способами:
      1) применением скрипта apxchpwd.sql;
      2) ручным выполнением SQL запросов.
      Можете использовать первый способ, т.к. он проще. Во время запуска скрипта apxchpwd.sql прошу обратить внимание, что данный скрипт должен быть запущен из директории вашей текущей версии Oracle APEX 4.

      Изменение (сброс) пароля администратора workspace INTERNAL не должен влиять на пароли и настройки других существующих workspace’ов.

  3. Рустам, доброго времени суток!
    Есть вопрос касательно удаления самого APEX (у меня версия 20.2), запускаю @apxremov.sql, но в ходе выполнения он зависает и не продолжается. Пытаюсь запускать скрипт под SYS. Может есть какие-то инструкции или рекомендации по удалению APEX?
    Спасибо!

    1. Добрый день, Павел!
      Спасибо за Ваш вопрос.

      1. У Вас APEX установлена в CDB или PDB?
      2. В логе удаления нет какой-нибудь ошибки?

Leave a Reply

Your email address will not be published. Required fields are marked *