Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save viniciusmelocodes/72df6555a9479e0844263ce1855e02f3 to your computer and use it in GitHub Desktop.
Save viniciusmelocodes/72df6555a9479e0844263ce1855e02f3 to your computer and use it in GitHub Desktop.
Install OCI8 (Oracle) in Ubuntu 20 with PHP 7.4

Instalar OCI8 on Ubuntu 21.04 with PHP 8

Paso 1

Descargar Oracle Instant Client and SDK desde Oracle:

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Download files:

Basic Package (ZIP): instantclient-basic-linux.x64-21.x.zip

SDK Package (ZIP): instantclient-sdk-linux.x64-21.x.zip

** Notece que debe ser la version que este actualmente para su descarga

Paso 2

Crear un folder para Oracle Instant Client y server

    sudo mkdir /opt/oracle
    sudo mkdir /opt/oracle/21.x
    sudo mkdir /opt/oracle/21.x/client64

Paso 3

Extraer los archivos

    sudo cp instantclient-basic-linux.x64-21.x.zip /opt/oracle/21.x/client64
    sudo cp instantclient-sdk-linux.x64-21.x.zip /opt/oracle/21.x/client64

    cd /opt/oracle/21.x/client64

    sudo unzip instantclient-basic-linux.x64-21.x.zip
    sudo unzip instantclient-sdk-linux.x64-21.x.zip

    sudo mv instantclient_21_x lib

Paso 4

Crear link symbolico a la los archivos de Instant Client:

    cd /opt/oracle/21.x/client64/lib/    
    sudo ln -s libclntsh.so.21.x libclntsh.so (It may already exist, continue)
    sudo ln -s libocci.so.21.x libocci.so (It may already exist, continue)

Paso 5

Editar/Crear este archvo con el path a la libreria (para LDCONFIG):

	sudo echo /opt/oracle/21.x/client64/lib > /etc/ld.so.conf.d/oracle.conf

Paso 6

Actualizar Dynamic Linker

	ldconfig

Paso 7

Instalar php-dev php-pear build-essential y libaio1

	sudo apt-get install php-dev php-pear build-essential libaio1

Paso 8

Actualizar PECL e instalar OCI8 desde alli

	sudo pecl channel-update pecl.php.net

Instalar OCI8 desde PCEL (decide la version, por defecto instala la version que encuentre en el sistema, yo uso la 8)

    sudo pecl install oci8 (php 8)
    sudo pecl install oci8-2.2.0  (php 7.)

Durante la instalaciion usted necesita agregar la ruta a Instant Client, escriba esto:

	instantclient,/opt/oracle/21.x/client64/lib

Al finalizar tendra algo como esto:

Build process completed successfully
Installing '/usr/lib/php/20190902/oci8.so'
install ok: channel://pecl.php.net/oci8-2.2.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini

Paso 9

agregar la libreria OCI8 en php PHP

	sudo echo "extension=oci8.so" >> /etc/php/8.0/cli/php.ini

Reinicie Apache

	sudo systemctl restart apache2

Paso 10

agrege a mods-available

	cd /etc/php/8.0/mods-available/
	sudo nano oci.ini

Agrege esto en el archivo:

extension = oci8.so

Paso 11

Crear sym link al archivo creado

	cd /etc/php/8.0/apache2/conf.d
	sudo ln -s /etc/php/8.0/mods-available/oci.ini 20-oci.ini

Reinicie Apache

	sudo systemctl restart apache2

Paso 12 (Probar)

Verifique si OCI esta cargado en PHP

	php -i | grep oci

Dara una salida como esta:

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

Creditos

Baseado en post de Carlos Juan

https://www.cjorellana.net/2020/12/como-instalar-oci8-en-ubuntu-2004-y-php.html y eSkiSo/install_oci8_ubuntu20_php7.4.md https://gist.github.com/eSkiSo/781269c79b4dd740e90fcc059c1985ae

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment