Call to undefined function oci_connect() - Solución

 Hola Amig@s,

Si por un casual tienen problemas para acceder a una bbdd Oracle desde PHP, donde el php muestra el siguiente error:

Call to undefined function oci_connect() ...

Aparte de lo tipo de comprobar que el cliente de apache sea de 32bits, el cliente de oracle sea de 32bits y sea el primero en el path.

También puede ser que tengamos mal configurado el path de la ruta de los módulos de PHP. Esto podemos saberlo con el log del apache. Cuando el php le dice al apache que cargue unos modulos y estos no son accesibles, veran el siguiente error en el log errors.log de apache, en el directorio log:

PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_oci8_12c.dll' - No se puede encontrar el m\xef\xbf\xbddulo especificado.\r\n in Unknown on line 0

PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_pdo_oci.dll' - No se puede encontrar el m\xef\xbf\xbddulo especificado.\r\n in Unknown on line 0

Como bien dice, el apache es incapaz de encontrar el fichero en la ruta indicada. Eso es por que la variable de configuración extension_dir en el php.ini está mal.

Tendrán que editar el php.ini y buscar la variable extension_dir.

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "c:\php7\ext"

Si está comentada descomentarla y ponerle la ruta de vuestro PHP, por ejemplo si tenemos el php en c:\php7 la variable extension_dir debería quedar así:

extension_dir = "c:\php7\ext"

En windows la definición de los directorios dan igual "c:\php7\ext" que "c:/php7/ext", en linux no.

Espero que les resulte útil.
Salu2.
Edu.
Share on Google Plus
    Blogger Comment

0 comentarios: