Instalar o APEX em um banco ORACLE

Nos temos a tarefa de instalar o APEX em um banco oracle standard ou enterprise.
Usamos no dia a dia o APACHE para as operacoes corriqueiras para internet. Usando o banco para instalar os pacotes do APEX e o listener para que possamos ativar o acesso via protocolo HTTP para acessar a funcionalidade do APEX via browser local na maquina.

Vamos a instalacao:

Verifique se o seu banco contem a OPCAO de XML. Se caso nao existir, instale seguindo os passos referente ao link:

http://maxoracle.blogspot.com/2008/09/instalando-o-xml-no-banco-oracle.html


Aqui demonstraremos como instalar no WINDOWS, para proceder em linux somente substituia a pasta onde ficara o apex pela de sua preferencia.

Primeiro descompacte o arquivo, apex_3.1.1 na pasta c:\apex

conecte-se ao ORACLE, crie a tablespace abaixo.

sqlplus / as sysdba

CREATE TABLESPACE APEX datafile 'C:\oraclexe\oradata\XE\APEX.dbf'
SIZE 500M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE APEX_FILES datafile 'C:\oraclexe\oradata\XE\APEX_FILES.dbf'
SIZE 100M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

Va ate a pasta que voce descompactou o APEX

cd \apex

Rode o script para criar o APEX dentro do sqlplus.

sqlplus / as sysdba
@apexins htmldb APEX APEX_FILES TEMP /i/

se acontecer problemas, apague o usuario e tente novamente.

DROP USER FLOWS_030000 CASCADE;

Execute o comando abaixo, que carrega as imagens dentro do banco de dados, para sejam mostradas dentro do aplicativo APEX quando voce estiver trabalhando com ele.

@apxldimg.sql C:\Apex

Se solicitar para informar novamente ou paralisar em um prompt, informe
c:\apex/images/

Geralmente identico ao que ele proprio informou na etapa de construcao do comando, portanto recomendo copiar o caminho montado, a partir da instrucao que vai ser mostrada na execucao do script.


Troque a senha, para uma de sua preferencia.

@apxxepwd.sql suasenha

Ainda dentro do sqlplus execute:

call dbms_xdb.setHttpPort(80);
call dbms_xdb.setFtpPort(21);
ALTER system register;
@apex_epg_config.sql  /i

Se ainda persistir problemas veja se exitem objetos invalidos recompile use utlrp.sql

Isso ira habilitar o seu listener para escutar as requisicoes em HTTP e FTP.

saia do sqlplus, faca o teste do listener.

lsnrctl start
lsnrctl services

c:\Documents and Settings\oracle>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 18-DEC-2006 14:28:05

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
Start Date 18-DEC-2006 13:24:27
Uptime 0 days 1 hr. 3 min. 38 sec
Trace Level off
Security ON: Password or Local OS Authentication
SNMP OFF
Listener Parameter File F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.o
ra
Listener Log File F:\oracle\product\10.2.0\db_1\network\log\listener.log

Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=80))(Presentation=HT
TP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=21))(Presentation=FT
P)(Session=RAW))
Services Summary…
Service "LAB" has 2 instance(s).
Instance "LAB", status UNKNOWN, has 1 handler(s) for this service…
Instance "lab", status READY, has 1 handler(s) for this service…
Service "labXDB" has 1 instance(s).
Instance "lab", status READY, has 1 handler(s) for this service…
Service "lab_XPT" has 1 instance(s).
Instance "lab", status READY, has 1 handler(s) for this service…
The command completed successfully




Agora abra o browser, faca o teste:

http://NOMEDASUAMAQUINA/apex nao use o IP 127.0.0.1 da erro ao acessar via xmldb.

http://NOMEDASUAMAQUINA/apex/ e http://NOMEDASUAMAQUINA/apex/apex_admin.

Use as senhas abaixo

Workspace – internal
Username – Admin
Password – suasenha

Se ficar insistindo em pedir uma senha do usuario XDB, execute o script abaixo no sqlplus.

ALTER user anonymous account UNLOCK;
ALTER system SET shared_servers = 5;
ALTER system register;


EXEC DBMS_EPG.authorize_dad ( dad_name => 'APEX', user => 'ANONYMOUS' );

# Link de referencia:

http://www.pythian.com/news/2014/installing-apex-on-oracle-10gr2-on-mac-os-x-leopard-intel

DECLARE
configxml XMLType;
configxml2 XMLType;
BEGIN
-- Get the current configuration
configxml := DBMS_XDB.cfg_get();

-- Modify the configuration
SELECT INSERTCHILDXML(
configxml,
'/xdbconfig/sysconfig/protocolconfig/httpconfig',
'allow-repository-anonymous-access',
XMLType('<allow-repository-anonymous-access xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">true</allow-repository-anonymous-access>'),
'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"')
INTO configxml2 FROM DUAL;
-- Update the configuration to use the modified version
DBMS_XDB.cfg_update(configxml2);
END;
/




Se ocorrer que ja existe a entrada do anonymous execute o proximo script:


CONN sys/password AS SYSDBA

SET SERVEROUTPUT ON
DECLARE
l_configxml XMLTYPE;
l_value VARCHAR2(5) := 'true'; -- (true/false)
BEGIN
l_configxml := DBMS_XDB.cfg_get();

IF l_configxml.existsNode('/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access') = 0 THEN
-- Add missing element.
SELECT insertChildXML
(
l_configxml,
'/xdbconfig/sysconfig/protocolconfig/httpconfig',
'allow-repository-anonymous-access',
XMLType('' ||
l_value ||
'
'),
'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'
)
INTO l_configxml
FROM dual;

DBMS_OUTPUT.put_line('Element inserted.');
ELSE
-- Update existing element.
SELECT updateXML
(
DBMS_XDB.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access/text()',
l_value,
'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'
)
INTO l_configxml
FROM dual;

DBMS_OUTPUT.put_line('Element updated.');
END IF;

DBMS_XDB.cfg_update(l_configxml);
DBMS_XDB.cfg_refresh;
END;
/






# Apache - Se for configurar o plsql Gateway
@apex_epg_config.sql /u01/oracle/product/10.2.0/db_1.

# Enabling Oracle XML DB HTTP Server, shared servers and unlocking ANONYMOUS user :

call dbms_xdb.setHttpPort(8080);
alter system set shared_servers = 5;
alter system register;
alter user anonymous account unlock;



##########################################################
TRADUZIR O APEX PARA PORTUGUES BRASIL
##########################################################
Va ao diretorio de instalacao do APEX, localize o script, @load_pt_br.sql.
Se quiser carregar todas as traduções, execute o script @load_trans.sql.
Obrigado configurar a variavel de ambiente, nls_lang porque senao voce ira carregar bichinhos ao inves dos assentos.

No linux voce pode tentar rodar diretamente, ja fiz algumas vezes nao precisou
configurar a variavel mas o que esta no manual para o LINUX:
NLS_LANG=American_America.AL32UTF8
export NLS_LANG


O que consta no manaul para o windows é que esta abaixo,WINDOWS velho prompt:
set NLS_LANG=American_America.AL32UTF8
mesmo sendo portugues, deve se usar este caracter set.

Para o listener ouvir alem do 127.0.0.1 faça:

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);



cd C:\apex\builder\pt-br
sqlplus / as sysdba
ALTER SESSION SET CURRENT_SCHEMA = FLOWS_030100;
@load_pt-br.sql;
exit;



Tente novamente no browser. Neste ponto a APEX ja estara funcional.

Comentários

José Barro disse…
Não consigo instalar no vista o APEX pois me da erro ao mover as imagens. JÁ instalei o XML como indicado, o select mostra tudo conforme o documento. Mas ao executar este script:

Conectado a:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> declare
2 configxml xmltype;
3 configxml2 xmltype;
4 begin
5 configxml := dbms_xdb.cfg_get();
6
7 select insertchildxml

(configxml,'/xdbconfig/sysconfig/protocolconfig/httpco
nfig','allow-repository-anonymous-access',xmltype('true'),

'xmlns="http://xmlns.
oracle.com/xdb/xdbconfig.xsd"') into configxml2 from dual;
8
9 dbms_xdb.cfg_update(configxml2);
10 end;
11 /
declare
*
ERRO na linha 1:
ORA-31011: falha no parse XML
ORA-19202: Ocorreu um erro no processamento XML
LPX-00210: esperava '<' em vez de 't'
Error at line 1
ORA-06512: em "SYS.XMLTYPE", line 301
ORA-06512: em line 1
ORA-06512: em line 7

Que faço??

Desde já, muito obrigado.
André Rocha disse…
Ola José,

Quando esta se copiando o comando diretamente do site percebi que vem um caracter de aspas a mais fechando o comando.

É isso que você esta fazendo ? Recomendo copiar o comando diretamente do manual da instalaçao, quando você descompacta
o APEX é criado uma pasta DOC que tem um arquivo index.html e nele você encontrara estas etapas da instalação. Sugiro você seguir o manual de acordo com a versão que você está usando (esta ai de cima é a versao 3. Provavelmente se voce está instalando a versão 3.2 o comando é diferente.

Fique a vontade de fazer novas perguntas.
www.techmaxconsultoria.com.br disse…
Jose,

Ainda em tempo: O codigo gerou em HTML para postar a dica, assim o comando ficou errado. Estou acertando.

Andre