Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Conectando Apache/PHP e OCI Oracle
Linux user
Publicado por Avelino Ferreira Gomes Filho em 20/08/2006

Login: avelinoferreira, 13143 pontos
[ Hits: 12630 ]

Conectando Apache/PHP e OCI Oracle

Este exemplo utilizou:
  • Apache 2.2.0;
  • PHP 5.1.2;
  • Oracle Instant Client 10.2 acessando o banco de dados Oracle 10g.

Faça o download dos programas:
Descompacte o Apache na pasta /usr/local/. A descompactação deverá gerar o diretório /usr/local/httpd-x.x.x/ (onde x.x.x é a versão do Apache).

Descompacte o PHP na pasta /usr/local/. A descompactação deverá gerar o diretório /usr/local/php-x.x.x/ (onde x.x.x é a versão do PHP).

Descompacte os arquivos Oracle na pasta /usr/. A descompactação deverá gerar o diretório /usr/instantclient_x_x/. (onde x.x é a versão do Instant Client).

Entre no diretório do Oracle Instante Client. Digite o comando:

# export LD_LIBRARY_PATH=/usr/instantclient_x_x

(para tornar esse comando definitivo, adicione-o no arquivo ~/.bashrc ou no /etc/profile. Exemplo:

# echo export LD_LIBRARY_PATH=/usr/instantclient_x_x >> ~/.bashrc

Faça um teste no banco de dados Oracle utilizando o sqlplus. Sintaxe:

./sqlplus /@///

Deverá aparecer a mensagem de bem vindo do Oracle e o prompt do sql plus. Caso não apareça, verifique se a variável de ambiente $LD_LIBRARY_PATH está apontando para o diretório raiz do instantclient e os dados da conexão estão corretos.

Execute alguns testes no seu banco de dados (SELECTS de preferência).

Digite:

# ln libclntsh.so.10.1 libclntsh.so

para criar um link do libclntsh.so.10.1. Esse link será utilizado na instalação do PHP. Atenção: Não crie link simbólico.

Entre no diretório de instalação do Apache: /usr/local/httpd-x.x.x

Instalação do Apache:

# ./configure --prefix=/usr/local/apache2
# make
# make install
(Instala o apache no diretório /usr/local/apache2)

Digite:

# /usr/local/apache2/bin/apachectl start

(Inicia o servidor Apache)

Entre no browser e digite "http://localhost" (deverá aparecer uma mensagem de boas vindas ou o simples "It Works!" na versão 2.2).

Digite:

# /usr/local/apache2/bin/apachectl stop

(para o servidor Apache)

Entre no diretório de instalação do PHP: /usr/local/php-x.x.x.

Digite:

# ./configure \
--with-oci8=instantclient,/usr/instantclient_x_x \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-sigchild \
--with-config-file-path=/usr/local/apache2/conf


ATENÇÃO: Essa é a configuração mínima para utilização do Oracle e PHP. Você pode desejar especificar mais parâmetros como MySQL e etc.

# make
# make install


Edite o arquivo /usr/local/apache2/conf/httpd.conf. Procure pela instrução: AddType application/ (Caso não exista, pule esse passo).

Abaixo da instrução já existente digite:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Entre no diretório bin do apache: /usr/local/apache2/bin. Digite:

# ./apachectl start

Crie um arquivo PHP (teste.php) no diretório /usr/local/apache2/htdocs/ com o seguinte conteúdo:

phpinfo();
?>

Procure por: OCI8 Support.

Faça os seus testes e boa sorte.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada FreeBSD 7.0 CURRENT para STABLE de forma simples
   Dica Linux recomendada Utilizando "URL Amigável" no Apache
   Dica Linux recomendada Onde baixar Linux
   Dica Linux recomendada Geany - Ferramenta de qualidade para desenvolvimento
   Dica Linux recomendada Instalar Firefox 3.6 e Thunderbird 3.0 no Ubuntu 9.10

Comentários
[1] Comentário enviado por djcelsodub em 01/11/2010 - 11:00h:

Bom dia Avelino...

Muito boa sua dica...
Porém estou tendo um problema...

Utilizo Red Hat EL5 5.4... tudo funciona muito bem, o apache sobe corretamente, no phpinfo aparece o oci8 carregado... mas qdo acesso o sistema dá erro de conexão com o BD.
restarto o apache com 'service httpd restart' e a situação permanece.
Isso só é resolvido quando carrego o apache desta forma: '/etc/init.d/httpd stop' e em seguida 'start', então a conexão consegue ser realizada.

Procurei na net mas não encontrei nada a respeito até o momento. Tem alguma idéia do que possa ser?

obrigado.


Celso Faria
Americana/SP


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.