Установка 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”
Добрый день, Рустам!
В последней версии APEX нет файла apex_epg_config.sql. Предлагается настроить ords, но внятной пошаговой инструкции не нашел. Был бы благодарен, если в ближайших статьях рассмотрели этот вопрос.
Добрый день, Герман.
Спасибо за Ваш вопрос.
Действительно, в 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.
Уважаемый Герман,
подготовил пост «Установка и настройка Oracle APEX 20.2 и ORDS 20.3 на Oracle Database 18c Express Edition»:
https://rustamkhodjaev.com/2021/01/26/ustanovka-oracle-apex-ords/
Доброго времени суток, Рустам!
Использую Oracle APEX 4 в котором имеется несколько workspace’ов. Для создания нового workspace’са необходимо подключиться через workspace: INTERNAL, user: ADMIN. Если забыт пароль от workspace’са INTERNAL, его можно переназначить используя скрипт @apxchpwd.sql подключившись к базе через SYS, но при этом сохранив существующие workspace’сы с установленными для них паролями? Сохраняться ли link’и которые были созданы для связи с другими схемами?
Заранее, спасибо!
Добрый день, Евгений.
Спасибо за Ваш вопрос.
Да, административные задачи по управлению рабочим пространством (workspace) выполняются в workspace’е INTERNAL. Пароль учетной записи с административными правами (в Вашем случае учетная запись ADMIN) можно сбросить двумя способами:
1) применением скрипта apxchpwd.sql;
2) ручным выполнением SQL запросов.
Можете использовать первый способ, т.к. он проще. Во время запуска скрипта apxchpwd.sql прошу обратить внимание, что данный скрипт должен быть запущен из директории вашей текущей версии Oracle APEX 4.
Изменение (сброс) пароля администратора workspace INTERNAL не должен влиять на пароли и настройки других существующих workspace’ов.
Рустам, доброго времени суток!
Есть вопрос касательно удаления самого APEX (у меня версия 20.2), запускаю @apxremov.sql, но в ходе выполнения он зависает и не продолжается. Пытаюсь запускать скрипт под SYS. Может есть какие-то инструкции или рекомендации по удалению APEX?
Спасибо!
Добрый день, Павел!
Спасибо за Ваш вопрос.
1. У Вас APEX установлена в CDB или PDB?
2. В логе удаления нет какой-нибудь ошибки?