anúncios

sábado, 12 de setembro de 2020

Habilitando o Instant Client Oracle no PHP com CentOS

Ambiente PHP com MariaDB e OCI8 habilitado no CentOS

# yum update
# yum install epel-release -y
# yum install php php-cli php-pdo php-curl php-gd php-xml php-mbstring systemtap-sdt-devel php-pear php-devel mariadb-server make curl

Configuração de segurança do MySQL/MariaDB

# mysql_secure_installation

Logar no usuário administrador do MariaDB

# mysql -u root

Criar o banco de dados, usuário e permissão do usuário no MariaDB

MariaDB [(none)]> CREATE DATABASE ;
MariaDB [(none)]> CREATE USER 'usuario'@'127.0.0.1' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nomedb.* TO user@127.0.0.1;
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

Download do Instant Client Oracle.

Se a versão do Oracle for 10g ou 11g, faça o download da versão 11.2.x do Instant Client Oracle. Nesse post, foi instalado a versão 11.2.0.4.0-1.

Como essa versão não é atual, então precisará criar uma conta no site do Oracle para poder fazer o download pelo link mencionado.

Após de ter feito o download Instant Client Oracle (basic, devel, sqlplus), segue o procedimento para instalação.

# rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

# dnf install libnsl

Definição de variáveis de ambiente e adicionar no PATH

export LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib/"
export ORACLE="/usr/lib/oracle/11.2/client64/"
export PHP_DTRACE=yes
export PATH=$PATH:$LD_LIBRARY:$ORACLE:$PHP_DTRACE

Download OCI8

Acesse https://pecl.php.net/package/oci8 e faça o download do OCI8 e segue os procedimentos.

$ tar xzvf oci8-2.2.0.tgz
$ cd oci8-2.2.0/
$ phpize
$ ./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib/
$ make
# make install

Installing shared extensions: /usr/lib64/php/modules/

Criar o arquivo oci8.ini no /etc/php.d

# vim /etc/php.d/oci8.ini

Adicionar a linha abaixo

extension=oci8.so
# systemctl reload httpd

Verificar se o OCI8 foi habilitado no PHP

# php -i | grep oci8
/etc/php.d/oci8.ini
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

Inicialização dos serviços Apache (httpd), MariaDB (fork do MySQL)

# systemctl stop httpd
# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb

Liberar a porta 80 no firewall para o acesso no INPUT e FORWARD

# firewall-cmd --add-port=80/tcp --permanent

Teste básico

Testar com a função phpinfo() no info.php se a extensão OCI8 foi habilitada corretamente.

# vim /var/www/html/info.php
    <?php 
       phpinfo();

Confere o screenshot abaixo

Caso não exibir o OCI8 habilitado no phpinfo() e tenha feito a configuração conforme os procedimentos descritos de forma correta, então reinicie no comando
# reboot

Feito!

Nenhum comentário:

Postar um comentário