- Oracle APEX 5.1.0 – 5.1.4
- Oracle Database 12.1 – 18.4(Oracle 18c XEにインストール)
- Oracle Linux 7
- 2018/11/13: 記事公開
Linuxでのインストール記事ですが、Windowsでも参考になるかと思います。
弊社では、Oracle XE 環境でもOracle APEX のインストールや技術サポートの相談について承っております。ご相談頂く場合は、お問合せよりお気軽にお問い合わせください。
記事目次
Oracle APEXの概要について
以降2018/11/13現在、Oracle Cloudと同一バージョンとなるapex_5.1.4.zipを対象として説明していきます。Oracle APEX 18.1についても、ユーザ名をAPEX_050100をAPEX_180100と読み替えていただければインストール可能です。
非CDB環境や、Oracle APEXの概要については、以下のページをご参照ください。
Oracle APEXのインストール(Oracle Application Express)(非コンテナ環境)
Oracle APEXの最新版
以下のURLから最新版のダウンロード又はクラウドサービスとしての利用が可能です。表示してすぐの”Get Started for Free”を押したのち、少し下にある”Download Oracle APEX”のボタンからダウンロードページへ行けます。
https://apex.oracle.com/jp
上記遷移先のダウンロードページへのリンクについても記載しておきます。過去バージョンについては、Prior Release Archivesからダウンロードできます。
https://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html
Oracle Database 18c XE について
Oracle Database 18c XEについては、以下にインストールの記事を記載しています。ご参考ください。
Oracle Database 18c XE インストールと制限
バイナリの展開とインストール
ダウンロードしたapex_5.1.4.zipを展開し、インストールします。PDBのみのインストールを行います。CDBにもインストールを行う場合、CDB全体でバージョンを一致させる必要があることに注意してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# mv -i apex_5.1.4.zip ~oracle/ # chown oracle:oinstall ~oracle/apex_5.1.4.zip $ su - oracle $ ls -l apex_5.1.4.zip $ unzip apex_5.1.4.zip $ cd apex $ export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE $ export ORACLE_SID=XE $ export PATH=$ORACLE_HOME/bin:$PATH $ sqlplus / as sysdba SQL> -- 元のパラメータが指定する値より大きい場合は変更しないでください。 SQL> show parameter JOB_QUEUE_PROCESSES SQL> alter system set JOB_QUEUE_PROCESSES = 20 scope=both; SQL> show parameter SHARED_SERVERS SQL> alter system set SHARED_SERVERS = 5 scope=both; SQL> alter system set MAX_SHARED_SERVERS = 5 scope=both; SQL> -- 表領域についても確認しておきます。 SQL> set pagesize 1000 line 120 trim on SQL> select CON_ID, TABLESPACE_NAME 2 , MAX_SIZE/1024/1024 as MAX_MB, STATUS, ENCRYPTED, COMPRESS_FOR 3 from cdb_tablespaces 4 order by 1,2; CON_ID TABLESPACE_NAME MAX_MB STATUS ENC COMPRESS_FOR ---------- ------------------------------ ---------- --------- --- ------------------------------ 1 SYSAUX 2048 ONLINE NO 1 SYSTEM 2048 ONLINE NO 1 TEMP 2048 ONLINE NO 1 UNDOTBS1 2048 ONLINE NO 1 USERS 2048 ONLINE NO 3 SYSAUX 2048 ONLINE NO 3 SYSTEM 2048 ONLINE NO 3 TEMP 2048 ONLINE NO 3 UNDOTBS1 2048 ONLINE NO 3 USERS 2048 ONLINE NO 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; SQL> -- 表領域については変更可能です。アプリケーションのメタデータ、ユーザーデータ等が入ります。SYSTEM表領域は避けてください。 SQL> @apexins.sql USERS USERS TEMP /i/ -- 以下のようなメッセージが出てきたらインストール成功です。 Thank you for installing Oracle Application Express 5.1.4.00.08 Oracle Application Express is installed in the APEX_050100 schema. The structure of the link to the Application Express administration services is as follows: http://host:port/pls/apex/apex_admin (Oracle HTTP Server with mod_plsql) http://host:port/apex/apex_admin (Oracle XML DB HTTP listener with the embedded PL/SQL gateway) http://host:port/apex/apex_admin (Oracle REST Data Services) The structure of the link to the Application Express development interface is as follows: http://host:port/pls/apex (Oracle HTTP Server with mod_plsql) http://host:port/apex (Oracle XML DB HTTP listener with the embedded PL/SQL gateway) http://host:port/apex (Oracle REST Data Services) |
Oracle APEXの接続構成
埋込みPL/SQLゲートウェイ構成
埋込みPL/SQLゲートウェイを構成します。
|
1 2 3 4 5 6 7 8 9 10 |
SQL> -- 一度再接続します。 SQL> exit $ sqlplus / as sysdba SQL> -- ANONYMOUSのアカウントをアンロックします。CDBおよびPDB両方で行ってください。(アンロックは構成後でも問題ありません) SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK; SQL> alter session set container = XEPDB1; SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK; SQL> -- apex_epg_config.sql構成スクリプトを実行します。 SQL> -- この実行により埋込みPL/SQLゲートウェイが構成されます。 SQL> @apex_epg_config.sql /home/oracle |
ユーザーの設定変更
構成したユーザをAPEXが利用可能なように変更します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
SQL> alter session set container = XEPDB1; SQL> -- APEX_PUBLIC_USER をログイン可能として構成します。パスワードは何にしても大丈夫です。 SQL> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY &inputPassword. ACCOUNT UNLOCK; SQL> set pages 1000 line 120 trim on SQL> col USERNAME for a30 SQL> select USERNAME, ACCOUNT_STATUS from DBA_USERS 2 where username = 'ANONYMOUS' or username like 'APEX%' order by 1; USERNAME ACCOUNT_STATUS ------------------------------ -------------------------------- ANONYMOUS EXPIRED APEX_050100 EXPIRED & LOCKED APEX_INSTANCE_ADMIN_USER EXPIRED APEX_PUBLIC_USER OPEN SQL> -- デフォルトで180日でパスワードの期限切れとなります。必要な場合は期限の変更をしてください。 SQL> alter profile DEFAULT limit password_life_time UNLIMITED; SQL> col PROFILE for a20 SQL> col RESOURCE_NAME for a25 SQL> col LIMIT for a30 SQL> select PROFILE, RESOURCE_TYPE, RESOURCE_NAME, LIMIT from DBA_PROFILES 2 where RESOURCE_NAME = 'PASSWORD_LIFE_TIME' order by 1,2,3; PROFILE RESOURCE RESOURCE_NAME LIMIT -------------------- -------- ------------------------- ------------------------------ DEFAULT PASSWORD PASSWORD_LIFE_TIME UNLIMITED ORA_STIG_PROFILE PASSWORD PASSWORD_LIFE_TIME 60 |
リスニングポートの設定
HTTPをリスニングするポートを指定します。Oracle Database 18c XEでは、デフォルトでEM Express用にCDB$ROOTにて、5500番が使用されています。
ここでは例としてPDBに5501番を設定しています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SQL> alter session set container = XEPDB1; SQL> select DBMS_XDB_CONFIG.GETHTTPPORT FROM DUAL; GETHTTPPORT ----------- 0 SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT FROM DUAL; GETHTTPSPORT ------------ 0 SQL> EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5501); SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT FROM DUAL; GETHTTPSPORT ------------ 5501 |
リモート接続のためのローカル以外のポート許可
必要な場合は、以下のパッケージにてローカル以外でのリスニングの許可を行ってください。
設定値FALSEは、ローカルホストを含む他のインターフェースについても同時にリスニングします。TRUEの場合はローカルホスト(127.0.0.1)のみリスニングします。
|
1 |
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); |
以下のSQLを実行し、「Host : localhost」と出ている場合は、localhostのみでリスニングされる設定となっています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SQL> alter session set container = XEPDB1; SQL> set serveroutput on SQL> declare 2 v_port number; 3 v_protocol number; 4 v_host varchar2(50); 5 begin 6 dbms_xdb.getListenerEndPoint(endpoint => 1,host => v_host,port => v_port,protocol => v_protocol); 7 dbms_output.put_line('Host :'||v_host); 8 dbms_output.put_line('Port :'||v_port); 9 dbms_output.put_line('Protocol:'||v_protocol); 10 end; 11 / Host : Port :0 Protocol:1 |
ACL(アクセスコントロールリスト)の許可
補足事項となりますが、PDF印刷が出来ないなどサーバプロセスでの接続エラーが出る場合、ACLで拒否されている可能性があります。その場合は、アクセスを許可をします。
ACLでの許可が必要な場合は、PDF印刷、メール送信やWebサービスの利用を行う場合です。外部(プリンタサーバ等)との連携が必要ない場合は不要な設定です。接続する各サーバがローカルで動作する場合も必要となります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
SQL> alter session set container = XEPDB1; SQL> -- <MailServeHost>の追加例です。schema_nameは、APEX_050100スキーマ以外にも、ワークスペースオーナーの登録が必要です。ロールでの指定も可能です。 SQL> -- xs$name_list('smtp') の代わりに xs$name_list('connect') を指定すると、http等も許可されます。詳しくはマニュアルを参照してください。 SQL> declare 2 host_name varchar2(100) := '<MailServeHost>'; 3 schema_name varchar2(100) := 'APEX_050100'; 4 begin 5 dbms_network_acl_admin.append_host_ace ( 6 host => host_name, 7 lower_port => 25, 8 upper_port => 25, 9 ace => xs$ace_type(privilege_list => xs$name_list('smtp'), 10 granted => TRUE, -- TRUE:許可 FALSE:拒否 11 principal_name => schema_name, 12 principal_type => xs_acl.ptype_db)); 13 end; 14 / SQL> -- commitしないと動作しません。 SQL> commit; SQL> set pages 1000 line 120 SQL> col NAME for a50 SQL> col SECURITY_CLASS for a15 SQL> col PARENT_ACL for a10 SQL> col DESCRIPTION for a40 SQL> select NAME, SECURITY_CLASS, PARENT_ACL, DESCRIPTION from DBA_XS_ACLS 2 order by 1; NAME SECURITY_CLASS PARENT_ACL DESCRIPTION -------------------------------------------------- --------------- ---------- ---------------------------------------- NETWORK_ACL_7A7BF4A0B0AA72C0E053973410A08847 NETWORK_SC ACL for host <MailServeHost>:25-25 SQL> col ACL for a50 SQL> col ACE_ORDER for 999999999 SQL> col PRINCIPAL for a25 SQL> col PRIVILEGE for a25 SQL> select ACL, ACE_ORDER, GRANT_TYPE, PRINCIPAL, PRIVILEGE from DBA_XS_ACES 2 order by 1,2; ACL ACE_ORDER GRANT PRINCIPAL PRIVILEGE -------------------------------------------------- ---------- ----- ------------------------- ------------------------- NETWORK_ACL_7A7BF4A0B0AA72C0E053973410A08847 1 GRANT APEX_050100 SMTP SQL> exit |
リスナーの確認
HTTPをリスニングしているか確認します。
|
1 2 3 4 |
$ lsnrctl status LISTENER -- ※以下のような記載があることを確認 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<HTTPのリスニングホスト名>)(PORT=5501))(Security=(my_wallet_directory=/opt/oracle/admin/XE/xdb_wallet))(Presentation=HTTP)(Session=RAW)) |
“HOST=”がAPEXへ接続する時に、ブラウザのURLに指定するIPアドレスとなります。”PORT=”がポート番号です。
前の手順で設定した5501番がリスニングされていることを確認してください。
ADMINユーザのパスワード変更
ADMIN(APEXのログインユーザ)のパスワード変更をします。初回ログイン時に利用され、ログイン時にパスワード変更が求められます。
|
1 2 |
SQL> alter session set container = XEPDB1; SQL> @apxchpwd.sql |
Oracle APEXへの接続
まずは以下のURLでADMINパスワードの変更を行ってください。
https://[DBサーバのIP]:5501/apex/apex_admin
パスワードは数字、大文字、記号(指定されたもの)を必ず1つは入れないとNGとなりますので、ご注意ください。
以下のURLからログインできるようになります(パスワード変更後は勝手に移動します)。
https://[DBサーバのIP]:5501/apex
Oracle APEXの日本語化
日本語化用のスクリプトを実行します。ウェブブラウザでのサインインの時に日本語か英語かを選択できるようになります。
NLS_LANG=Japanese_Japan.AL32UTF8を設定しないとエラーとなる点に注意してください。
|
1 2 3 4 5 6 7 |
$ cd /home/oracle/apex/builder/ja/ $ export NLS_LANG=Japanese_Japan.AL32UTF8 $ sqlplus / as sysdba SQL> -- 【注意】必ずNLS_LANG=Japanese_Japan.AL32UTF8を設定してから実行 SQL> alter session set container = XEPDB1; SQL> alter session set current_schema = APEX_050100; SQL> @load_ja.sql |
ログイン画面で選択が可能になります。(Sign inボタンの下にあります。)

ログイン後はちょっとわかりづらいですが、トップページの左下の方で言語の選択が出来ます。

インストールファイルの移動
インストールしたapexのディレクトリは、設定変更時や、言語の追加、パスワードの再設定などで使用します。
ORACLE_HOME配下へ移動しておくと便利です。
|
1 2 |
$ mv -i ~oracle/apex ${ORACLE_HOME}/apex_5.1.4 $ ls -ld ${ORACLE_HOME}/apex_5.1.4 |


