В посте рассматривается краткий обзор среды разработки Oracle APEX, пошаговая инструкция установки и настройки APEX версии 20.2 и ORDS версии 20.3 на Oracle Database 18c Express Edition.
Краткий обзор среды
разработки APEX.
Oracle Application Express (APEX) – это low-code платформа для разработки функциональных, масштабируемых и безопасных web-приложений. На сегодняшний день последней актуальной версией APEX является Oracle APEX 20.2. Данная версия выпущена в октябре 2020 года. Для установки и работы с APEX 20.2 в 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.2 и Oracle REST Data Services версии 20.3 (далее ORDS) на Oracle Database 18c Express Edition, работающей на виртуальной машине под управлением операционной системы Oracle Linux. При использовании APEX 20.2 минимальная версия ORDS должна быть 19.1. Нижеописанные шаги также будут работать с Oracle Database 18c Express Edition установленной на операционную систему Windows.
Для информации: Кроме установки и использования платформы Oracle APEX на локальном компьютере, также есть возможность установить и использовать ее для разработки веб-приложений на бесплатном сервисе Always Free Service облака Oracle или же запросить и настроить свое рабочее пространство в бесплатном облачном сервисе apex.oracle.com. В данном посте рассматривается установка и доступ к среде разработки APEX на локальном компьютере.
Установка Oracle APEX 20.2. Предполагается, что есть успешно установленная 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.2 – All languages.
После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement.
Нажать на «Download apex_20_2.zip». Запускается скачивание zip архива (apex_20.2.zip). Объем архива 228 Мб.
После завершения скачивания архив apex_20.2.zip нужно скопировать в директорию /home/oracle/ операционной системы Oracle Linux, работающей на виртуальной машине. Выполняется разархивирование файла и проверка содержимого архива:
[oracle@dushanbe ~]$ pwd /home/oracle [oracle@dushanbe ~]$ ls apex_20.2.zip Desktop Documents Downloads Music Pictures Public Templates Videos [oracle@dushanbe ~]$ ls -l apex_20.2.zip -rw-rw-rw-. 1 oracle oracle 239868057 Jan 14 22:50 apex_20.2.zip [oracle@dushanbe ~]# unzip apex_20.2.zip [oracle@dushanbe ~]$ ls apex apex_20.2.zip Desktop Documents Downloads Music Pictures Public Templates Videos [oracle@dushanbe ~]$ cd apex [oracle@dushanbe apex]$ pwd /home/oracle/apex [oracle@dushanbe apex]$ ls apexins1.sql apex_rest_config_cdb.sql apxdevrm_cdb.sql apxexit.sql apxremov_nocdb.sql apxrtins_nocdb.sql core dbcsins.sql apexins2.sql apex_rest_config_core.sql apxdevrm_nocdb.sql apxpatch_cdb.sql apxremov.sql apxrtins.sql coreins2.sql devins.sql apexins3.sql apex_rest_config_nocdb.sql apxdevrm.sql apxpatch_nocdb.sql apxrtins1.sql apxsdoins.sql coreins3.sql images apexins_cdb.sql apex_rest_config.sql apxdvins_cdb.sql apxpatch.sql apxrtins2.sql apxsilentins.sql coreins4.sql load_trans.sql apexins_cdb_upg.sql appins.sql apxdvins_nocdb.sql apxremov1.sql apxrtins3.sql apxupgrd.sql coreins5.sql utilities apexins_nocdb.sql apxappcon.sql apxdvins.sql apxremov2.sql apxrtins_cdb.sql builder coreins.sql apexins.sql apxchpwd.sql apxdwngrd.sql apxremov_cdb.sql apxrtins_cdb_upg.sql catapx.sql dbcsconf.sql [oracle@dushanbe apex]$
После разархивирования создалась папка 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> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
--------------------------------------2 PDB$SEED READ ONLY NO
3 XEPDB1 READ WRITE NO
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/ ... <Эта часть лога не приведена> ... # Actions in Phase 3: # ok 1 - BEGIN | 0.00 ok 2 - Computing Pub Syn Dependents | 0.00 ok 3 - Upgrade Hot Metadata and Switch Schemas | 0.00 ok 4 - Removing Jobs | 0.00 ok 5 - Creating Public Synonyms | 0.03 ok 6 - Granting Public Synonyms | 0.10 ok 7 - Granting to FLOWS_FILES | 0.00 ok 8 - Creating FLOWS_FILES grants and synonyms | 0.02 ok 9 - Creating Jobs | 0.00 ok 10 - Creating Dev Jobs | 0.00 ok 11 - Installing FLOWS_FILES Objects | 0.00 ok 12 - Installing APEX$SESSION Context | 0.00 ok 13 - Recompiling APEX_200200 | 0.05 ok 14 - Installing APEX REST Config | 0.02 ok 15 - Set Loaded/Upgraded in Registry | 1.32 ok 16 - Removing Unused SYS Objects | 0.00 ok 17 - Validating Installation | 0.03 ok 3 - 17 actions passed, 0 actions failed | 1.57 PL/SQL procedure successfully completed. Thank you for installing Oracle Application Express 20.2.0.00.20 Oracle Application Express is installed in the APEX_200200 schema. The structure of the link to the Application Express administration services is as follows: http://host:port/ords/apex_admin The structure of the link to the Application Express development interface is as follows: http://host:port/ords timing for: Phase 3 (Switch) Elapsed: 00:01:34.83 timing for: Complete Installation Elapsed: 00:14:57.61 PL/SQL procedure successfully completed. 1 row selected. …null1.sql SYS>
Выше приводится последняя часть лога установки APEX, так как система генерирует очень много строк лога. Лог показывает, что установка прошла успешно и заняла 14 мин 57 секунд времени.
Шаг
2. Настройки и подключение к APEX
После успешного
завершения установки необходимо создать пользователя с административными
правами в APEX
и
назначить ему пароль, настроить ORDS
и создать рабочее пространство для разработки приложений.
Для создания
администратора и назначения ему пароля запускается скрипт apxchpwd.sql в PDB. Данный скрипт в будущем также
может быть использован для сброса пароля существующему администратору APEX.
После запуска скрипта система предложит ввести пользовательское имя для администратора (login), его email и пароль. По умолчанию система предлагает ADMIN для пользовательского имени администратора (login). Если необходимо оставить пользователя по умолчанию, то поле Enter the administrator’s username [ADMIN] следует оставить пустым и нажать 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] test@***.tj Enter ADMIN's password [] Created instance administrator ADMIN. SYS>
Пользователь успешно создан.
Также важно настроить учетную запись APEX_PUBLIC_USER для управления Oracle Application Express. Учетная запись APEX_PUBLIC_USER создается со случайным и недоступным паролем во время установки Oracle Application Express. Если же выполняется обновление (upgrade) с предыдущей версии Oracle Application Express, то приведенные ниже две команды не являются необходимыми:
SYS> ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK; SYS> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;
Для новой установки APEX (а не обновление) необходимо запустить скрипт apex_rest_config.sql для настройки RESTful сервисов. После запуска потребуется назначить пароль для учетных записей APEX_LISTENER, APEX_REST_PUBLIC_USER. Ниже во время установки и настройки ORDS будет необходимо вводить пароли этих учетных записей.
SYS> @apex_rest_config.sql Enter a password for the APEX_LISTENER user [] Enter a password for the APEX_REST_PUBLIC_USER user [] …set_appun.sql …setting session environment …create APEX_LISTENER and APEX_REST_PUBLIC_USER users SYS>
Настройка ORDS
В APEX версии 20.2 уже не поддерживается Web Listener с типом Embedded PL/SQL Gateway и Oracle HTTP Server. В связи с этим, необходимо установить и использовать Oracle REST Data Services (ORDS). Далее описывается процесс установки и базовой настройки APEX с ORDS версии 20.3.
Для начала, необходимо скачать ORDS. Oracle ORDS распространяется бесплатно и установочный файл можно скачать с официального сайта Oracle – https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html
Для скачивания на портале Oracle необходимо наличие учетной записи с
паролем. При ее отсутствии осуществляется регистрация новой учетной записи.
Пройдя по ссылке, скачивается файл Oracle REST Data Services.
После ознакомления и принятия условий лицензирования необходимо поставить галочку в разделе I reviewed and accept the Oracle License Agreement.
Нажать на «Download ords-20.3.0.301.1819.zip». Запускается скачивание zip архива (ords-20.3.0.301.1819.zip). Объем архива 70 Мб.
После завершения скачивания необходимо создать директорию ords в /home/oracle/ и архив ords-20.3.0.301.1819.zip нужно скопировать в созданную директорию /home/oracle/ords операционной системы Oracle Linux, работающей на виртуальной машине. Выполняется разархивирование файла и проверка содержимого архива:
[oracle@dushanbe ~]$ pwd /home/oracle [oracle@dushanbe ~]$ ls apex apex_20.2.zip Desktop Documents Downloads Music Pictures Public Templates Videos [oracle@dushanbe ~]$ mkdir ords [oracle@dushanbe ~]$ cd ords [oracle@dushanbe ords]$ pwd /home/oracle/ords [oracle@dushanbe ords]$ ls -l total 70440 -rw-rw-rw-. 1 oracle oracle 72130015 Jan 15 00:00 ords-20.3.0.301.1819.zip [oracle@dushanbe ords]$ [oracle@dushanbe ords]$ unzip ords-20.3.0.301.1819.zip [oracle@dushanbe ords]$ ls -l total 139944 drwxr-xr-x. 3 oracle oracle 21 Oct 27 18:43 docs drwxrwxrwx. 7 oracle oracle 93 Oct 23 14:42 examples -rw-rw-rw-. 1 oracle oracle 40033 Oct 23 14:42 index.html drwxrwxrwx. 2 oracle oracle 43 Oct 23 14:42 installer -rw-rw-rw-. 1 oracle oracle 72130015 Jan 15 00:00 ords-20.3.0.301.1819.zip -rw-r--r--. 1 oracle oracle 71128103 Oct 27 18:43 ords.war drwxrwxrwx. 2 oracle oracle 36 Oct 23 14:42 params [oracle@dushanbe ords]$
При использовании ORDS для работы с APEX приложениями ORDS должен быть настроен для обслуживания статических файлов APEX. Необходимо скопировать директорию images (apex/images) из домашней директории с установочными файлами APEX в папку файловой системы, где установлены службы Oracle REST Data Services. В данном примере домашняя директория APEX находится в /home/oracle/apex и директория установки ORDS в /home/oracle/ords.
[oracle@dushanbe ords]$ cd /home/oracle/apex/ [oracle@dushanbe apex]$ pwd /home/oracle/apex [oracle@dushanbe apex]$ ls apexins1.sql apex_rest_config_core.sql apxdevrm.sql apxpatch.sql apxrtins3.sql builder dbcsconf.sql apexins2.sql apex_rest_config_nocdb.sql apxdvins_cdb.sql apxremov1.sql apxrtins_cdb.sql catapx.sql dbcsins.sql apexins3.sql apex_rest_config.sql apxdvins_nocdb.sql apxremov2.sql apxrtins_cdb_upg.sql core devins.sql apexins_cdb.sql appins.sql apxdvins.sql apxremov_cdb.sql apxrtins_nocdb.sql coreins2.sql images apexins_cdb_upg.sql apxappcon.sql apxdwngrd.sql apxremov_nocdb.sql apxrtins.sql coreins3.sql install2021-01-14_23-10-38.log apexins_nocdb.sql apxchpwd.sql apxexit.sql apxremov.sql apxsdoins.sql coreins4.sql load_trans.sql apexins.sql apxdevrm_cdb.sql apxpatch_cdb.sql apxrtins1.sql apxsilentins.sql coreins5.sql utilities apex_rest_config_cdb.sql apxdevrm_nocdb.sql apxpatch_nocdb.sql apxrtins2.sql apxupgrd.sql coreins.sql [oracle@dushanbe apex]$ cp -r images/ /home/oracle/ords/ [oracle@dushanbe apex]$ cd /home/oracle/ords/ [oracle@dushanbe ords]$ pwd /home/oracle/ords [oracle@dushanbe ords]$ [oracle@dushanbe ords]$ ls docs examples images index.html installer ords-20.3.0.301.1819.zip ords.war params
Проверяется текущая версия JDK.
[oracle@dushanbe ~]$ java -version java version "15.0.1" 2020-10-20 Java(TM) SE Runtime Environment (build 15.0.1+9-18) Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing) [oracle@dushanbe ~]$
Результат команды показывает, что на этой операционной системе установлена и настроена 15-я версия JDK. В этом посте можно ознакомиться со способом проверки текущей версии JDK, а также при необходимости установить, обновить, настроить и использовать новую версию по умолчанию (см. раздел «Установка JDK»).
Есть вероятность, что при использовании старой версии JDK (например, 8 версия) запуск установки ORDS выдаст следующую ошибку:
Enter the location to store configuration data: /home/oracle/ords/config Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at oracle.dbtools.jarcl.Entrypoint.invoke(Entrypoint.java:66) at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:77) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3236) at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253) at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:211) at java.util.zip.ZipOutputStream.write(ZipOutputStream.java:331) at java.nio.channels.Channels$WritableByteChannelImpl.write(Channels.java:458) at oracle.dbtools.util.StreamCopy.drain(StreamCopy.java:44) at oracle.dbtools.util.StreamCopy.drain(StreamCopy.java:31) at oracle.dbtools.zip.ZipBuilder._addEntry(ZipBuilder.java:55) at oracle.dbtools.zip.ZipBuilder.addEntry(ZipBuilder.java:63) at oracle.dbtools.common.zip.ZipBuilder.addEntry(ZipBuilder.java:24) at oracle.dbtools.common.zip.MutatedZip.mutate(MutatedZip.java:68) at oracle.dbtools.common.zip.MutatedZip.(MutatedZip.java:34) at oracle.dbtools.cmdline.ModifyConfigDir.modified(ModifyConfigDir.java:145) at oracle.dbtools.cmdline.ModifyConfigDir.modify(ModifyConfigDir.java:117) at oracle.dbtools.cmdline.Commands.configurationContext(Commands.java:568) at oracle.dbtools.cmdline.Commands.prepareApplicationContext(Commands.java:447) at oracle.dbtools.cmdline.Commands.main(Commands.java:407) … 6 more
Есть два варианта установки ORDS:
- Автономный (standalone) режим.
- На сервере приложений (Oracle WebLogic Server, Apache Tomcat).
Далее описывается установка ORDS в standalone режиме.
Для начала установки и настройки ORDS необходимо запустить следующую команду: java -jar ords.war install advanced
После запуска команды система потребует предоставить данные для множества параметров. Ниже приведены некоторые параметры и их значения во время установки. Остальные параметры оставлены по умолчанию или не требуют дополнительного описания.
– Enter the location to store configuration data: указывается директория настроек ORDS. Можно указать любую директорию. В данном примере указана следующая директория: /home/oracle/ords/config
– Enter the administrator username: Необходимо указать логин и пароль учетной записи базы данных с правами sysdba.
[oracle@dushanbe ords]$ java -jar ords.war install advanced This Oracle REST Data Services instance has not yet been configured. Please complete the following prompts Enter the location to store configuration data: /home/oracle/ords/config Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL [1]: Enter the name of the database server [localhost]:dushanbe Enter the database listen port [1521]: Enter 1 to specify the database service name, or 2 to specify the database SID [1]: Enter the database service name:XEPDB1 Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]: Enter the database password for ORDS_PUBLIC_USER: Confirm password: Requires to login with administrator privileges to verify Oracle REST Data Services schema. Enter the administrator username:sys Enter the database password for SYS AS SYSDBA: Confirm password: Connecting to database user: SYS AS SYSDBA url: jdbc:oracle:thin:@//dushanbe:1521/XEPDB1 Retrieving information. Enter the default tablespace for ORDS_METADATA [SYSAUX]: Enter the temporary tablespace for ORDS_METADATA [TEMP]: Enter the default tablespace for ORDS_PUBLIC_USER [USERS]: Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP]: Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step. If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]: Enter the PL/SQL Gateway database user name [APEX_PUBLIC_USER]: Enter the database password for APEX_PUBLIC_USER: Confirm password: Enter 1 to specify passwords for Application Express RESTful Services database users (APEX_LISTENER, APEX_REST_PUBLIC_USER) or 2 to skip this step [1]: Enter the database password for APEX_LISTENER: Confirm password: Enter the database password for APEX_REST_PUBLIC_USER: Confirm password: Enter a number to select a feature to enable: [1] SQL Developer Web (Enables all features) [2] REST Enabled SQL [3] Database API [4] REST Enabled SQL and Database API [5] None Choose [1]: 2021-01-07T18:32:25.400Z INFO reloaded pools: [] Installing Oracle REST Data Services version 20.3.0.r3011819 … Log file written to /home/oracle/ords_install_core_2021-01-07_233226_00133.log … Verified database prerequisites … Created Oracle REST Data Services proxy user … Created Oracle REST Data Services schema … Granted privileges to Oracle REST Data Services … Created Oracle REST Data Services database objects … Log file written to /home/oracle/ords_install_datamodel_2021-01-07_233302_00744.log … Log file written to /home/oracle/ords_install_apex_2021-01-07_233311_00188.log Completed installation for Oracle REST Data Services version 20.3.0.r3011819. Elapsed time: 00:00:52.120 Enter 1 if you wish to start in standalone mode or 2 to exit [1]:1 Enter the APEX static resources location:/home/oracle/ords/images Enter 1 if using HTTP or 2 if using HTTPS [1]: Enter the HTTP port [8080]: 2021-01-07T18:43:03.267Z INFO HTTP and HTTP/2 cleartext listening on host: localhost port: 8080 2021-01-07T18:43:03.311Z INFO Disabling document root because the specified folder does not exist: /home/oracle/ords/params/ords/standalone/doc_root 2021-01-07T18:43:06.167Z INFO Configuration properties for: |apex|| cache.caching=false cache.directory=/tmp/apex/cache cache.duration=days cache.expiration=7 cache.maxEntries=500 cache.monitorInterval=60 cache.procedureNameList= cache.type=lru database.api.enabled=true db.connectionType=basic db.hostname=dushanbe db.port=1539 db.servicename=XEPDB1 debug.debugger=false debug.printDebugToScreen=false error.keepErrorMessages=true error.maxEntries=50 feature.sdw=true jdbc.DriverType=thin jdbc.InactivityTimeout=1800 jdbc.InitialLimit=3 jdbc.MaxConnectionReuseCount=1000 jdbc.MaxLimit=10 jdbc.MaxStatementsLimit=10 jdbc.MinLimit=1 jdbc.statementTimeout=900 log.logging=false log.maxEntries=50 misc.compress= misc.defaultPage=apex restEnabledSql.active=true security.disableDefaultExclusionList=false security.maxEntries=2000 security.requestValidationFunction=wwv_flow_epg_include_modules.authorize security.validationFunctionType=plsql db.password= db.username=APEX_PUBLIC_USER resource.templates.enabled=true
На этом завершается установка и настройка APEX с ORDS. Можно подключиться к Oracle APEX 20.2 по следующему адресу: http://localhost:8080/ords
Вместо localhost можно указать адрес 127.0.0.1 или IP адрес хоста. В примере используется IP адрес хоста равный 192.168.0.1. Запускается веб-браузер и выполняется переход к следующему адресу:
http://192.168.0.1:8080/ords
Для информации: по умолчанию, для того чтобы получить доступ к корню APEX через сервисы ORDS необходимо перейти по пути /ords. Если есть необходимость использовать путь /apex для доступа к APEX, то потребуется переименовать файл ords.war в apex.war перед началом установки и настройки ORDS.
После завершения установки автоматически создается рабочее пространство (workspace) для выполнения административных задач в APEX. Название workspace – INTERNAL. Выполняется подключение к административному workspace под пользователем ADMIN и его паролем (данный пользователь и его пароль были созданы при запуске скрипта apxchpwd.sql (см. выше)).
После успешного входа система запросит создать новое рабочее пространство для разработки приложений:
Далее задается название, идентификатор и описание рабочего пространства. В примере ниже задается имя рабочего пространства «Dushanbe» и краткое описание. По умолчанию система сама генерирует идентификатор рабочего пространства.
На этапе 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 получить доступ к своему рабочему пространству (INTERNAL) и начать работу:
Выполняется выход пользователя ADMIN из административного рабочего пространства (workspace) INTERNAL. Для этого в правом верхнем углу нажимается на имя пользователя и нажимается на Sign Out.
Нажимается на Return to Sign in Page и на новой странице указываются данные для подключения к новому рабочему пространству (workspace) Dushanbe:
При первом входе администратору нового рабочего пространства (workspace) необходимо самостоятельно сменить пароль:
После успешной смены пароля администратор workspace Dushanbe получает доступ к среде:
Рабочее пространство Dushanbe готово для начала разработки веб-приложений.
Необходимо учитывать, что после перезагрузки операционной системы сервис будет недоступен. Для запуска ORDS необходимо вручную запустить следующую команду java -jar ords.war standalone из директории ords (в данном примере из /home/oracle/ords):
[oracle@dushanbe ords]$ pwd /home/oracle/ords [oracle@dushanbe ords]$ java -jar ords.war standalone
Если закрыть консоль операционной системы, то сервис ords выполнявшийся в ней завершится. Во избежание этого необходимо команду java -jar ords.war standalone запустить в фоновом режиме, используя nohup:
[oracle@dushanbe ords]$ nohup java -jar ords.war standalone &
При необходимости можно написать скрипт на уровне операционной системы, который будет запускать последнюю команду из нужной директории, и записывать детальную информацию о запуске в определенный лог файл для последующего анализа в будущем.
Oracle APEX has now reached version 20.2. It is a great tool low code tool to create web applications swiftly. Setup Oracle APEX and ORDS on Windows 10 is easy and it can be up and running within 40 minutes, more or less.
Being able to setup Oracle APEX 20.2 on your Windows 10 machine is good as it enables you to develop your web applications locally before copying it to the server. It makes a good staging ground as well to test updates before applying it on your production server later on.
But before installing Oracle APEX we need to have an Oracle database installed first. I am going to use the free Oracle Express Edition (Oracle XE) version 18c. Head over to Oracle’s product page and download your copy of Oracle XE 18c if you haven’t got one yet. You will need to have an Oracle account to download which is free to register as well.
Setup Oracle APEX and ORDS on Windows 10: Database installation
First and foremost we need to install the Oracle XE database. Installation is very straightforward. Launch the installer and follow the prompts.
Enter the password for the Oracle XE 18c database instance, the password will be used to login with the SYS, SYSTEM and PDBADMIN accounts. Do jot down or make the password memorable as it is needed during Oracle 20.2 installation on the database.
Continue with the setup and wait until it finishes. It took me around 15 minutes for the installation to finish.
Once the installation has finished, take a screenshot of the window below and save it. You might need it later as a reference to manage your Oracle XE 18c database.
Setup Oracle APEX and ORDS on Windows 10: Oracle Apex 20.2 installation
The next step is to install Oracle APEX. I’ve chosen the latest version which is 20.2 which has been updated with more features and improvements. Head over to their blog to know more about the Oracle APEX 20.2 updates.
To continue with the setup, download a copy of Oracle APEX 20.2.
There are two versions of Oracle APEX 20.2 which supports multiple languages or English only. You can setup using either versions, the steps are the same but I will be using the version which supports multiple languages to cater to the user’s needs in my organization.
Unzip Oracle APEX and copy it to the C:\temp folder. After that launch Windows PowerShell and navigate to the directory where you placed your Oracle APEX installation folder. In my case, it would be the C:\temp\apex folder.
Command used:
1. cd C:\temp\apex
Login into your database. The password used is the one you set when installing the Oracle XE 18c database. You can use the image below as reference.
Commands used:
1. sqlplus
2. sys as sysdba
3. show pdbs
4. ALTER SESSION SET CONTAINER = XEPDB1;
You can install Oracle APEX with the provided container or you can create a new container. Oracle XE allows up to 3 pluggable databases. In this guide, I am going to use the default XEPDB1 pluggable container.
The next step to setup Oracle APEX and ORDS on Windows 10 is to run the apexins.sql script.
Command used:
1. @apexins.sql SYSAUX SYSAUX TEMP /i/
It takes around 15 minutes for the Oracle APEX 20.2 installation to finish and you’ll see the status as below. Just enough time to brew a cup of good coffee and enjoy those precious sips.
Don’t forget to make a copy of the results, you might want to refer it later on.
Next on our to do list of setup Oracle APEX and ORDS on Windows 10 is to create the administrator account. To achieve this, use the apxchpwd.sql script as below.
Command used:
1. @apxchpwd.sql
Enter your preferred administrator username, e-mail address and password that you want to use to log into our fresh Oracle APEX instance later on.
The next step in setup Oracle APEX and ORDS on Windows 10 is to enable the REST services. Run the apex_rest_config.sql script and you will need to provide passwords for the APEX_LISTENER and APEX_REST_PUBLIC_USER.
Command used:
1. @apex_rest_config.sql
Then unlock the APEX_LISTENER, APEX_PUBLIC_USER and APEX_REST_PUBLIC_USER accounts and update their passwords with your preferred ones:
Commands used:
1. ALTER USER APEX_LISTENER IDENTIFIED BY **Password** ACCOUNT UNLOCK;
2. ALTER USER APEX_PUBLIC_USER IDENTIFIED BY **Password** ACCOUNT UNLOCK;
3. ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY **Password** ACCOUNT UNLOCK;
Setup Oracle APEX and ORDS on Windows 10: Hosting ORDS on Apache Tomcat 9
So now, lets move on to set Oracle REST Database Services (ORDS). We are going to install ORDS on Apache Tomcat 9. Oracles recommends using ORDS as the web listener and it allows the creation of web services in Oracle APEX.
Previously installations of Oracle APEX permits the use PL/SQL gateway, but going forwards, ORDS is the number one choice.
Download ORDS and download Apache Tomcat 9 first if you have not done it yet.
As a prerequisite to this step please download and install Java 8 or later JRE in your Windows 10 machine. JRE is needed to run Java based programs.
During the Apache Tomcat 9 pre-installation, at the configuration options window you can set which HTTP 1.1 connector port you’d want to use. If you have other applications running on port 8080, you can use port 8181 for example. I will be using the default port 8080. Please set the Tomcat Administrator Login credentials as well so that you’ll be able to manage it later on.
To check whether your Tomcat 9 runs as intended, launch up your web browser and type in the address below and it will load the Tomcat management page.
http://localhost:8080/
*Replace port:8080 with your chosen port if it differs from mine.
Unzip ORDS and copy it to the C:\temp folder. Create a new folder inside the ORDS folder and name it as ‘config‘. This folder is used to hold the ORDS configurations.
FYI, the ORDS version that I am using is: 20.2.1.227.0350.
Launch another PowerShell window and navigate to the directory where ORDS is located. In my case, that would be C:\temp\ords.
Run the command as in number 2 below to start configuring ORDS. It will then inquire for information which you can refer with my configurations below, submitted info for the prompts are in bold and italic.
Commands used:
1. cd C:\temp\ords
2. java -jar ords.war
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:\WINDOWS\system32> cd C:\temp\ords
PS C:\temp\ords> java -jar ords.war
This Oracle REST Data Services instance has not yet been configured.
Please complete the following prompts
Enter the location to store configuration data: C:\temp\ords\config
Enter the name of the database server [localhost]: Press 'Enter'
Enter the database listen port [1521]: Press 'Enter'
Enter 1 to specify the database service name, or 2 to specify the database SID [1]: Press 'Enter'
Enter the database service name:XEPDB1
Enter the database password for ORDS_PUBLIC_USER:
Confirm password: Enter your preferred password
Requires to login with administrator privileges to verify Oracle REST Data Services schema.
Enter the administrator username:sys as sysdba
Enter the database password for sys as sysdba: Enter password set for Oracle XE
Confirm password: Enter password set for Oracle XE
Connecting to database user: sys as sysdba url: jdbc:oracle:thin:@//localhost:1521/XEPDB1
Retrieving information.
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]: Press 'Enter'
Enter the database password for APEX_PUBLIC_USER: Enter password set for APEX_PUBLIC_USER during Oracle APEX 20.2 installation
Confirm password: Enter password set for APEX_PUBLIC_USER during Oracle APEX 20.2 installation
Enter 1 to specify passwords for Application Express RESTful Services database users (APEX_LISTENER, APEX_REST_PUBLIC_USER) or 2 to skip this step [1]: Press 'Enter'
Enter the database password for APEX_LISTENER: Enter password set for APEX_LISTENER during Oracle APEX 20.2 installation
Confirm password: Enter password set for APEX_LISTENER during Oracle APEX 20.2 installation
Enter the database password for APEX_REST_PUBLIC_USER: Enter password set for APEX_REST_PUBLIC_USER during Oracle APEX 20.2 installation
Confirm password: Enter password set for APEX_REST_PUBLIC_USER during Oracle APEX 20.2 installation
Enter a number to select a feature to enable:
[1] SQL Developer Web (Enables all features)
[2] REST Enabled SQL
[3] Database API
[4] REST Enabled SQL and Database API
[5] None
Choose [1]: 1
2021-02-19T05:35:19.047Z INFO reloaded pools: []
Installing Oracle REST Data Services version 20.2.1.r2270350
... Log file written to C:\Users\Tech201\ords_install_core_2021-02-19_133519_00284.log
... Verified database prerequisites
... Created Oracle REST Data Services proxy user
... Created Oracle REST Data Services schema
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Log file written to C:\Users\Tech201\ords_install_datamodel_2021-02-19_133540_00347.log
... Log file written to C:\Users\Tech201\ords_install_apex_2021-02-19_133541_00983.log
Completed installation for Oracle REST Data Services version 20.2.1.r2270350. Elapsed time: 00:00:24.655
Enter 1 if you wish to start in standalone mode or 2 to exit [1]: 2
PS C:\temp\ords>
The following step in this guide’s to setup Oracle APEX and ORDS on Windows 10 is to copy the ords.war file located at C:\temp\ords to the Apache Tomcat webapps folder which during my Tomcat installation is set to the following path, C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps.
If you look carefully, it will then generate an ords folder a few seconds later after you have copied over the ords.war file to that location.
Next, create a new folder and rename it as ‘i‘ at C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps. Then copy over all the files and folders from C:\temp\apex\images to the ‘i‘ folder.
Last but not least, you can either go the Windows 10 system tray, locate the Tomcat 9 icon and stop and then start again the service or go to Windows 10 start and then type services.msc, locate the Apache Tomcat 9.0 service name and then restart it.
Now for the moment of truth, if all the configurations are correct you should now be able to load Oracle APEX in your browser by typing the below address:
http://localhost:8080/ords/
*Replace port:8080 with your chosen port if it differs from mine.
Enter the credentials that you set when you ran the apxchpwd.sql script to login into your Oracle APEX instance. For the Workspace field type in INTERNAL.
You are now ready to create your own distributed Workspaces and web applications.
Conclusion about how to setup Oracle APEX and ORDS on Windows 10
Setup Oracle APEX and ORDS on Windows 10 enables administrators to build web applications swiftly. It can as well be used as a staging ground prior to pushing updates to production servers. This is very useful to avoid disruptions on currently running web apps.
Setup requires a little bit of technical knowledge but it is possible for the layman who are interested in Oracle APEX to install on their Windows 10 powered computers.
If you are using a machine that is attached to a domain, you may need to run Microsoft PowerShell and install the related programs with administrator priviledge.
Furthermore, to makes things easier, I only used two passwords during the installation. One is for the Oracle XE and the other for everything else that was prompted.
One last tip, if you restart your Windows 10 machine and Oracle Apex does not load, launch ‘services.msc‘ and restart the ‘Apache Tomcat 9.0‘ service.
To recap the steps in the guide to setup Oracle APEX and ORDS on Windows 10:
Recap steps:
1. Install Oracle XE 18c database.
2. Install Oracle APEX 20.2.
3. Install Apache Tomcat 9.
4. Configure ORDS.
5. Test installation by loading up Oracle APEX 20.2 in your preferred browser.
Good luck!
Read more: How to easily install Ubuntu Focal Fossa LTS on Oracle Cloud Infrastructure
Here are the step by step instructions to install Oracle Apex 19.1 on Windows and Unix/Linux systems. You need to perform eleven easy steps to install it. The following are the version details of OS, Oracle Database and Oracle Application Express used in this demonstration:
- OS Windows 10
- Oracle Database 11g
- Oracle Apex 19.1.0.00.15
Installing Oracle Apex 19.1
1. Download Oracle Apex from the following link:
Download Oracle Apex 19.1
2. After downloading, you will get a zip file named something like «apex_19.1_en.zip«. Copy the file from the default download folder and paste it to the folder in which you want to install Oracle Apex 19.1, for example, I moved this file to F:\software\apex19, and after extracting the file, I got the «apex» directory here. Now the complete path of my Oracle Apex installation is F:\software\apex19\apex. On Unix/Linux your directory path could be like /home/usr1/apex19/apex for example.
3. Open the command prompt (CMD) on Windows or Terminal on Unix/Linux and changed the directory to the F:\software\apex19\apex as follows:
On Windows:
cd F:\software\apex19\apex
On Unix/Linux:
cd /home/usr1/apex19/apex
4. Now you need to run all the Oracle Apex 19.1 installation scripts from this (F:\software\apex19\apex) location. Start the SQL*PLUS with SYS user credentials to connect to the Oracle Database as shown in the following example:
sqlplus sys/syspsw@orcl as sysdba
Now run the first script as following, note you can change the tablespace names according to your database.
@apexins.sql SYSAUX SYSAUX TEMP /i/
5. After completing the above script, run the following script for the Oracle Apex run time environment settings. But first, you need to connect to Oracle Database again because after running the above script it will disconnect you from Oracle database.
sqlplus sys/syspsw@orcl as sysdba
@apxrtins.sql SYSAUX SYSAUX TEMP /i/
6. Now run the change password script for the ADMIN user as following and the password must follow the complexity rules, for example, I provided the password as Apex#2019.
sqlplus sys/syspsw@orcl as sysdba
@apxchpwd.sql
7. Now run the script to copy the Oracle Apex 19.1 images to the apex/images folder. Run the script as follows:
sqlplus sys/syspsw@orcl as sysdba
@apex_epg_config.sql F:\software\apex19\
Note: As I copied the Oracle Apex zip file to the F:\software\apex19 folder, so I am specifying the same directory here for «apex_epg_config.sql» script. Do not include the apex folder in this path.
8. Unlock the APEX_PUBLIC_USER account and specify the password. Don’t forget to connect to Oracle using SQL*PLUS if disconnected.
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK; ALTER USER APEX_PUBLIC_USER IDENTIFIED BY vinish;
9. Configure Apex RESTful Services as follows:
Connect to Oracle using SQL*PLUS if disconnected.
sqlplus sys/syspsw@orcl as sysdba
@apex_rest_config.sql
10. Set the HTTP port if using HTTP server as follows:
Connect to Oracle using SQL*PLUS if disconnected.
sqlplus sys/syspsw@orcl as sysdba
EXEC DBMS_XDB.SETHTTPPORT(8181);
11. Configure the network ACL for Oracle Apex 19.1 as follows:
For Oracle Database versions 10g/11g, run the below script:
DECLARE ACL_PATH VARCHAR2(4000); BEGIN -- Look for the ACL currently assigned to '*' and give APEX_190100 -- the "connect" privilege if APEX_190100 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_190100', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_190100', 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_190100', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; / COMMIT;
DECLARE ACL_PATH VARCHAR2(4000); BEGIN -- Look for the ACL currently assigned to 'localhost' and give APEX_190100 -- the "connect" privilege if APEX_190100 does not have the privilege yet. SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_190100', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_190100', TRUE, 'connect'); END IF; EXCEPTION -- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets users to connect to localhost', 'APEX_190100', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; / COMMIT;
For Oracle Database version 12c, run the below script:
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'APEX_190100', principal_type => xs_acl.ptype_db)); END; / BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'localhost', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'APEX_190100', principal_type => xs_acl.ptype_db)); END; /
Now the installation of Oracle Apex 19.1 has been completed, and you test the installation by entering the following URL in the browser:
http://localhost:8181/apex/apex_admin
See also:
- Install Oracle Apex (Application Express) On Oracle 12c Pluggable Database
Время на прочтение
6 мин
Количество просмотров 27K
Здравствуйте, друзья и коллеги. Однажды в компании возникла необходимость в создании веб-интерфейса для небольшой базы данных. Уже тогда было понимание того, что в будущем понадобится интеграция с LDAP, возможность гибко управлять правами доступа пользователей на просмотр определенных страниц, удобный конструктор для создания страниц, инструменты бизнес-аналитики. Тогда-то я и познакомился с Oracle Application Express (ApEx). Это мощнейшее средство входит в состав таких продуктов, как Oracle Database 11g, 12c, которые, в зависимости от используемой редакции, могут стоить немало. Как это часто бывает, желания превышали возможности…
Для таких случаев у Oracle есть бесплатная версия СУБД Oracle Database Express Edition (коротко XE). На нее накладываются следующие ограничения:
- на один сервер можно установить только 1 инстанс;
- может быть установлена на многопроцессорный сервер, но использоваться будет только 1 CPU;
- для СУБД доступно максимум 1Gb RAM;
- размер пользовательских данных ограничен 11Gb (в некоторых документах всё ещё встречается ограничение в 4Gb, но это уже устаревшая информация);
- HTTPS не поддерживается встроенным веб-сервером, для этого приходится использовать Apache/Nginx.
Нас эти ограничения вполне устраивали. Для сервера мы взяли VPS в Digital Ocean с 2Gb RAM, установили Centos 7.2. В следующей главе будет описана установка Oracle XE, а затем — обновление встроенного Application Express v.4 до последней актуальной версии (на момент написания статьи — 5.0.4).
Установка Oracle 11g XE
Установим необходимые пакеты, добавим swap в виде файла и внесём изменения в /etc/fstab:
yum update -y && yum install screen vim bash-completion wget telnet mailx unzip epel-release -y && yum install bc libaio flex -y
dd if=/dev/zero of=/var/swapfile bs=1M count=2048 && chmod 0600 /var/swapfile && mkswap /var/swapfile
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab && swapon -a && swapon -s
Следующий шаг — опциональный. Можно сконвертировать Centos в Oracle Linux, затем скачать пакет, меняющий настроки ядра в соответствии с рекомендациями Oracle, подробности можно прочитать тут.
curl -O https://linux.oracle.com/switch/centos2ol.sh && sh centos2ol.sh && yum distro-sync -y && yum install oracle-rdbms-server-11gR2-preinstall.x86_64 -y
Для загрузки дистрибутива Oracle XE (доступны версии под Windows и Linux) понадобится регистрация на сайте вендора, она бесплатна и ни к чему не обязывает. Скачаем zip-архив, распакуем его и установим:
wget [[вставьте сюда ссылку для загрузки]]
mv oracle-xe-11* oracle-xe-11.x86_64.rpm.zip
mkdir oracle-xe && mv oracle-xe-* oracle-xe/ && cd oracle-xe/
unzip oracle-xe-* && cd Disk1/
rpm -ivh oracle-xe-*
После установки RPM-пакета необходимо запустить oracle-xe с параметром configure — в этом случае запустится мастер завершения настройки, в интерактивном режиме задающий вопросы. Также доступна установка с использованием файла ответов, в который мы внесем порты по умолчанию и пароль учетной записи SYS:
echo "ORACLE_HTTP_PORT=8080" > /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_LISTENER_PORT=1521" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_PASSWORD=[[вставьте сюда пароль]]" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_CONFIRM_PASSWORD=[[повторите пароль]]" >> /root/oracle-xe/Disk1/response/xe.rsp
echo "ORACLE_DBENABLE=y" >> /root/oracle-xe/Disk1/response/xe.rsp
/etc/init.d/oracle-xe configure responseFile=/root/oracle-xe/Disk1/response/xe.rsp
После установки с использованием файла ответов, не забудьте сохранить пароль в надежном месте и удалить его из файла xe.rsp.
Установка Application Express
Необходимо загрузить на сервер дистрибутив, который также доступен после регистрации на сайте. Скачивание и распаковка:
cd ~
wget -O apex_5.zip [[вставьте сюда ссылку для загрузки]]
mkdir apex5 && mv apex_5.zip apex5/ && cd apex5/ && unzip apex_5.zip
В файле oracle_env.sh содержатся переменные окружения, необходимые для работы клиента SQL*Plus, добавим инициализацию этого файла в параметры bash и применим к текущему окружению:
echo ". /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh" >> /etc/bashrc
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
Приступим к обновлению. Подготовьте пароль, который использовался в файле ответов и введите его — это необходимо для подключения к базе под учетной записью SYS:
cd apex/ && sqlplus sys as sysdba
Из консоли SQL*Plus необходимо запустить следующие скрипты:
@apexins SYSAUX SYSAUX TEMP /i/
@apxldimg /root/apex5
@apxchpwd [[enter]]
Enter the administrator's username [ADMIN] [[enter]]
User "ADMIN" exists.
Enter ADMIN's email [ADMIN] [[enter]]
Enter ADMIN's password [] [[сюда нужно вставить другой длинный пароль]]
Changed password of instance administrator ADMIN.
Последний скрипт @apxchpwd меняет пароль учетной записи admin для Application Express. Следующий шаг в какой-то мере небезопасен, используйте его только когда это действительно необходимо: этой командой разрешаются удаленные подключения к Listener (с использованием SQL-клиентов или различного другого софта), использующего по умолчанию порт 1521:
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
Рекомендую ограничить подключения к этому порту соответствующим правилом iptables.
При подключении к Listener через интернет, к примеру, с использованием SQL Developer, логины/пароли/запросы передаются в открытом виде. Чтобы этого избежать, необходимо использование SSH-туннеля либо VPN.
Из консоли SQL*Plus изменим другие важные параметры: максимальное число сессий, процессов, т.к. эти параметры не динамические, понадобится рестарт базы. Также перейдем от режима Onlinelog к режиму Archivelog и увеличим лимит дискового пространства, доступного для бэкапов.
alter system set sessions=250 scope=spfile;
alter system set processes=200 scope=spfile;
shutdown normal
startup mount
alter database archivelog;
alter database open;
Резервное копирование
Бэкапы мы кладём на отдельный том. Для этого воспользуемся услугой Volumes хостинга Digital Ocean и после подключения нового раздела к VPS, выполним следующие команды:
mkfs.ext4 -F /dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume
mkdir -p /opt/oracle-backups
echo "/dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume /opt/oracle-backups ext4 defaults,nofail,discard 0 0" | tee -a /etc/fstab
mount -a
chown oracle:dba /opt/oracle-backups
Эти команды создают файловую систему, папку для монтирования диска, прописывают параметры автомонтирования при загрузке в файл /etc/fstab и меняют владельцев папки для бэкапов. Запускаем консоль SQL*Plus и меняем параметры резервного копирования:
sqlplus sys as sysdba
alter system set DB_RECOVERY_FILE_DEST_SIZE = 20G;
alter system set DB_RECOVERY_FILE_DEST = '/opt/oracle-backups';
Для начала мы воспользуемся предустановленным скриптом, осуществляющим резервное копирование с окном восстановления в 2 дня. Первый запуск мы осуществим из консоли, но в дальнейшем будет необходимо добавить этот скрипт в cron пользователя oracle:
su - oracle
bash /u01/app/oracle/product/11.2.0/xe/config/scripts/backup.sh
После всех изменений нужно будет перезагрузить сервер. Для запуска сервиса oracle-xe вручную и включения в автозагрузку пригодятся следующие команды:
systemctl start oracle-xe.service
systemctl enable oracle-xe.service
Настройка веб-сервера
Для того, чтобы весь трафик шифровался, я решил использовать Nginx.
Его установка предельно проста:
wget http://nginx.org/keys/nginx_signing.key
rpm --import nginx_signing.key
yum -y install nginx
Затем необходимо скопировать на сервер SSL-сертификаты и внести изменения в конфигурационный файл веб-сервера, либо создать новый с расширением .conf в папке /etc/nginx/conf.d/. Туда необходимо добавить следующие строки, изменив пути к сертификатам и указав соответствующее доменное имя:
конфиг для nginx
server {
listen 80;
server_name example.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name example.com;
resolver 8.8.8.8;
ssl_stapling on;
ssl on;
ssl_certificate /etc/nginx/keys/cert.crt;
ssl_certificate_key /etc/nginx/keys/cert.key;
ssl_dhparam /etc/pki/nginx/dhparam.pem;
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
location / {
rewrite ^ "/app/f?p=101" permanent;
}
location /app {
proxy_pass http://127.0.0.1:8080/apex;
include /etc/nginx/reverse_proxy.conf;
}
location /i/ {
proxy_pass http://127.0.0.1:8080/i/;
include /etc/nginx/reverse_proxy.conf;
}
}
содержимое файла /etc/nginx/reverse_proxy.conf:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 1000m;
client_body_buffer_size 128k;
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
Пояснения: при переходе по адресу http://example.com/ будет происходить редирект на http://example.com/app/f?p=101, этот адрес будет обработан директивой proxy_pass, которая перенаправит трафик на http://127.0.0.1:8080/apex с указанием соответствующего номера веб-приложения, в данном случае 101.
Не забудьте проверить конфигурацию, затем запустить веб-сервер и включить его в автозагрузку:
nginx -t
systemctl start nginx
systemctl enable nginx
На этом установка Oracle Application Express закончена. В следующей статье мы установим тестовое веб-приложение, а затем сделаем что-нибудь по-настоящему полезное.
Update. В связи с пожеланиями, в статью добавлено описание фронтенда, который обеспечивает TLS-шифрование.
Буду искренне рад Вашим комментариям, замечаниям, вопросам.
In this blog we are going to explore the Apex 20.1 Installation on Oracle 12 Pluggable Database | Windows 10 Machine using ORDS (Web listener).
Oracle REST Data Services (ORDS) – Java EE based RESTful service.
Installation Requirement : Database Requirement/SGA PGA Memory/Web Listener/etc. Please refer Oracle Doc Link
In this blog we are going to install ā’pěks using Oracle 12c Database Pluggable along with ORDS as web listener.
Apex Installation Steps:
Download Apex 20.1 & Unzip: Oracle Download Link
Select your installation type. Full Development or Runtime. Based on the installation type: Start the installation. In this blog we are going to setup full development environment. Installation Guide Oracle Link
Step 1. Open command prompt “Run as administrator” . Change directory where all apex scripts are present in the unzipped location of apex (~\apex_20.1_en\apex). Login database where you want to install. Login using sys as sysdba
Execute this script after providing table space names and image path :
@apexins.sql <tablespace_apex> <tablespace_files> <tablespace_temp> images
Step 2. Execute this script, which enables you to create your Instance Administrator account. You have to provide administrator name, email & strong password with punctuation.
@apxchpwd.sql
Step 3. Setting up APEX_PUBLIC_USER
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY <PASSWORD>;
Step 4. Configure RESTfull Services. Here we need to provide password for users : APEX_LISTENER & APEX_REST_PUBLIC_USER
@apex_rest_config.sql
Here Apex Installation is done. Just check schema created by the apex installation. Next step is to setup web listener.
- select * from all_users where username like ‘%APEX%’ ;
- select * from all_users where username like ‘%FLOWS%’ ;
Refer this video for Apex Installation :
ORDS Installation:
Oracle REST Data Services (ORDS) – Java EE based RESTful service which is used to replace Oracle HTTP server and mod_plsql. Download ORDS: Link
In this blog we are going to setup the ORDS using Tomcat. You have other options also like standalone & weblogic. Please refer Installation Guide: Link
Apache Tomcat Download: https://tomcat.apache.org/download-90.cgi
Pretty much straight forward installation. After installation is completed see below steps to validate. Check services : win + r -> services.msc -> Check Apache Tomcat 9 Service. It should be running. Open browser & hit: http://localhost:8080/ . You will see Apache page i.e. Apache Tomcat is up & running.
ORDS Installation Steps
Step 1. Check these schema properly able to access or not. Remember the passwords. In next steps we will provide passwords of these users as parameter.
- APEX_PUBLIC_USER
- APEX_LISTENER
- APEX_REST_PUBLIC_USER
- SYS AS SYSDBA
Step 2. Unzip ords download folder some where like C:\ords\ords-19.2.0.199.1647. Created conf folder to hold ords configuration : C:\ords\conf
Go and edit : C:\ords\ords-19.2.0.199.1647\params\ords_params.properties. You have to provide all details of your database & passwords of apex users. See below sample my param file.
db.hostname=localhost db.port=1521 db.servicename=ORCLPDB db.username=APEX_PUBLIC_USER db.password=Welcome123 migrate.apex.rest=false plsql.gateway.add=true rest.services.apex.add=true rest.services.ords.add=true schema.tablespace.default=APEX schema.tablespace.temp=TEMP standalone.mode=false user.apex.listener.password=Welcome#123 user.apex.restpublic.password=Welcome#123 user.public.password=Welcome#123 user.tablespace.default=APEX user.tablespace.temp=TEMP sys.user=SYS sys.password=om restEnabledSql.active=true feature.sdw=true database.api.enabled=true
Step 3. Change directory where ords.war is present & run below command
java -jar ords.war configdir C:\ords\conf
Step 4. Install Ords using : java -jar ords.war
After installation validate ords using: java -jar ords.war validate
Step 5. This step is depends on the installation type as here we have used Tomcat Apache. So we have do the final steps. Refer installation guide for other installation type.
- Check the tomcat installation directory like : C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps
- Copy images from apex download folder (~\Downloads\apex_20.1_en\apex\images) to tomcat (~\webapps\i)
- Copy ords.war file from ords download folder (~\ords-19.2.0.199.1647\ords.war) to tomcat webapps (~\webapps).
- Check Apex. http://localhost:8080/ords
Refer this video for ORDS installation:
Create Workspace & Start working on low-code development of application.
Oracle Apex | Create Workspace & Developer Users
Thanks!
Happy Learning! Your feedback would be appreciated!
Follow @shobhitsinghIN