Oracle APEX 23.2 / ORDS 23.4 インストールメモ


# 今回の前提
* Oracle DBインストール済み(23c FREEを使用）
* DBインストール後にAPEXを1度もインストールしていない
* マルチテナントでPDBにインストールする
* PDB名はfreepdb1
* ORDSはスタンドアロンモードで起動
* 必須でない手順は省略

# APEXのインストール
## ダウンロードと配置
以下のサイトから最新版をダウンロードし、DBサーバーに配置し、展開する

https://download.oracle.com/otn_software/apex/apex-latest.zip

```
$ cd <配置したディレクトリ>
$ unzip apex-latest.zip
```

## APEX用表領域の作成（必要に応じて実施）
```
$ cd apex
SQL> sqlplus / as sysdba
SQL> alter session set container = freepdb1;
SQL> CREATE TABLESPACE "APEX" DATAFILE 
SQL>   '/opt/oracle/oradata/FREE/FREEPDB1/APEX01.DBF' SIZE 250M;
```
※表領域名、場所、サイズは環境にあわせて修正する

## APEXのインストール
```
SQL> @apexins.sql APEX APEX TEMP /i/
```
第1引数：APEXアプリケーション・ユーザーの表領域の名前
第2引数：APEXファイル・ユーザーの表領域の名前
第3引数：一時表領域または一時表領域グループの名前
第4引数：「/i/」でよい

## 管理用APEXユーザー作成
```
SQL> @apxchpwd.sql
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 []
```
※管理者ユーザー名（デフォルト：ADMIN）、メールアドレス、パスワードを設定する

## APEX_PUBLIC_USERアカウントアンロック
```
SQL> ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
```

## パスワード有効期間変更（必要に応じて実施）
```
SQL> ALTER PROFILE "DEFAULT" LIMIT PASSWORD_LIFE_TIME UNLIMITED;
```
※ここではDEFAULTプロファイルを変えているが、APEX_PUBLIC_USER用に独自のPROFILEを作成するがよい

## 静的ファイル・サポートの構成
静的ファイルは、APEXに組み込まれたRESTfulサービス・モジュールを使用して提供されるため、静的ファイルを構成するためにはAPEXの新規インストール後にapex_rest_config.sqlを実行する必要がある
```
@apex_rest_config.sql
Enter a password for the APEX_LISTENER user              []
Enter a password for the APEX_REST_PUBLIC_USER user              []
```
* APEX_REST_PUBLIC_USER
  * APEXに格納されているRESTfulサービスの定義を呼び出す際に使用されるアカウント
* APEX_LISTENER
  * APEXに格納されているRESTfulサービスの定義を照会するために使用されるアカウント

# ORDSのインストール
## ダウンロードと配置
以下のサイトからダウンロードし、DBサーバーに配置し、展開する

https://download.oracle.com/otn_software/java/ords/ords-23.4.0.346.1619.zip

```
$ cd <配置したディレクトリ>
$ unzip ords-23.4.0.346.1619.zip
```

---
(2024/6/9追記)
最新版へのリンクは下記になりますが、バージョン24にあがっています

https://download.oracle.com/otn_software/java/ords/ords-latest.zip

最新版のORDS 24から少しインストール方法が変わっていますので、マニュアルをご参照ください

https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/24.1/ordig/index.html

---

## imagesディレクトリのコピー
```
$ cd <apexを展開したディレクトリ>
$ cp -pr images/ <ordsを展開したディレクトリ>/
```

## ORDS構成フォルダの作成
```
$ mkdir <任意の場所>/config
```

## ORDSのインストール
```
$ cd <ordsを展開したディレクトリ>
$ bin/ords --config <ORDS構成フォルダの場所> install
  Enter a number to select the type of installation
    [1] Install or upgrade ORDS in the database only
    [2] Create or update a database pool and install/upgrade ORDS in the database
    [3] Create or update a database pool only
  Choose [2]:
  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 [FREE]: freepdb1
  Provide database user name with administrator privileges.
    Enter the administrator username: sys
  Enter the database password for SYS AS SYSDBA:
Connecting to database user: SYS AS SYSDBA url: jdbc:oracle:thin:@//localhost:1521/freepdb1

Retrieving information.
  Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]: APEX
  Enter the temporary tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [TEMP]:
  Enter a number to select additional feature(s) to enable:
    [1] Database Actions  (Enables all features)
    [2] REST Enabled SQL and Database API
    [3] REST Enabled SQL
    [4] Database API
    [5] None
  Choose [1]:
  Enter a number to configure and start ORDS in standalone mode
    [1] Configure and start ORDS in standalone mode
    [2] Skip
  Choose [1]:
  Enter a number to select the protocol
    [1] HTTP
    [2] HTTPS
  Choose [1]:
  Enter the HTTP port [8080]:
  Enter the APEX static resources location: <ordsを展開したディレクトリ>/images
```
※今回は変更が必要な箇所以外はデフォルトの設定としている
※しばらくすると起動する（プロンプトは返ってこない）

## 確認
* 「http://localhost:8080/ 」にアクセスするとORDSの画面が開く
    * APEX、SQL Developer Webへのリンクが掲載されている
* 「http://localhost:8080/ords/apex_admin 」にアクセスするとAPEXの管理画面が開く
  * インストール途中に設定した管理者でログインする
    * ユーザー名：設定した管理者ユーザー名（デフォルト：ADMIN）
    * パスワード：設定したパスワード

## 2回目以降の起動方法
```
$ <ordsを展開したディレクトリ>/bin/ords --config <ORDS構成フォルダの場所> serve
```

# 参考：SQL Developer Webを使うために必要な手順
## 前提
apexws1ユーザーで利用する

## 手順
```
$ sqlplus apexws1/<password>@localhost:1521/freepdb1
SQL>  BEGIN
SQL>     ords.enable_schema(
SQL>         p_enabled => true, 
SQL>         p_schema => 'APEXWS1', 
SQL>         p_url_mapping_type => 'BASE_PATH', 
SQL>         p_url_mapping_pattern => 'apexws1',
SQL>         p_auto_rest_auth => true
SQL>     );
SQL>     COMMIT;
SQL> END;
SQL> /
```
「http://localhost:8080/ords/sql-developer 」でアクセスし、apexws1でログインできることを確認する