Instalar el Oracle Instant Client nos proporciona conexión a un servidor Oracle remoto desde el servidor en Internet, disponible para todos los programas del sistema. Oracle lo distribuye en archivos comprimidos o RPMs. El procedimiento es como sigue:
Descargar los tres paquetes de Oracle Instant Client desde:
Para CPUs de 32 bits:
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html
Para CPUs de 64 bits:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
NOTA: Tiene que estar registrado para poder bajar los programas (el registro es gratis).
A continuación colocamos los enlaces directos actuales para estas descargas:
Para CPUs de 32 bits:
Instant Client Package – Basic:
oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm
Instant Client Package – SDK:
oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm
Instant Client Package – SQL*Plus:
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm
Para CPUs de 64 bits:
Instant Client Package – Basic:
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
Instant Client Package – SDK:
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
Instant Client Package – SQL*Plus:
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
Copiarlos usando SFTP o FTP en la carpeta:
/root/tmp/
Instalar los paquetes ejecutando:
rpm -ivh /root/tmp/oracle-instantclient-*
A su vez, si lo estamos haciendo en el servidor de desarrollo, podemos utilizar el webmin para instalar todos los paquetes de una manera sencilla si los hemos bajado a nuestro PC.
Crear el directorio para los archivos de configuración de oracle ejecutando:
mkdir /etc/oracle
Obtener el archivo tnsnames.ora del servidor remoto a dónde nos vamos a conectar y copiarlo a:
/etc/oracle/
Debemos asegurar que dicho archivo tenga correctamente configurado el HOST de acuerdo al dominio dinámico del sitio donde residirá Oracle.
Ahora se deben agregar las variables de entorno. Para ello se debe editar el perfil general del servidor usando:
nano /etc/profile
y agregar al final:
export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/12.1.0.2/client/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1.0.2/client/lib/;$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH
NOTA: Verificar el nombre de la versión en la ubicación de los archivos (12.1.0.2) ya que puede cambiar según la descarga.
Guardar el archivo (CTRL X, Y)
Para que las variables tomen efecto debe ejecutarse:
source /etc/profile
Luego, para verificar si tomó las variables de ambiente, se debe ejecutar:
env
Asegurar que el firewall del servidor (CSF ó APF según el que se haya instalado) tenga abierto el puerto 1521 TCP tanto de entrada como de salida.
Configurar el servicio XE-Oracle para el puerto TCP 1521 en el router del sitio remoto donde se ejecute Oracle y asegurar que tenga redireccionado todo acceso al puerto 1521 hacia la IP fija interna del servidor donde reside el Oracle (forwarding servicio 1521).
Deshabilitar todo firewall en el servidor Oracle o asegurar que permita las conexiones externas desde la dirección IP del servidor de producción desde el cual nos estaremos conectando.
Probar la conexión desde el servidor de producción ejecutando:
sqlplus usuario/password@ServidorRemoto/XE
Donde:
- usuario= Usuario configurado para la instancia Oracle
- password: Contraseña del usuario en referencia
- ServidorRemoto: dominio ó dirección IP fija del Router de la red donde está el servidor Oracle.
El resultado debe ser que muestra el prompt SQL>. Si no se muestra es poque falla la conexión.
Para que PHP funcione con conexiones a Oracle se requiere que PHP este compilado con el módulo OCI8. Para esto debemos ejecutar:
cd /usr/local/src
wget http://pecl.php.net/get/oci8-2.0.8.tgz
tar -xzf oci8-2.0.8.tgz
cd oci8-2.0.8
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/12.1.0.2/client/lib/
make
service httpd stop
make install
service httpd start
NOTA: Verificar el nombre de la versión en la ubicación de los archivos (2.0.8) ya que puede cambiar según la descarga.
Editar el php.ini con:
nano /usr/local/lib/php.ini
Agregar al final:
extension=oci8.so
Guardar y Salir.
Reiniciar apache para que tome los cambios con:
service httpd restart
crear un archivo en php y ejecutar phpinfo() dentro del mismo para verificar que tenga instalado el OCI8.
Si no aparece el soporte de oci8, copiar el oci8.so desde /usr/local/src/oci8-2.0.8/modules/oci8.so hacia /usr/local/lib/oci8.so con:
cp /usr/local/src/oci8-2.0.8/modules/oci8.so /usr/lib/
cp /usr/local/src/oci8-2.0.8/modules/oci8.so /usr/local/lib/