Sabemos que os que desenvolvem em PHP no Linux, geralmente utilizam ambiente local de forma manual, instalar cada pacote separado: Apache, PHP e MySQL, mas precisa incluir a extensão Oracle no PHP, então, o objetivo deste howto é explicar a integração com SGBD Oracle
O presente howto explicará os procedimentos de integração com Oracle Client no PHP em seu ambiente de desenvolvimento local na distribuição Linux Debian e derivados.
Segue os procedimentos:1. Atualizar o sistema e demais pacotes necessários
# apt update
# apt install apache2 php7.3-cli php7.3-common php7.3-curl php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-xml php7.3-fpm php7.3-dev
2. Download do pacote Oracle Client
Pacotes oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm, oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm , oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
PS: Até a data de publicação deste howto a versão corrente do Oracle Cient é 19.3, então no geral basta substituir a versão que for a mais recente.
3. Instalar o pacote alien para converter o .rpm to .deb
$ sudo apt install alien
4. Converter os arquivos .rpm em .deb
$ sudo alien -i oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm
$ sudo alien -i oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm
$ sudo alien -i oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
5. Instalar o pacote libaio1
$ sudo apt install libaio1
6. Criar o arquivo oracle.conf no diretório /etc/ld.so.conf.d/ e dentro do arquivo adicionar
/usr/lib/oracle/19.3/client64/lib
$ sudo vim /etc/ld.so.conf.d/oracle.conf
7. Atualizar as bibliotecas compartilhadas do sistema
$ sudo ldconfig
8. Exportar a variável ORACLE_HOME
$ export ORACLE_HOME=/usr/lib/oracle/19.3/client64/
9. Download do código fonte do oci8 e extrair os arquivos e fazer a compilação.
$ sudo pecl download OCI8
$ tar zxvf oci8-2.1.4.tgz
$ cd oci8-2.1.4/
$ phpize
$ ./configure --with-oci8=instantclient,/usr/lib/oracle/19.3/client64/lib
$ sudo make install
10. Habilitar o oci8.ini no diretório de módulos do PHP /etc/php/7.2/mods-available/ e criar um link simbólico /etc/php/7.2/apache2/conf.d
$ sudo vim /etc/php/7.2/mods-available/oci8.ini
Adicionar no arquivo oci8.ini
extension=oci8.so extension=pdo_oci.so
$ sudo ln -s /etc/php/7.2/mods-available/oci8.ini /etc/php/7.2/apache2/conf.d/oci8.ini
11. Faça o download em formato ZIP do código fonte conforme a versão do PHP que foi instalado diretamente no Github https://github.com/php/php-src/tree/PHP-7.3 . Esse passo é para conseguimos a versão correta da lib PDO_OCI.
12. Extrair e compilar a lib PDO_OCI
$ unzip php-src-PHP-7.3.zip
$ cd php-src-PHP-7.3 /ext/pdo_oci/
$ phpize
$ ./configure --with-pdo-oci=instantclient,/usr,19.3
$ sudo make install
13. Habilitar a lib pdo_oci gerada no PHP
$ sudo vim /etc/php/7.3/mods-available/pdo_oci.ini
Adicione o conteúdo abaixo
extension=pdo_oci.so
$ cd /etc/php/7.3/apache2/conf.d
$ sudo ln -s /etc/php/7.3/mods-available/pdo_oci.ini pdo_oci.ini
14. Reiniciar o Apache
$ sudo service apache2 restart
15. Testar com a função phpinfo() no info.php se a extensão Oracle foi habilitada
$ sudo vim /var/www/html/info.php
< ?php
phpinfo();
Confere os screenshots abaixo:
Se exibir como no screenshot, então a extensão Oracle no PHP foi habilitada corretamente.
13. Testar conexão com banco de dados Oracle no PHP
Agora para confirmar, teste a conexão com Oracle no script PHP testeconectaoracle.php
< ?php
try{
$conn = new PDO('oci:dbname=//127.0.0.1:1521/testedb; 'oracleuser','password');
if($conn) {
echo "database conectado";
}
}catch (PDOException $e){
// report error message
echo $e->getMessage();
}
No browser http://localhost/testeconectaoracle.php
Com isso, irá aparecer a mensagem "database conectado" , se as credencias do usuário, password e banco estiverem corretas.
Feito!
Nenhum comentário:
Postar um comentário