6.3 APEXのダウンロードとインストール

Oracle APEXのダウンロードとインストールについて学習します。

Oracle APEXをインストールする方法は、インストール先データベースのタイプによって異なります。この章では、ラップトップやデータ・センターなどの自己管理データベース、Database Cloud Service (DBaaS)やExadata Cloud Serviceなどの共同管理クラウド・データベースにOracle APEXをダウンロードしてインストールする方法について説明します。

ヒント:

Autonomous DatabaseやOracle APEXアプリケーション開発(APEXサービス)などの完全に管理されたクラウド・データベースでは、APEXが事前インストールされ、事前構成されているため、この章に記載されているステップをスキップできます。詳細は、サービスのドキュメントを参照してください。

6.3.1 APEXのインストール

APEXのダウンロード・ページからZIPファイルをダウンロードしてOracle APEXをインストールします。

ヒント:

APEXは、ファイル・システム上の書込み可能なディレクトリからインストールする必要があります。インストール・セッションのログの確認を参照してください

APEXをインストールするには:

  1. 開発を英語のみで実施するインストールの場合は、APEXのダウンロード・ページからファイルapex_24.1_en.zipをダウンロードします。開発を英語以外の言語でも実施する場合は、APEXのダウンロード・ページからapex_24.1.zipをダウンロードします。次を参照してください。

    https://www.oracle.com/tools/downloads/apex-downloads.html

    ご使用のリリースがこのマニュアルの発行時点より新しい場合、実際のファイル名が異なる場合があります。

  2. ダウンロードしたzipファイルを解凍します。
    • 英語のみの場合は、次のように、ディレクトリ名を変更せずにapex_24.1_en.zipを解凍します。

      • UNIXおよびLinuxの場合: $ unzip apex_24.1_en.zip
      • Windowsの場合: エクスプローラーでapex_24.1_en.zipファイルをダブルクリックします。
    • 複数言語の場合は、次のように、ディレクトリ名を変更せずにapex_24.1.zipを解凍します。

      • UNIXおよびLinuxの場合: $ unzip apex_24.1.zip
      • Windowsの場合: エクスプローラーでapex_24.1.zipファイルをダブルクリックします。

    ノート:

    ファイルを解凍するディレクトリ・ツリーは深くならないようにし、空白を含むディレクトリの下には格納しないようにします。たとえば、Windowsの場合はC:\TEMPに解凍します。
  3. 作業ディレクトリをapexに変更します。
  4. SQLclを起動し、APEXがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。たとえば:
    • Windowsの場合:

      SYSTEM_DRIVE:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
    • UNIXおよびLinuxの場合:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
  5. デフォルト・プロファイルに対して既存のすべてのパスワード複雑性ルールを有効にします。
  6. 適切なインストール・オプションを選択します。

    完全開発環境ではアプリケーションを開発するため、アプリケーション・ビルダー環境へのすべてのアクセス権があります。ランタイム環境ではアプリケーションは変更できず、実行することができます。

    使用可能なインストール・オプションは次のとおりです。

    • 完全開発環境。次の4つの引数を記載された順序どおりに渡し、apexins.sqlを実行します。

      @apexins.sql tablespace_apex tablespace_files tablespace_temp images

      説明:

      • tablespace_apexは、APEXアプリケーション・ユーザーの表領域の名前です。
      • tablespace_filesは、APEXファイル・ユーザーの表領域の名前です。
      • tablespace_tempは、一時表領域または一時表領域グループの名前です。
      • imagesは、APEXイメージの仮想ディレクトリです。将来的にAPEXのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/と定義します。

      次に例を示します。

      @apexins.sql SYSAUX SYSAUX TEMP /i/

      ノート:

      次のエラーが表示された場合にはSQLclを終了し、SQLclを起動する前に、作業ディレクトリを、インストール・ファイルを解凍した場所(たとえばWindowsではC:\TEMP)に変更します。

      SP2-0310: ファイル"apexins.sql"をオープンできません"

    • ランタイム環境。次の引数を記載された順序どおりに渡し、apxrtins.sqlを実行します。

      @apxrtins.sql tablespace_apex tablespace_files tablespace_temp images

      説明:

      • tablespace_apexは、APEXアプリケーション・ユーザーの表領域の名前です。
      • tablespace_filesは、APEXファイル・ユーザーの表領域の名前です。
      • tablespace_tempは、一時表領域または一時表領域グループの名前です。
      • imagesは、APEXイメージの仮想ディレクトリです。将来的にAPEXのアップグレードをサポートするために、仮想イメージ・ディレクトリを/i/と定義します。

      次に例を示します。

      @apxrtins.sql SYSAUX SYSAUX TEMP /i/

APEXをインストールすると、次のデータベース・アカウントが作成されます。

  • APEX_240100 - APEXのスキーマおよびメタデータを所有するアカウント。
  • FLOWS_FILES - APEXのアップロードされたファイルを所有するアカウント。
  • APEX_PUBLIC_USER - Oracle REST Data Services (ORDS)がAPEXエンジンを起動するために使用する、最小限の権限が付与されたアカウント。このアカウントはロック解除されたままにする必要があります。
  • APEX_PUBLIC_ROUTER - この最小限の権限が付与されたアカウントは、簡易URLを解決するためにORDS RESTモジュールに使用されます。これは、パスワードのないスキーマのみのアカウントであり、ロック解除されたままにする必要があります。

RESTful Webサービスを構成した場合、次の追加アカウントが作成されます。

  • APEX_REST_PUBLIC_USER - APEXに格納されているRESTfulサービスの定義を呼び出す際に使用されるアカウント。
  • APEX_LISTENER - APEXに格納されているRESTfulサービスの定義を照会するために使用されるアカウント。

以前のリリースからアップグレードする場合は、FLOWS_FILESAPEX_PUBLIC_USERおよびAPEX_PUBLIC_ROUTERデータベース・アカウントがすでに存在する可能性があります。

参照:

6.3.2 インスタンス管理アカウントの作成または更新

インスタンス管理者アカウントを作成または更新する方法を学習します。

この項では、インスタンス管理者アカウントを作成または更新する方法を説明します。

ヒント:

Oracle APEXの以前のリリースからアップグレードする場合は、この項をスキップしてください。アップグレード・シナリオでは、インスタンス管理者のアカウントとパスワードは保存され、前のリリースから継承されます。

6.3.2.1 インスタンス管理者の概要

インスタンス管理者は、ワークスペースのプロビジョニング、機能とインスタンス設定の構成、セキュリティの管理など、Oracle APEXインスタンス全体の管理を担当するスーパーユーザーです。

管理タスクを実行するために、インスタンス管理者がOracle APEX管理サービス・アプリケーションにサインインします。

参照:

『Oracle APEX管理ガイド』Oracle APEX管理サービスに関する項

6.3.2.2 apxchpwd.sqlについて

apxchpwd.sqlスクリプトを実行すると、インスタンス管理者アカウントを作成または更新できます。

ノート:

apxchpwd.sqlスクリプトは、Oracle Autonomous Database ServerlessおよびOracle APEXアプリケーション開発(APEXサービス)ではサポートされていません。

次のシナリオでは、apxchpwd.sqlスクリプトを実行する必要があります。

  • Oracle APEXの新規インストール - apxchpwd.sqlを実行して、インスタンス管理者アカウントとパスワードを作成します。
  • ランタイム環境の開発環境への変換 - apxchpwd.sqlを実行して、インスタンス管理者アカウント・パスワードを変更します。
  • インスタンス管理者パスワードの変更 - apxchpwd.sqlを実行して、既存のインスタンス管理者アカウントのパスワードを変更します。
  • インスタンス管理者アカウントのロック解除 - apxchpwd.sqlを実行して、既存のインスタンス管理者アカウントのロックを解除します。

ヒント:

Oracle APEXの前のリリースからアップグレードする場合、apxchpwd.sqlを実行する必要はありません。アップグレード・シナリオでは、インスタンス管理者のアカウントとパスワードは保存され、前のリリースから継承されます。

6.3.2.3 apxchpwd.sqlの実行

apxchpwd.sqlスクリプトを実行して、インスタンス管理者アカウントを作成、更新します。

インスタンス管理者アカウントを作成または更新するには:

  1. 作業ディレクトリを、インストール・ソフトウェアを解凍したapexディレクトリに変更します。
  2. SQLclを起動し、Oracle APEXがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。たとえば:
    • Windowsの場合:

      SYSTEM_DRIVE:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
    • UNIXおよびLinuxの場合:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
  3. apxchpwd.sqlを実行します。たとえば:
    @apxchpwd.sql
    

    画面に表示されるステップに従います。ユーザー名、パスワードおよび電子メール・アドレスを入力するように求められます。アカウントのユーザー名が存在しない場合は作成されます。

参照:

『Oracle SQLclユーザーズ・ガイド』SQLclの操作に関する項

6.3.3 プロセスの再起動

インストールの開始前に停止したプロセスを再起動します。

Oracle APEXをインストールした後で、インストールの開始前に停止したプロセスを再起動する必要があります。

6.3.4 APEX_PUBLIC_USERアカウントの構成

Oracle APEXを適切に動作させるには、APEX_PUBLIC_USERアカウントの正しい構成が重要です。

6.3.4.1 APEX_PUBLIC_USERアカウントについて

APEX_PUBLIC_USERアカウントは、新しいOracle APEXのインストール時にランダムなパスワードとともに作成されます。

新しいインストール環境でデータベース・アクセス記述子(DAD)を構成するには、まず、このアカウントのパスワードを変更する必要があります。

6.3.4.2 APEX_PUBLIC_USERアカウントのロック解除

SQL文を実行してAPEX_PUBLIC_USERアカウントのロックを解除します。

ヒント:

以前のリリースのOracle APEXからアップグレードする場合、このステップは不要です。

APEX_PUBLIC_USERアカウントをロック解除するには:

  1. SQLclを起動し、Oracle APEXがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。Oracle APEXがCDBにインストールされた場合、CDB$ROOTに接続していることを確認してください。たとえば:
    • Windowsの場合:

      SYSTEM_DRIVE:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
    • UNIXおよびLinuxの場合:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
  2. 次の文を実行します。
    ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
    

6.3.4.3 APEX_PUBLIC_USERアカウントのパスワードの変更

SQL文を実行してAPEX_PUBLIC_USERアカウントのパスワードを変更します。

ヒント:

以前のリリースのOracle APEXからアップグレードする場合、このステップは不要です。

APEX_PUBLIC_USERアカウントのパスワードを変更するには:

  1. SQLclを起動し、Oracle APEXがインストールされているデータベースに、SYSDBAロールが指定されているSYSとして接続します。Oracle APEXがCDBにインストールされた場合、CDB$ROOTに接続していることを確認してください。たとえば:
    • Windowsの場合:

      SYSTEM_DRIVE:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
    • UNIXおよびLinuxの場合:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
  2. 次の文を実行します。
    ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password
    

    new_passwordは、APEX_PUBLIC_USERに設定する新しいパスワードです。後続のセクションでDADを作成する場合に、このパスワードを使用します。

6.3.4.4 Oracle Databaseでのパスワードの有効期限について

APEX_PUBLIC_USERを変更してPASSWORD_LIFE_TIMEパラメータを無期限に設定することで、パスワードの期限切れを防ぐことができます。これを行うには、PASSWORD_LIFE_TIMEパラメータが無制限に設定されている別のプロファイルを作成し、APEX_PUBLIC_USERアカウントを変更して、これを新しいプロファイルに割り当てます。

Oracle Databaseのデフォルト・プロファイルでは、パラメータPASSWORD_LIFE_TIMEは180に設定されています。Oracle DatabaseおよびOracle APEXを使用している場合、これによりAPEX_PUBLIC_USERのパスワードは180日間で期限切れになります。このため、パスワードを変更するまで、APEXインスタンスが使用できなくなります。

参照:

プロファイルの作成およびデータベース・ユーザーへの割当ての詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください

6.3.5 APEX_PUBLIC_ROUTERアカウントの構成

APEX_PUBLIC_ROUTERアカウントは、ORDS RESTモジュールがわかりやすいURLを解決するために使用する最小限の権限が付与されたアカウントです。

Oracle Databaseのユーザーごとのセッションについて

高度にアクティブなシステムでは、APEX_PUBLIC_ROUTERがデータベースで許可されているセッションの最大数に達すると、「HTTP 503: サービス使用不可」エラーが発生します。SESSIONS_PER_USERパラメータを"unlimited"に設定するには、APEX_PUBLIC_ROUTERを変更してセッションの最大数に対する制限を削除します。

SESSIONS_PER_USERパラメータが"unlimited"に設定されている別のプロファイルを作成し、APEX_PUBLIC_ROUTERアカウントを変更して、それを新しいプロファイルに割り当てます。

この動作は、Oracle REST Data Services (ORDS)のバージョンによって異なります。ORDS 24.x以降では、/r/パスを参照するすべてのGETリクエストでORDS RESTモジュールが使用されます。

Oracle APEXの後にORDSが更新された場合は、sys.validate_apexを実行する必要があります。

各ORDSアップグレード後、またはAPEXのインストールにORDSがインストールされている場合は、sysとして次を実行する必要があります:

-- Run as SYS
set serveroutput on
begin
    sys.validate_apex;
end;
/

参照: