*Requisitos previos:
Apache2 y PHP
Oracle (yo use el XE)
Bien en vdd que esto se me complico bastante, pero enseguida describiré el proceso más sencillo, para lograr este objetivo:
1.-Descargar las librerías necesarias:
apt-get install php5-dev
apt-get install php-pear
apt-get install build-essential
2.-Descargar OCI8
En otros blogs despuès de estos pasos te indican que descargues la última versión de SDK e Instant Client de Oracle, para posteriormente compilarlos con OCI8(que permite la conexiòn de oracle y php, pero esto es algo confuso, es màs fácil usar la librería pecl para hacerlo:
pecl install oci8
En seguida introduciomos nuestro $ORACLE_HOME , y se vera en la pantalla toda la instalación de OCI8
3.-Agregar oci8.so a php.ini
Ya sea usando echo
echo "extension=oci8.so" >> /etc/php5/cli/php.ini
echo "extension=oci8.so" >> /etc/php5/apache2/php.ini
o también con:
vi /etc/php5/cli/php.ini y agregar la linea extension=oci8.so
vi /etc/php5/apache2/php.ini y agregar la linea extension=oci8.so
4.-Reiniciar Apache
sudo /etc/init.d/apache2 restart
5.-Hacer prueba
--
PutEnv("ORACLE_SID=XE");
PutEnv("ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server");
PutEnv("LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib");
$ora_conn = oci_connect('scott','lennon','database_name');
$query = "SELECT deptno FROM emp";
$stid = OCIParse($ora_conn, $query);
if (oci_execute($stid))
{
while($res=oci_fetch_array($stid,OCI_NUM + OCI_RETURN_NULLS))
{
echo $res[0]."\n";
}
}
else {
$e = oci_error();
echo "error".$e["message"] ;
}
?>
y listo! en el navegador debería verse el resultado.
ALGUNAS CONSIDERACIONES:
Puedes verificar si funciona tu ejemplo.php en terminal usando :
php ejemplo.php
si funciona y no lo hace en el navegador, se debe a que debes de "setear" las variables $ORACLE_HOME , $LD_LIBRARY_PATH y $ORACLE_SID correctamente al inicio de tu archivo.
Si no quieres hacerlo en cada archivo que hagas, puedes exportar las variables en la configuración del Apache
vi /etc/init.d/apache2
y agregar las líneas
export ORACLE_SID=XE
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib
muchas gracias por esta explicacion, me costo un egg, haciendo mil cosas, pero al fin pude. solo aclarar que $ORACLE_HOME es esta direccion(si se tiene instalado oracle-xe-universal):
ResponderEliminar/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
Amigooooooo,,
ResponderEliminarEstoy como DAveG.
TOTALMENTE AGRADECIDO PORQUE LLEVABA MUCHAS HORAS BUSCANDO UNA SOLUCIÓN!!!!
Gracias por tu ayuda amigo..!!! aunque uso xampp deplano tendre que cambiar lo del path en cada archivo....Igual Gracias de nuevo.
ResponderEliminar