欧州のベルギーに拠点がある
United Codes社より、Oracle APEXのローカル開発環境を作成するスクリプトが公開されています。
UC Local APEX Dev
本記事では、このuc-local-apex-devを使用して、MacbookにOracle APEXの開発環境を作成します。作業はuc-local-apex-devのGetting Startedにそって実施します。
Getting Started
Macbookの環境ですが、DockerとDockerエンジンにColimaを使用します。podmanは使用しません。そのため、環境の準備手順は少し異なります。Windowsの場合はWSL2の使用が推奨されています。
Macでの環境については、以下で説明されています。
Init podman on MacOS
https://www.united-codes.com/products/uc-local-apex-dev/docs/other/podman-on-mac/私はSQLclを、Homebrewではなく
SQLclのページよりダウンロードしてインストールしているので、brewにsqlclは含めていません。
brew install docker docker-compose colima
私の環境では、すべてインストール済みでした。
% brew install docker docker-compose colima
✔︎ JSON API cask.jws.json Downloaded 15.3MB/ 15.3MB
✔︎ JSON API formula.jws.json Downloaded 32.0MB/ 32.0MB
Warning: docker 29.2.1 is already installed and up-to-date.
To reinstall 29.2.1, run:
brew reinstall docker
Warning: docker-compose 5.0.2 is already installed and up-to-date.
To reinstall 5.0.2, run:
brew reinstall docker-compose
Warning: colima 0.9.1 is already installed and up-to-date.
To reinstall 0.9.1, run:
brew reinstall colima
%
SQLclをPATHに含めておきます。SQLclのインストール先など、設定方法は環境に依存します。
sql /nologの実行で、SQLclが起動されることを確認します。
~ % sql /nolog
SQLcl: 木 2月 05 14:55:01 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
SQL> exit
~ %
colimaの仮想マシンを実行します。
CPUは8、メモリは16GB、ディスクは100GBで作成しています。Getting Startedでは、4GB RAM、3 CPUs、20GBディスクが最小限となっています。
colima start --runtime docker --cpu 8 --memory 16 --disk 100
~ % colima start --runtime docker --cpu 8 --memory 16 --disk 100
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0002] creating and starting ... context=vm
INFO[0019] provisioning ... context=docker
INFO[0020] starting ... context=docker
INFO[0021] done
~ %
dockerがcolimaを使用する様に設定します。
docker context use colima
docker context ls
~ % docker context use colima
colima
Current context is now "colima"
~ % docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
colima * colima unix:///Users/_________/.colima/default/docker.sock
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
~ %
以上でコンテナを実行する環境が準備できました。
この後は、
Getting Startedの
Quick Setupを実行します。
1 Clone the Repositoryから
7 PATH Configurationに記載されているコマンドを、順次実行します。
./scripts/after-first-db-start.shの最後の方で、アーカイブ・ログ・モードを無効にするかどうか確認を求められるので、デフォルトの無効を選んでいます。
言語リソースのインストールに使用するため、ダウンロードしたAPEXのメディアは残します。rm -rf ./apexは実行しません。
Documents % git clone https://github.com/United-Codes/uc-local-apex-dev.git
Cloning into 'uc-local-apex-dev'...
remote: Enumerating objects: 672, done.
remote: Counting objects: 100% (156/156), done.
remote: Compressing objects: 100% (92/92), done.
remote: Total 672 (delta 71), reused 115 (delta 58), pack-reused 516 (from 1)
Receiving objects: 100% (672/672), 194.99 KiB | 4.64 MiB/s, done.
Resolving deltas: 100% (367/367), done.
Documents % cd uc-local-apex-dev
uc-local-apex-dev % chmod +x ./local-26ai.sh ./setup.sh ./scripts/*.sh
uc-local-apex-dev % ./setup.sh
Created .env file
uc-local-apex-dev % docker-compose up -d
[+] up 4/4
✔ Network uc-local-apex-dev_default Created 0.0s
✔ Volume oradata-26ai Created 0.0s
✔ Container local-26ai Healthy 8.6s
✔ Container local-26ai-ords Created 0.0s
uc-local-apex-dev % docker exec -it local-26ai-ords bash -c \
"ords --config /etc/ords/config config --db-pool default set plsql.gateway.mode proxied"
ORDS: Release 25.4 Production on Thu Feb 05 06:19:16 2026
Copyright (c) 2010, 2026, Oracle.
Configuration:
/etc/ords/config
The setting named: plsql.gateway.mode was set to: proxied in configuration: default
uc-local-apex-dev % ./scripts/after-first-db-start.sh
loaded .env file
SQLcl: 木 2月 05 11:19:58 2026のリリース25.3 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
USER
_______
SYS
名前: local-26ai-sys
接続文字列: localhost:1521/FREEPDB1
ユーザー: sys
パスワード: ******
internal_logon: sysdba
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
saved sqlcl connection
connect with 'sql -name local-26ai-sys'
[中略]
コミットが完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
loaded .env file
Successfully copied 1.54kB to local-26ai:/opt/oracle/oradata/datapump/
Successfully copied 1.54kB to /Users/__________/Documents/uc-local-apex-dev/backups/
synced backups folder
Do you want to disable archive logs (recommended if this is just a dev environment)? [Y/n]
loaded .env file
Disabling archive logs
Database closed.
Database dismounted.
ORACLE instance shut down.
ORACLE instance started.
Total System Global Area 1603373280 bytes
Fixed Size 5007584 bytes
Variable Size 469762048 bytes
Database Buffers 1124073472 bytes
Redo Buffers 4530176 bytes
Database mounted.
Database altered.
Database altered.
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /opt/oracle/product/26ai/dbhomeFree/dbs/arch
Oldest online log sequence 5
Current log sequence 3
Removing archive logs
uc-local-apex-dev % docker-compose restart ords-26ai
[+] restart 0/1
⠹ Container local-26ai-ords Restarting 10.2s
uc-local-apex-dev % ./scripts/unexpire-accounts.sh
loaded .env file
SQLcl: 木 2月 05 15:32:41 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
PL/SQLプロシージャが正常に完了しました。
PL/SQLプロシージャが正常に完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
Unexpired APEX_PUBLIC_USER and APEX workspace accounts.
ynakakoshi@Ns-Macbook uc-local-apex-dev % ./scripts/disable-password-expiration.sh
loaded .env file
SQLcl: 木 2月 05 15:32:45 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
PL/SQLプロシージャが正常に完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
Disabled password expiration for APEX workspace accounts.
uc-local-apex-dev %
7 PATH Configurationまでの作業を終えると、以下のURLでAPEXに接続できます。
SQLclに接続local-26ai-sysが保存されていることを確認します。この接続は、ユーザーSYSでAPEXをインストールしたFREEPDB1に接続します。
uc-local-apex-dev % sql /nolog
SQLcl: 木 2月 05 15:52:19 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
SQL> connmgr list
.
└── local-26ai-sys
SQL> exit
uc-local-apex-dev %
管理者ユーザーADMINを設定するため、APEXのメディアがあるディレクトリ
apexに移動し、
apxchpwd.sqlを実行します。
cd apex
sql -name local-26ai-sys @apxchpwdexit
uc-local-apex-dev % cd apex
ynakakoshi@Ns-Macbook apex % sql -name local-26ai-sys @apxchpwd
SQLcl: 木 2月 05 15:53:29 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
...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.
SQL> exit
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
apex %
load_trans.sqlを実行し、日本語リソースをインストールします。
sql -name local-26ai-sys @load_trans JAPANESE
apex % sql -name local-26ai-sys @load_trans JAPANESE
SQLcl: 木 2月 05 15:58:34 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
PL/SQLプロシージャが正常に完了しました。
Installing Oracle APEX translation - JAPANESE
. ORACLE
.
. Oracle APEX Hosted Development Service Installation.
..............................................................
PL/SQLプロシージャが正常に完了しました。
PL/SQLプロシージャが正常に完了しました。
--application/set_environment
API Last Extended:20241130
Your Current Version:20241130
This import is compatible with version: 20241130
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_00204
--application/pages/page_00205
--application/pages/page_00206
--application/deployment/definition
--application/deployment/checks
--application/deployment/buildoptions
--application/end_environment
... elapsed: 2.79 sec
...done
Adjust instance settings
PL/SQLプロシージャが正常に完了しました。
SQL> exit
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
apex %
APEXワークスペースとしてAPEXDEV、デフォルト・パーシング・スキーマとなるデータベース・ユーザーとしてAPEXDEVを作成します。
local-26ai.sh create-user apexdev
スクリプトの出力の最後の方に、作成されたユーザー(今回はapexdev)が表示されます。
apex % local-26ai.sh create-user apexdev
loaded .env file
SQLcl: 木 2月 05 16:07:49 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
USER
_______
SYS
Tablespace TBS_APEXDEVは作成されました。
User APEXDEVは作成されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
Grantが正常に実行されました。
PL/SQLプロシージャが正常に完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
>>>>
created user
SQLcl: 木 2月 05 16:07:51 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
USER
_______
SYS
PL/SQLプロシージャが正常に完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
>>>>
created workspace. Access with username 'ADMIN' or apexdev and password 'Welcome_1'
http://localhost:8181/ords/r/apex/workspace-sign-in/oracle-apex-sign-in
SQLcl: 木 2月 05 16:07:53 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
USER
__________
APEXDEV
名前: local-26ai-apexdev
接続文字列: localhost:1521/FREEPDB1
ユーザー: apexdev
パスワード: ******
PL/SQLプロシージャが正常に完了しました。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
>>>>
saved sqlcl connection
connect with 'sql -name local-26ai-apexdev'
apex %
以上でOracle APEXのアプリケーションの開発を始める準備が整いました。
管理サービスにサインインしてみます。ユーザー名/パスワードは、apxchpwd.sqlを実行して設定しています。
管理サービスにサインインできます。ワークスペースの作成はスクリプトで実行できるので、あまり管理サービスにサインインすることはないかもしれません。
ワークスペースにサインインします。
ユーザー名はapexdev、デフォルトのパスワードはWelcome_1です。
サインインすると、アプリケーション・ビルダーの画面が開きます。
パッチの適用については、FAQに手順が記載されています。
ダウンロードしたパッチを解凍したディレクトリに移動し、catpatch.sqlを実行します。
sql -name local-26ai-sys @catpatch
37366599 % sql -name local-26ai-sys @catpatch
SQLcl: 木 2月 05 16:25:46 2026のリリース25.4 Production
Copyright (c) 1982, 2026, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
sqlclではTimingコマンドは廃止されました。
SET TIMING ONとSET TIMING OFFを使用してください。
. ORACLE
.
. Oracle APEX 24.2.%
. Patch Set Exception 37366599
........................................
APEX_VERSION APEX_SCHEMA
_______________ ______________
24.2.0 APEX_240200
PL/SQLプロシージャが正常に完了しました。
Sessionが変更されました。
APEX_SCHEMA
______________
APEX_240200
[中略]
PL/SQLプロシージャが正常に完了しました。
... Enabling Jobs
PL/SQLプロシージャが正常に完了しました。
...Validating APEX
...(07:26:03) Starting validate_apex for APEX_240200
...(07:26:03) Checking missing privileges for APEX_240200
...(07:26:03) Checking missing privileges for APEX_GRANTS_FOR_NEW_USERS_ROLE
...(07:26:03) Re-generating APEX_240200.wwv_flow_db_version
... wwv_flow_db_version is up to date
...(07:26:03) Checking for sys.wwv_flow_cu_constraints
...(07:26:03) Checking invalid public synonyms
...(07:26:03) Key object existence check
...(07:26:03) Post-ORDS updates
...(07:26:03) calling wwv_util_apex_240200.post_ords_upgrade
...enabled_schema
...define_module
...define_template
...define_handler
...set_module_origins_allowed
...(07:26:03) Setting DBMS Registry for APEX to valid
...(07:26:03) Exiting validate_apex
PL/SQLプロシージャが正常に完了しました。
...Recompiling invalid public synonyms
PL/SQLプロシージャが正常に完了しました。
PL/SQLプロシージャが正常に完了しました。
sqlclではTimingコマンドは廃止されました。
SET TIMING ONとSET TIMING OFFを使用してください。
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0から切断されました
37366599 %
パッチに含まれる
imagesの内容を
uc-local-apex-dev/apex-imagesに上書きします。
cp -r ./images/* {path_to_your_cloned_repo}/apex-images
37366599 % cp -r ./images/* ../../uc-local-apex-dev/apex-images
37366599 %
以上でパッチの適用は完了です。
環境の構築については以上です。
uc-local-apex-devには、環境構築の他にも色々と便利なスクリプトが含まれています。--helpでスクリプトの一覧を確認できます。
local-26ai.sh --help
~ % local-26ai.sh --help
Script '--help' not found in /Users/_________/Documents/uc-local-apex-dev
Available scripts:
after-first-db-start.sh
backup-all.sh
backup-user.sh
clear-schema.sh
create-self-signed-certificates.sh
create-user.sh
disable-archive-logs.sh
disable-password-expiration.sh
drop-user.sh
fix-ws-group-ids.sh
import-all.sh
import-backup.sh
import-datapump.sh
install-dbms-cloud.sh
shrink-space.sh
start.sh
stop.sh
sync-backups-folder.sh
test-app-install.sh
test-script-install.sh
unexpire-accounts.sh
used-space.sh
~ %
今回の記事は以上になります。
Oracle APEXのアプケーション開発の参考になれば幸いです。