Oracle APEXの環境作成(0) - はじめに
VirtualBoxをインストールする
Oracle Linuxの仮想マシンを作成する
仮想マシンにLinuxをインストールする
最初に言語の選択があるので、キーボードのレイアウトはus、言語もEnglish(United States)を選択します。Oracle APEXのインストール後は仮想マシンにログインして作業することはほとんどありませんし、ここで日本語を選択すると、インストール中の画面の表示が崩れたり、日本語名のディレクトリが作成されたりと、あまり嬉しいことがありません。
インストールするオペレーティング・システムを構成します。
Time & Date、Root Password、Software Selection、Installation Destination、Network & Host Nameについて構成します。
Root Passwordを設定します。Root Passwordへのパスワードの入力と、それと同じ文字列をConfirmに入力します。
文字列として脆弱なパスワードの場合は、Doneを2回クリックして確定する必要があります。
Software SelectionとしてMinimal Installを選択します。Oracle Databaseのインストールに必要なRPMパッケージは、オラクルが提供している事前インストール用のRPMをインストールすると依存関係も考慮した上ですべてインストールされます。そのため、ここでは最小限の指定で十分です。
Installation Destinationを開きます。Storage ConfigurationがAutomaticであることを確認し、自動的に決まるディスク・レイアウトを採用します。
デフォルトの設定を使用します。確認のみで何も操作は行わずDoneをクリックします。
オペレーティング・システムのインストールに必要な事前設定が完了したので、Begin Installationをクリックしインストールを開始します。
オペレーティング・システムのインストールが開始します。
環境に依存するため参考程度ですが、私の環境では2分程度で完了しました。
Complete!のメッセージを確認し、Reboot Systemをクリックします。
再起動が完了するとloginのプロンプトが表示されます。これでオペレーティング・システムのインストールは完了です。
コンソールからログインして作業するのはほとんど不可能なので、ポート・フォワーディングの設定を行いSSH経由で仮想マシンにログインします。
VirtualBoxマネジャーより仮想マシンを選択し、ネットワークの設定を開きます。
ネットワークの設定のポートフォワーディングをクリックします。
開いたパネルより、ポート・フォワーディングのルールを追加します。プラスのアイコンをクリックすると一行追加されます。
名前はSSHとします。プロトコルはTCPです。ホスト・ポートはホスト(つまりWindowsやMac側)で利用可能なポート番号を指定します。通常22のような1024番以下のポートはシステムで予約されているため、それ以上の番号を割り当てることになります。今回は10022としました。ゲスト・ポートは、仮想マシン上でSSHが接続を待機しているポート番号です。サービスはSSHなので22を指定します。
追加したらOKをクリックします。
ネットワークの構成が完了したので、OKをクリックします。
ポート・フォーワーディングの設定を行うと、ホスト・マシンから指定したゲスト・ポートを指定してSSHで接続できるようになります。-pオプションで接続するポート番号として10022を指定します。
ユーザーrootで接続します。
ssh -p 10022 root@localhost
% ssh -p 10022 root@localhost
The authenticity of host '[localhost]:10022 ([127.0.0.1]:10022)' can't be established.
ED25519 key fingerprint is SHA256:QdVnTLGw/OVAOLJCU5dLW/5T7Yl0OykRIbOgWWREA/s.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:10022' (ED25519) to the list of known hosts.
root@localhost's password: ***********
[root@vbox ~]#
接続先(この場合localhost:10022)にフィンガープリントが登録済みの場合、以下のように警告が表示されます。SSHで接続できるようにするには、~/.ssh/known_hostsより登録済みのフィンガープリントの行を削除する必要があります。
削除が必要な行は、警告メッセージに含まれています。以下の例では、knows_hostsの248行目が削除の対象です。
% ssh -p 10022 root@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:QdVnTLGw/OVAOLJCU5dLW/5T7Yl0OykRIbOgWWREA/s.
Please contact your system administrator.
Add correct host key in /Users/********/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/********/.ssh/known_hosts:248
Host key for [localhost]:10022 has changed and you have requested strict checking.
Host key verification failed.
%
オペレーティング・システムを最新までアップデートします。
dnf -y update
[root@vbox ~]# dnf -y update
Failed to set locale, defaulting to C.UTF-8
Oracle Linux 8 BaseOS Latest (aarch64) 9.7 MB/s | 116 MB 00:11
Oracle Linux 8 Application Stream (aarch64) 8.3 MB/s | 56 MB 00:06
Latest Unbreakable Enterprise Kernel Release 7 7.3 MB/s | 45 MB 00:06
Last metadata expiration check: 0:00:05 ago on Tue Oct 15 18:07:45 2024.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Upgrading:
NetworkManager aarch64 1:1.40.16-15.0.1.el8_9 ol8_baseos_latest 2.1 M
NetworkManager-libnm aarch64 1:1.40.16-15.0.1.el8_9 ol8_baseos_latest 1.8 M
NetworkManager-team aarch64 1:1.40.16-15.0.1.el8_9 ol8_baseos_latest 158 k
NetworkManager-tui aarch64 1:1.40.16-15.0.1.el8_9 ol8_baseos_latest 342 k
audit aarch64 3.1.2-1.0.1.el8 ol8_baseos_latest 256 k
audit-libs aarch64 3.1.2-1.0.1.el8 ol8_baseos_latest 119 k
bubblewrap aarch64 0.4.0-2.el8_10 ol8_baseos_latest 48 k
c-ares aarch64 1.13.0-11.el8_10 ol8_baseos_latest 92 k
ca-certificates noarch 2024.2.69_v8.0.303-80.0.el8_10
ol8_baseos_latest 981 k
[中略]
sssd-client-2.9.4-4.0.1.el8_10.aarch64
sssd-common-2.9.4-4.0.1.el8_10.aarch64
sssd-kcm-2.9.4-4.0.1.el8_10.aarch64
sssd-nfs-idmap-2.9.4-4.0.1.el8_10.aarch64
systemd-239-82.0.2.el8_10.2.aarch64
systemd-libs-239-82.0.2.el8_10.2.aarch64
systemd-pam-239-82.0.2.el8_10.2.aarch64
systemd-udev-239-82.0.2.el8_10.2.aarch64
tuned-2.22.1-4.0.1.el8_10.1.noarch
xfsprogs-5.15.0-1.0.5.el8.aarch64
Installed:
kernel-uek-5.15.0-300.163.18.1.1.el8uek.aarch64
kernel-uek-core-5.15.0-300.163.18.1.1.el8uek.aarch64
kernel-uek-modules-5.15.0-300.163.18.1.1.el8uek.aarch64
Complete!
[root@vbox ~]#
カーネルが変更されている場合もあるので、オペレーティング・システムを再起動します。
shutdown -r now
[root@vbox ~]# shutdown -r now
Connection to localhost closed by remote host.
Connection to localhost closed.
%
以上で、Oracle Linuxのインストールは完了です。
Oracle Database 23ai Freeをインストールする
ssh -p 10022 root@localhost
% ssh -p 10022 root@localhost
root@localhost's password: ********
Last login: Tue Oct 15 18:01:22 2024 from 10.0.2.2
[root@vbox ~]#
Get Startedのページから事前構成パッケージのリンクをコピーし(ブラウザのリンクのアドレスのコピーを実行します)、直接RPMファイルをインストールします。
[root@vbox ~]# dnf -y install https://yum.oracle.com/repo/OracleLinux/OL8/appstream/aarch64/getPackage/oracle-database-preinstall-23ai-1.0-3.el8.aarch64.rpm
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:12:31 ago on Tue Oct 15 18:11:13 2024.
oracle-database-preinstall-23ai-1.0-3.el8.aarch 131 kB/s | 30 kB 00:00
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
oracle-database-preinstall-23ai
aarch64 1.0-3.el8 @commandline 30 k
Installing dependencies:
bc aarch64 1.07.1-5.el8 ol8_baseos_latest 127 k
bind-libs aarch64 32:9.11.36-16.el8_10.2 ol8_appstream 171 k
bind-libs-lite aarch64 32:9.11.36-16.el8_10.2 ol8_appstream 1.1 M
bind-license noarch 32:9.11.36-16.el8_10.2 ol8_appstream 104 k
bind-utils aarch64 32:9.11.36-16.el8_10.2 ol8_appstream 445 k
binutils aarch64 2.30-123.0.2.el8 ol8_baseos_latest 6.2 M
checkpolicy aarch64 2.9-1.el8 ol8_baseos_latest 331 k
compat-openssl10 aarch64 1:1.0.2o-4.el8_6 ol8_appstream 894 k
cpp aarch64 8.5.0-22.0.1.el8_10 ol8_appstream 9.0 M
dejavu-fonts-common noarch 2.35-7.el8 ol8_baseos_latest 74 k
dejavu-sans-fonts noarch 2.35-7.el8 ol8_baseos_latest 1.5 M
fontconfig aarch64 2.13.1-4.el8 ol8_baseos_latest 272 k
[中略]
policycoreutils-python-utils-2.9-26.0.1.el8_10.noarch
protobuf-c-1.3.0-8.el8.aarch64
python3-audit-3.1.2-1.0.1.el8.aarch64
python3-bind-32:9.11.36-16.el8_10.2.noarch
python3-libsemanage-2.9-9.el8_6.aarch64
python3-policycoreutils-2.9-26.0.1.el8_10.noarch
python3-pyyaml-3.12-12.el8.aarch64
python3-setools-4.3.0-5.el8.aarch64
quota-1:4.04-14.el8.aarch64
quota-nls-1:4.04-14.el8.noarch
rpcbind-1.2.5-10.el8.aarch64
smartmontools-1:7.1-3.el8.aarch64
sysstat-11.7.3-13.0.1.el8_10.aarch64
tar-2:1.30-9.el8.aarch64
unzip-6.0-46.0.1.el8.aarch64
xorg-x11-utils-7.5-28.el8.aarch64
xorg-x11-xauth-1:1.0.9-12.el8.aarch64
Complete!
[root@vbox ~]#
[root@vbox ~]# curl -OL https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 513 100 513 0 0 571 0 --:--:-- --:--:-- --:--:-- 1432
100 1178M 100 1178M 0 0 9740k 0 0:02:03 0:02:03 --:--:-- 9875k
[root@vbox ~]#
ダウンロードしたRPMをインストールします。
dnf -y install oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
[root@vbox ~]# curl -OL https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 513 100 513 0 0 571 0 --:--:-- --:--:-- --:--:-- 1432
100 1178M 100 1178M 0 0 9740k 0 0:02:03 0:02:03 --:--:-- 9875k
[root@vbox ~]# dnf -y install oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:21:23 ago on Tue Oct 15 18:11:13 2024.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
oracle-database-free-23ai aarch64 1.0-1 @commandline 1.2 G
Transaction Summary
================================================================================
Install 1 Package
Total size: 1.2 G
Installed size: 3.0 G
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: oracle-database-free-23ai-1.0-1.aarch64 1/1
Installing : oracle-database-free-23ai-1.0-1.aarch64 1/1
Running scriptlet: oracle-database-free-23ai-1.0-1.aarch64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23ai.conf' and then run '/etc/init.d/oracle-free-23ai configure' as root.
Verifying : oracle-database-free-23ai-1.0-1.aarch64 1/1
Installed:
oracle-database-free-23ai-1.0-1.aarch64
Complete!
[root@vbox ~]#
oracle-free-23ai configureを実行して、SYS、SYSTEMおよびPDBADMINのパスワードとなる文字列を2回入力します。
/etc/init.d/oracle-free-23ai configure
マルチテナント構成のデータベース・インスタンスが作成されます。SIDはFREE、作成されるPDBはFREEPDB1です。SIDやPDBの名前を変更する場合は、/etc/init.d/oracle-free-23aiに記述されている定義を、あらかじめ変更しておきます。
[root@vbox ~]# /etc/init.d/oracle-free-23ai configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts: ********
Confirm the password: ********
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
Enter SYS user password:
********
Enter SYSTEM user password:
******
Enter PDBADMIN User Password:
******
Prepare for db operation
7% complete
Copying database files
29% complete
Creating and starting Oracle instance
30% complete
33% complete
36% complete
39% complete
43% complete
Completing Database Creation
47% complete
49% complete
50% complete
Creating Pluggable Databases
54% complete
71% complete
Executing Post Configuration Actions
93% complete
Running Custom Scripts
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/FREE.
Database Information:
Global Database Name:FREE
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log" for further details.
Connect to Oracle Database using one of the connect strings:
Pluggable database: vbox/FREEPDB1
Multitenant container database: vbox
[root@vbox ~]#
構成が完了したら、データベースへの接続を確認します。接続先としてlocalhost/FREEPDB1を指定します。
. oraenv
ORACLE_SID = [root] ? FREE
sqlplus system/パスワード@localhost/freepdb1
select banner_full from v$version;
exit
[root@vbox ~]# . oraenv
ORACLE_SID = [root] ? FREE
The Oracle base has been set to /opt/oracle
[root@vbox ~]# sqlplus system/********@localhost/freepdb1
SQL*Plus: Release 23.0.0.0.0 - Production on Tue Oct 15 18:40:39 2024
Version 23.5.0.24.07
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Last Successful login time: Tue Oct 15 2024 18:38:15 +09:00
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
SQL> select banner_full from v$version;
BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
SQL> exit
Disconnected from Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
[root@vbox ~]#
接続先のデータベースのバージョンが23.5であることを確認します。
データベースの自動起動を有効にします。
systemctl enable oracle-free-23ai
[root@vbox ~]# systemctl enable oracle-free-23ai
oracle-free-23ai.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable oracle-free-23ai
[root@vbox ~]#
rm oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
[root@vbox ~]# rm oracle-database-free-23ai-1.0-1.el8.aarch64.rpm
rm: remove regular file 'oracle-database-free-23ai-1.0-1.el8.aarch64.rpm'? yes
[root@vbox ~]#
以上でOracle Database 23ai Freeのインストールは完了です。
Oracle APEXをインストールする
https://download.oracle.com/otn_software/apex/apex-latest.zip
オラクル・データベースのRPMをインストールすると、ユーザーoracleとグループoinstallが作成されます。Oracle APEXのインストールはユーザーoracleにて実行します。
su - oracle
[root@vbox ~]# su - oracle
Last login: Tue Oct 15 18:36:39 JST 2024
[oracle@vbox ~]$
Oracle APEXのインストールに使用するZIPファイルを取得します。作業はユーザーoracleのホーム・ディレクトリ/home/oracleで行います。
curl -OL https://download.oracle.com/otn_software/apex/apex-latest.zip
[oracle@vbox ~]$ curl -OL https://download.oracle.com/otn_software/apex/apex-latest.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 276M 100 276M 0 0 9497k 0 0:00:29 0:00:29 --:--:-- 9249k
[oracle@vbox ~]$
ダウンロードされたapex-latest.zipをunzipします。apexというディレクトリ以下にzipファイルの内容が展開されます。
unzip apex-latest.zip
[oracle@vbox ~]$ unzip apex-latest.zip
Archive: apex-latest.zip
inflating: META-INF/MANIFEST.MF
inflating: META-INF/ORACLE_C.SF
inflating: META-INF/ORACLE_C.RSA
creating: apex/
inflating: apex/LICENSE.txt
inflating: apex/apex_rest_config.sql
inflating: apex/apex_rest_config_cdb.sql
inflating: apex/apex_rest_config_core.sql
inflating: apex/apex_rest_config_nocdb.sql
inflating: apex/apexins.sql
inflating: apex/apexins1.sql
inflating: apex/apexins2.sql
inflating: apex/apexins3.sql
inflating: apex/apexins_adb.sql
[中略]
inflating: apex/images/wwv_todo.gif
inflating: apex/images/wwv_user_list.gif
inflating: apex/images/wwv_user_quick.gif
inflating: apex/images/yellow.gif
extracting: apex/images/yellow_flag.gif
extracting: apex/images/yes.gif
extracting: apex/images/apex_version.txt
extracting: apex/images/apex_version.js
[oracle@vbox ~]$
ダウンロードしたメディアのAPEXのバージョンを確認します。images以下のapex_version.txtの内容を表示します。
cat apex/images/apex_version.txt
[oracle@vbox ~]$ cat apex/images/apex_version.txt
Oracle APEX Version: 24.1
[oracle@vbox ~]$
APEXのアプリケーションが必要とする静的ファイルを/i/24.1.0にコピーします。24.1.0の部分はインストールするAPEXのバージョンによって変わります。
mkdir i
cp -r -p apex/images i/24.1.0
[oracle@vbox ~]$ mkdir i
[oracle@vbox ~]$ cp -r -p apex/images i/24.1.0
[oracle@vbox ~]$
これらのファイルをCDNから取得するようにOracle APEXを構成する場合は、/i/24.1.0の作成は必要ではありません。
作成されたディレクトリapexへ移動します。
cd apex
[oracle@vbox ~]$ cd apex
[oracle@vbox apex]$
ユーザーsysでPDB、FREEPDB1に接続し、Oracle APEXのインストール・スクリプトapexins.sqlを実行します。インストール・スクリプトに与える引数はSYSAUX SYSAUX TEMP /i/24.1.0/です。APEXのインストール先となる表領域として標準で作成されているSYSAUXを指定しています。一時表領域としてTEMPを使い、イメージのパスには複数のAPEXのバージョンを同時にホストできるように、バージョン番号を加えて/i/24.1.0/としています。
NLS_LANGとして、必ずAmerican_America.AL32UTF8を設定します。
export NLS_LANG=American_America.AL32UTF8
. oraenv
ORACLE_SID = [oracle] ? FREE
sqlplus sys/*******@localhost/freepdb1 as sysdba
@apexins SYSAUX SYSAUX TEMP /i/24.1.0/
[oracle@vbox apex]$ export NLS_LANG=American_America.AL32UTF8
[oracle@vbox apex]$ . oraenv
ORACLE_SID = [oracle] ? FREE
The Oracle base has been set to /opt/oracle
[oracle@vbox apex]$ sqlplus sys/********@localhost/freepdb1 as sysdba
SQL*Plus: Release 23.0.0.0.0 - Production on Tue Oct 15 18:55:38 2024
Version 23.5.0.24.07
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
SQL> @apexins SYSAUX SYSAUX TEMP /i/24.1.0/
...set_appun.sql
PL/SQL procedure successfully completed.
[中略]
The structure of the link to the Oracle APEX development interface is as follows:
http://host:port/ords
timing for: Phase 3 (Switch)
Elapsed: 0.13
timing for: Complete Installation
Elapsed: 4.15
SYS>
apexins.sqlの終了後、続けて日本語リソースを導入します。load_trans.sqlに引数としてJAPANESEを与えて実行します。
@load_trans JAPANESE
SYS> @load_trans JAPANESE
PL/SQL procedure successfully completed.
Installing Oracle APEX translation - JAPANESE
. ORACLE
.
. Oracle APEX Hosted Development Service Installation.
..............................................................
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
--application/set_environment
API Last Extended:20240531
Your Current Version:20240531
This import is compatible with version: 20240531
COMPATIBLE (You should be able to run this import without issues.)
ID offset during import: 0
New ID offset for application: 0
[中略]
--application/pages/page_00203
--application/pages/page_00204
--application/pages/page_00205
--application/pages/page_00206
--application/deployment/definition
--application/deployment/checks
--application/deployment/buildoptions
--application/end_environment
... elapsed: 3.24 sec
...done
Adjust instance settings
PL/SQL procedure successfully completed.
SYS>
APEXの管理ユーザーの設定を行います。apxchpwd.sqlを実行します。設定するパスワードは以下のルールに従う必要があります。
- 少なくても1文字の数値を含む。(0123456789)
- 少なくても1文字の記号を含む。(!"#$%&()``*+,-/:;?_)
- 少なくても1文字の大文字を含む。
SYS> @apxchpwd
...set_appun.sql
================================================================================
This script can be used to change the password of an Oracle APEX
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]
Enter ADMIN's password [] ********
Created instance administrator ADMIN.
SYS>
set feedback on
alter user apex_public_user no authentication account unlock;
SYS> set feedback on
SYS> alter user apex_public_user no authentication account unlock;
User altered.
SYS>
begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('connect'),
principal_name => 'APEX_240100',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/
SYS> begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('connect'),
principal_name => 'APEX_240100',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/ 2 3 4 5 6 7 8 9 10 11 12
PL/SQL procedure successfully completed.
SYS>
sqlplusよりexitします。
exit
SYS> exit
Disconnected from Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.5.0.24.07
[oracle@vbox apex]$
cd
rm apex-latest.zip
[oracle@vbox apex]$ cd
[oracle@vbox ~]$ rm apex-latest.zip
[oracle@vbox ~]$
Oracle REST Data Servicesをインストールする
Oracle REST Data Services(以下ORDS)をインストールします。
ORDSは一般ユーザーの権限で動作させるため、HTTPやHTTPSのポート(80および443)の接続を待ち受けることはできません。代わりにポート8080と8443を使用します。firewalldではHTTP(ポート80)の接続をポート8080、HTTPS(ポート443)の接続をポート8443へ転送します。また、HTTPとHTTPSへの接続を許可します。
firewalldを構成する一連のコマンドは以下になります。
firewall-cmd --add-service=https
firewall-cmd --add-service=http
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --runtime-to-permanent
firewall-cmd --reload
firewall-cmd --list-all
ユーザーrootで、上記のコマンドを実行します。
[root@vbox ~]# firewall-cmd --add-service=https
success
[root@vbox ~]# firewall-cmd --add-service=http
success
[root@vbox ~]# firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443
success
[root@vbox ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
success
[root@vbox ~]# firewall-cmd --runtime-to-permanent
success
[root@vbox ~]# firewall-cmd --reload
success
[root@vbox ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s8
sources:
services: cockpit dhcpv6-client http https ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
port=443:proto=tcp:toport=8443:toaddr=
port=80:proto=tcp:toport=8080:toaddr=
source-ports:
icmp-blocks:
rich rules:
[root@vbox ~]#
続いて、Java Development Kitをインストールします。
ORDSはJavaで書かれたアプリケーションです。使用するJDKは、Oracle JDKを想定しています。不具合などでSRを上げる場合はOracle JDKの再現を確認する必要がありますが、今回のような無料の環境での利用であれば、OpenJDKやAmazon Correttoを使用することもできます。
サポートしているJDKのバージョンは17および21です。今回はOpenJDK 21を使用してORDSを動かします。Oracle REST Data Services 23.3で追加されたGraphQLのサポートを有効にするには、通常のJDKではなくGraalVMを使う必要があります。
dnf -y install java-21-openjdk-headless
[root@vbox ~]# dnf -y install java-21-openjdk-headless
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 1:03:32 ago on Tue Oct 15 18:11:13 2024.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
java-21-openjdk-headless
aarch64 1:21.0.4.0.7-1.0.1.el8 ol8_appstream 49 M
Installing dependencies:
alsa-lib aarch64 1.2.10-2.el8 ol8_appstream 468 k
avahi-libs aarch64 0.7-27.el8_10.1 ol8_baseos_latest 60 k
copy-jdk-configs noarch 4.0-2.el8 ol8_appstream 30 k
cups-libs aarch64 1:2.2.6-60.el8_10 ol8_baseos_latest 419 k
javapackages-filesystem noarch 5.3.0-1.module+el8+5136+7ff78f74
ol8_appstream 30 k
lksctp-tools aarch64 1.0.18-3.el8 ol8_baseos_latest 98 k
lua aarch64 5.3.4-12.el8 ol8_appstream 188 k
tzdata-java noarch 2024a-1.0.1.el8 ol8_appstream 186 k
[中略]
Installed:
alsa-lib-1.2.10-2.el8.aarch64
avahi-libs-0.7-27.el8_10.1.aarch64
copy-jdk-configs-4.0-2.el8.noarch
cups-libs-1:2.2.6-60.el8_10.aarch64
java-21-openjdk-headless-1:21.0.4.0.7-1.0.1.el8.aarch64
javapackages-filesystem-5.3.0-1.module+el8+5136+7ff78f74.noarch
lksctp-tools-1.0.18-3.el8.aarch64
lua-5.3.4-12.el8.aarch64
tzdata-java-2024a-1.0.1.el8.noarch
Complete!
[root@vbox ~]#
JDKのインストールが完了したら、Javaのバージョンを確認します。
java -version
[root@vbox ~]# java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.4.0.7-1.0.1) (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.4.0.7-1.0.1) (build 21.0.4+7-LTS, mixed mode, sharing)
[root@vbox ~]#
Oracle REST Data Servicesは、Yumリポジトリを指定してインストールします。
以下のコマンドを実行します。
dnf -y --repofrompath ol8_oracle_software,https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64 install ords
[root@vbox ~]# dnf -y --repofrompath ol8_oracle_software,https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64 install ords
Failed to set locale, defaulting to C.UTF-8
Added ol8_oracle_software repo from https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/aarch64
ol8_oracle_software 18 kB/s | 35 kB 00:01
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
ords noarch 24.3.0-6.el8 ol8_oracle_software 150 M
Installing dependencies:
lsof aarch64 4.93.2-1.el8 ol8_baseos_latest 249 k
Transaction Summary
================================================================================
Install 2 Packages
Total download size: 150 M
Installed size: 159 M
Downloading Packages:
(1/2): lsof-4.93.2-1.el8.aarch64.rpm 87 kB/s | 249 kB 00:02
(2/2): ords-24.3.0-6.el8.noarch.rpm 8.2 MB/s | 150 MB 00:18
--------------------------------------------------------------------------------
Total 8.3 MB/s | 150 MB 00:18
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : lsof-4.93.2-1.el8.aarch64 1/2
Running scriptlet: ords-24.3.0-6.el8.noarch 2/2
Installing : ords-24.3.0-6.el8.noarch 2/2
Running scriptlet: ords-24.3.0-6.el8.noarch 2/2
WARN: ORDS requires Java 11 or 17.
You can install Oracle Java at https://www.oracle.com/java/technologies/downloads/#java11.
INFO: Before starting ORDS service, run the below command as user oracle:
ords --config /etc/ords/config install
INFO: To enable the ORDS service during startup, run the below command:
sudo systemctl enable ords
Verifying : lsof-4.93.2-1.el8.aarch64 1/2
Verifying : ords-24.3.0-6.el8.noarch 2/2
Installed:
lsof-4.93.2-1.el8.aarch64 ords-24.3.0-6.el8.noarch
Complete!
[root@vbox ~]#
--repofrompathオプションでYumリポジトリの位置を指定する代わりに、/etc/yum.repos.d/以下にYumリポジトリを定義しても良いでしょう。
インストールしたOracle REST Data Servicesを構成します。
ORDSの構成ファイルのデフォルトの位置は/etc/ords/configです。dnfコマンドでORDSをRPMファイルからインストールしている場合は、この構成ディレクトリも作成されます。
ORDSの構成はユーザーoracleで行います。ORDSを操作するコマンドは、/usr/local/bin/ordsとしてスクリプトがインストールされているので、/usr/local/binを環境変数PATHに追加します。
ORDSコマンドを実行するときに構成ディレクトリが未指定だと、カレント・ディレクトリを構成ディレクトリと見做します。作業は/etc/ords/config上で実施します。
su - oracle
export PATH=/usr/local/bin:$PATH
cd /etc/ords/config
[root@vbox ~]# su - oracle
Last login: Tue Oct 15 18:47:28 JST 2024 on pts/0
[oracle@vbox ~]$ export PATH=/usr/local/bin:$PATH
[oracle@vbox ~]$ cd /etc/ords/config
[oracle@vbox config]$
構成を開始します。データベースへのオブジェクトのインストールと、Webサーバーの構成を行います。
ほとんどの指定はデフォルトを選択します。デフォルトと異なる指定は、以下です。
database service name として freepdb1 を指定します。
administrator username として sys を指定します。
database password for SYS AS SYSDBA にSYSのパスワードを指定します。
インストールの準備が完了した時点でAではなく9を入力して、APEX static resource location として /home/oracle/i を指定します。
ords install
[oracle@vbox config]$ ords install
2024-10-15T10:22:45Z INFO ORDS has not detected the option '--config' and this will be set up to the default directory.
ORDS: Release 24.3 Production on Tue Oct 15 10:22:46 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config
The configuration folder /etc/ords/config does not contain any configuration files.
Oracle REST Data Services - Interactive Install
Enter a number to select the database connection type to use
[1] Basic (host name, port, service name)
[2] TNS (TNS alias, TNS directory)
[3] Custom database URL
Choose [1]:
Enter the database host name [localhost]:
Enter the database listen port [1521]:
Enter the database service name [orcl]: freepdb1
Provide database user name with administrator privileges.
Enter the administrator username: sys
Enter the database password for SYS AS SYSDBA: ********
Retrieving information.
ORDS is not installed in the database. ORDS installation is required.
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=localhost PORT=1521 SERVICE_NAME=freepdb1
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] ORDS runtime user and schema tablespaces: Default: SYSAUX Temporary TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location:
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]: 9
Enter the APEX static resources location: /home/oracle/i
Enter a number to update the value or select option A to Accept and Continue
[1] Connection Type: Basic
[2] Basic Connection: HOST=localhost PORT=1521 SERVICE_NAME=freepdb1
Administrator User: SYS AS SYSDBA
[3] Database password for ORDS runtime user (ORDS_PUBLIC_USER): <generate>
[4] ORDS runtime user and schema tablespaces: Default: SYSAUX Temporary TEMP
[5] Additional Feature: Database Actions
[6] Configure and start ORDS in Standalone Mode: Yes
[7] Protocol: HTTP
[8] HTTP Port: 8080
[9] APEX static resources location: /home/oracle/i
[A] Accept and Continue - Create configuration and Install ORDS in the database
[Q] Quit - Do not proceed. No changes
Choose [A]:
The setting named: db.connectionType was set to: basic in configuration: default
The setting named: db.hostname was set to: localhost in configuration: default
The setting named: db.port was set to: 1521 in configuration: default
The setting named: db.servicename was set to: freepdb1 in configuration: default
The setting named: plsql.gateway.mode was set to: proxied in configuration: default
The setting named: db.username was set to: ORDS_PUBLIC_USER in configuration: default
The setting named: db.password was set to: ****** in configuration: default
The setting named: feature.sdw was set to: true in configuration: default
The global setting named: database.api.enabled was set to: true
The setting named: restEnabledSql.active was set to: true in configuration: default
The global setting named: standalone.http.port was set to: 8080
The global setting named: standalone.static.path was set to: /home/oracle/i
The global setting named: standalone.doc.root was set to: /etc/ords/config/global/doc_root
The setting named: security.requestValidationFunction was set to: ords_util.authorize_plsql_gateway in configuration: default
2024-10-15T10:23:15.081Z INFO Created folder /etc/ords/config/logs
2024-10-15T10:23:15.082Z INFO The log file is defaulted to the current working directory located at /etc/ords/config/logs
2024-10-15T10:23:15.156Z INFO Installing Oracle REST Data Services version 24.3.0.r2620924 in FREEPDB1
2024-10-15T10:23:15.976Z INFO ... Verified database prerequisites
2024-10-15T10:23:16.226Z INFO ... Created Oracle REST Data Services proxy user
2024-10-15T10:23:16.588Z INFO ... Created Oracle REST Data Services schema
2024-10-15T10:23:16.948Z INFO ... Granted privileges to Oracle REST Data Services
2024-10-15T10:23:19.327Z INFO ... Created Oracle REST Data Services database objects
2024-10-15T10:23:27.912Z INFO Completed installation for Oracle REST Data Services version 24.3.0.r2620924. Elapsed time: 00:00:12.738
2024-10-15T10:23:27.964Z INFO Completed configuring PL/SQL gateway user for Oracle REST Data Services version 24.3.0.r2620924. Elapsed time: 00:00:00.50
2024-10-15T10:23:27.965Z INFO Log file written to /etc/ords/config/logs/ords_install_2024-10-15_102315_08230.log
2024-10-15T10:23:28.083Z INFO HTTP and HTTP/2 cleartext listening on host: 0.0.0.0 port: 8080
2024-10-15T10:23:28.094Z INFO Disabling document root because the specified folder does not exist: /etc/ords/config/global/doc_root
2024-10-15T10:23:28.094Z INFO Default forwarding from / to contextRoot configured.
2024-10-15T10:23:29.776Z INFO Configuration properties for: |default|lo|
db.servicename=freepdb1
db.hostname=localhost
db.password=******
conf.use.wallet=true
security.requestValidationFunction=ords_util.authorize_plsql_gateway
database.api.enabled=true
db.username=ORDS_PUBLIC_USER
standalone.http.port=8080
standalone.static.path=/home/oracle/i
restEnabledSql.active=true
resource.templates.enabled=false
plsql.gateway.mode=proxied
db.port=1521
feature.sdw=true
config.required=true
db.connectionType=basic
standalone.doc.root=/etc/ords/config/global/doc_root
2024-10-15T10:23:29.777Z WARNING *** jdbc.MaxLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***
2024-10-15T10:23:29.777Z WARNING *** jdbc.InitialLimit in configuration |default|lo| is using a value of 10, this setting may not be sized adequately for a production environment ***
2024-10-15T10:23:35.564Z INFO
Mapped local pools from /etc/ords/config/databases:
/ords/ => default => VALID
2024-10-15T10:23:35.632Z INFO Oracle REST Data Services initialized
Oracle REST Data Services version : 24.3.0.r2620924
Oracle REST Data Services server info: jetty/10.0.21
Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 21.0.4+7-LTS
ORDSが正しく構成されていると、ORDSは起動したままでコマンド・プロンプトに戻りません。
Oracle APEXへの接続確認を行います。
仮想マシンではORDSが起動し、HTTPによる接続を待っている状態です。VirtualBoxマネージャーより、仮想マシンのネットワークのポート・フォワーディングのルールを追加します。
localhostのポート8080への接続要求が、仮想マシンのポート80へ転送されます。仮想マシンではfirewalldがポート80への接続要求を、ORDSが接続を待ち受けしているポート8080へ転送します。
ブラウザを立ち上げ、以下のURLに接続します。
http://localhost:8080/ords/apex_admin
管理サービスの接続画面が開いたら、ユーザー名としてadmin、パスワードとしてAPEXのインストール時にapxchpwd.sqlを実行して設定したパスワードを指定します。
管理にサインインをクリックします。
サインインに成功することを確認します。
ワークスペースの作成を求められます。上部のナビゲーション・メニューを選択すると、ワークスペースの作成をスキップできます。
実行中のORDSをCTRL+Cを入力して終了します。
2024-10-15T10:23:35.632Z INFO Oracle REST Data Services initialized
Oracle REST Data Services version : 24.3.0.r2620924
Oracle REST Data Services server info: jetty/10.0.21
Oracle REST Data Services java info: OpenJDK 64-Bit Server VM 21.0.4+7-LTS
^C
[oracle@vbox config]$
ords config set --global db.invalidPoolTimeout 30s
[oracle@vbox config]$ ords config set --global db.invalidPoolTimeout 30s
2024-10-15T10:35:48Z INFO ORDS has not detected the option '--config' and this will be set up to the default directory.
ORDS: Release 24.3 Production on Tue Oct 15 10:35:49 2024
Copyright (c) 2010, 2024, Oracle.
Configuration:
/etc/ords/config
The global setting named: db.invalidPoolTimeout was set to: 30s
[oracle@vbox config]$
ユーザーoracleから抜けます。
[oracle@vbox config]$ exit
logout
[root@vbox ~]#
ORDSの自動起動を設定します。
systemctl enable ords
[root@vbox ~]# systemctl enable ords
Synchronizing state of ords.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable ords
Created symlink /etc/systemd/system/multi-user.target.wants/ords.service → /etc/systemd/system/ords.service.
Created symlink /etc/systemd/system/graphical.target.wants/ords.service → /etc/systemd/system/ords.service.
[root@vbox ~]#
systemctlコマンドによってORDSが起動できることを確認します。
systemctl stop ords
systemctl start ords
[root@vbox ~]# systemctl stop ords
[root@vbox ~]# systemctl start ords
[root@vbox ~]#
先ほどと同様にOracle APEXの管理サービスに接続できることを確認します。
http://localhost:8080/ords/apex_admin
接続の確認ができれば、ORDSのインストールと構成は完了です。
また、これよりOracle APEXを使用することができます。