Access Oracle Apex from remote machine

依然范特西╮ 提交于 2019-12-11 05:23:30

问题


Hi all I have successfully installed Oracle 11g Express addition on a Linux VM (google cloud compute) I have sqlplus working and I can query data. The listener is also working.

But as there is no GUI with Linux servers I cannot try local host and external machines have the connection refused.

My Questions are:

1) Does Apex come pre-installed on Oracle XE it used to but not mentioned anywhere.

2) if the ip address of the server is 123.123.123 what url would I use to get to apex from a remote machine? I have tried

  • http://123.123.123:8080/apex/
  • http://123.123.123/apex/
  • https://123.123.123:8080/apex/

3) How can I tell if it is the server or Oracle refusing the connection?

Firewall

 $ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 10.128.0.3:50776        169.254.169.254:80      ESTABLISHED
tcp        0      0 10.128.0.3:43548        10.128.0.3:1521         ESTABLISHED
tcp        0      0 10.128.0.3:50722        169.254.169.254:80      CLOSE_WAIT 
tcp        0      0 10.128.0.3:50814        169.254.169.254:80      ESTABLISHED
tcp        0      0 10.128.0.3:50774        169.254.169.254:80      ESTABLISHED
tcp        0     64 10.128.0.3:22           74.125.41.105:38312     ESTABLISHED
tcp6       0      0 :::40070                :::*                    LISTEN     
tcp6       0      0 :::8080                 :::*                    LISTEN     
tcp6       0      0 :::1521                 :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
tcp6       0      0 10.128.0.3:1521         10.128.0.3:43548        ESTABLISHED

Listener

 $ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 22-AUG-2017 02:59:51

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date                22-AUG-2017 02:00:17
Uptime                    0 days 0 hr. 59 min. 33 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/centossmallblockpro/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centossmallblockpro.c.sincere-destiny-176110.internal)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centossmallblockpro.c.sincere-destiny-176110.internal)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

SQLPLUS working

    sqlplus

SQL*Plus: Release 11.2.0.2.0 Production on Tue Aug 22 03:03:51 2017

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: system
Enter password: 

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> select * from dual;

D
-
X

.

Telnet XX.XXX.XXX.XX 8080

Telnet: Unable to connect to remote host: Connection timed out

回答1:


1) Oracle XE (11g) comes with APEX version 3.2 I think. This is a very old APEX release. Follow the instructions how to drop this old version and get the latest from otn.oracle.com. Latest version should also work with 11g XE.

2) Tunnel

You can create a ssh-tunnel from your desktop machine to the end-point server where your services are running. Now you can access services on remote machine from your desktop environment aka. sqlplus, SQL Developer, Firefox, etc..

# Access Your Database Remotely Through an SSH Tunnel
# ssh -L [local port]:[database host]:[remote port] [username]@[remote host]
# console 1: 9998 is just an arbitrary port > 1024. Can be anything.
ssh -N -L 9998:10.128.0.3:1521 -i ~/.ssh/id_rsa user@35.184.136.98
# console 2:
sqlplus user/pwd@localhost:9998/XE 
# firefox:
http://localhost:9998/apex 



回答2:


Great answers to 1 and 2 from Bjarte but the actual problem was not the Linux firewall but the Compute engine firewall.

I didn't know it even existed, when you select the check box to open Http it created a rule to TCP:80 but I needed TCP:8080.

Here is the article that solved it for me cant open port on google compute engine ...



来源:https://stackoverflow.com/questions/45808308/access-oracle-apex-from-remote-machine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!