2011-03-12 19 views
57

Tengo un script PHP y obtiene este error:PHP Warning: PHP de inicio: No se puede cargar la biblioteca dinámica

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin: cannot open shared object file: No such file or directory in Unknown on line 0

¿Qué significa eso?

Respuesta

37

Significa que hay una línea extension=... o zend_extension=... en uno de los archivos de configuración de php (php.ini, u otra cerca de ella) que está tratando de cargar esa extensión: ixed.5.2.lin

Desafortunadamente ese archivo o la ruta no existe o los permisos son incorrectos.

  1. intentar buscar en los archivos .ini que se cargan por PHP (phpinfo() puede indicar cuáles son) - uno de ellos debe tratar de cargar esa extensión.
  2. Corrija la ruta al archivo o comente la línea correspondiente.
+6

Así que estoy recibiendo este error también, pero mi sitio aún funciona, esa es la parte más extraña. Para este tipo de error, supongo que php se bloqueará desde el principio. En cambio, obtengo mi página, pero mi registrador está registrando este error. ¿Extraño eh? –

+0

Gracias. Me deshice del error gracias a 'phpinfo()'. – Marwelln

+1

En php.ini (/etc/php.ini en mi caso) comenté la línea _extension = php_pdo_mysql.dll_ y reinicié Apache, que resolvió mi problema y eliminó las advertencias. (Mac, Maverick) – ola

28

Si estás en Linux, usted puede encontrar todos los archivos de configuración cargados escribiendo esto en la shell:

php -r "print phpinfo();" | grep ".ini" 

ACTUALIZACIÓN: Como se mencionó en los comentarios, esto puede ser aún más preciso:

php -i | grep ini 
+3

'php -i | grep ini' debería funcionar bien también (no es necesario imprimir el phpinfo cuando tienes un argumento de comando para eso) – YorickH

+1

Tuve un error similar pero 'phpinfo()' no enumeró ningún archivo ini problemático. ** 'php -i | grep ini' ** como lo sugiere [YorickH] (http://stackoverflow.com/users/1026819/yorickh) funcionó para mí.Esto mostrará una lista de las bibliotecas cargadas para la CLI y, como resultó, el archivo ini que causó la advertencia estaba en el directorio CLI en mi caso. – DaneeL

+3

¿qué pasa con 'php --ini' para listar todos los archivos ini – OzzyCzech

10

Si solo quiere que desaparezca el error, y no necesita la extensión, no dude en comentar la línea en php.ini. Pero si realmente quiere solucionar el problema aquí hay alguna información adicional.

Existen varias causas para esto basadas en el módulo exacto, pero también hay algunas pautas generales.

  1. abierto phpinfo() y busque en la sección extension_dirCore. Aquí es donde deberían ubicarse sus módulos.

For instance, /usr/lib/php/modules for Unix/Linux.

  1. Si el archivo existe en realidad, asegúrese de que los permisos son adecuados.
  2. Si el archivo no existe, utilice los recursos a continuación para instalarlo.

Installation on *nix (PEAR)
Installation of extensions on Windows

+0

Estoy tratando de instalar a través de este módulo pera pero cuando ejecuto' perl install 'recibí' No se puede abrir el script de Perl "install": Archivo o Directorio no encontrado' – Fabiotk

+0

Es difícil saber el problema, verifique sus rutas y permisos. – EternalHour

7

phpStom con XAMPP

TL; DR excepción de comprobar la existencia de los archivos, puede que tenga que añadir la letra de unidad a algunos registros en su php. archivo ini

De repente comencé a tener un problema al usar phpStorm 7 para depurar php con x ampp y xdebug.Cuando se intenta establecer interperter intellij ser xampps php Tengo un montón de las advertencias como la de la pregunta, por ejemplo:

Unable to load dynamic library '/xampp/php/ext/php_bz2.dll'

Por alguna razón tuve que añadir mi letra de unidad a los registros de extension_dir y browscap en el archivo php.ini:

extension_dir = "\xampp\php\ext" 
browscap = "\xampp\php\extras\browscap.ini" 

a

extension_dir = "e:\xampp\php\ext" 
browscap = "e:\xampp\php\extras\browscap.ini" 
+0

En Windows ¿verdad? –

+1

Sí, tiene razón – Technotronic

+1

Esto me lo arregló en Windows 10. –

2

yo tenía el mismo problema en XAMPP para Windows cuando intento instalar el compositor. hice php -v y php error de tiro:

Unable to load dynamic library '/xampp/php/ext/php_bz2.dll'

Me tomó un tiempo hasta que me di cuenta de que tengo que configurar mi XAMPP. Entonces ejecuto setup_xampp.bat y php return funciona como un amuleto.

2

Tenga en cuenta que también puede obtener este error si su biblioteca PHP no tiene el "otro" permiso de apertura de directorio. En mi caso particular, me di cuenta de esto cuando uso php -l para verificar la sintaxis de un script en mi editor de texto. Esto significaba que desde mi cuenta se llamaba "volomike", esa cuenta no tenía permiso para ejecutar las bibliotecas en las que se basaba el comando php.

Por ejemplo, en Ubuntu 14.04, tuve PHP5 instalado automáticamente en la ruta /usr/lib/php5/20121212+lfs. Sin embargo, debido a que estaba trabajando en C++ para construir algunos objetos compartidos, me equivoqué con los permisos del directorio y arruiné las cosas para que las cuentas no root no tuvieran los permisos de directorio ejecutado (directorio abierto) para ver /usr/lib/php5/20121212+lfs. Entonces, escribí el siguiente comando para rectificar ese problema:

sudo chmod o+x /usr/lib/php5/20121212+lfs.

Ahora cuando hago php -l example.php como un usuario no root, nunca más me da este problema de "No se ha podido cargar la biblioteca dinámica".

+0

Esta fue la solución exacta para mí, utilizando Ubuntu 16.10. Asegúrese de cambiar la extensión "extensión" a .so cuando use Linux (la configuración estándar me daba .dll) – mroesler

+0

Estoy usando linux mint 18 y esto sigue siendo válido – Dika

0

Me encontré con un error similar. El error que cometí fue utilizar el nombre de "controlador" como "Páginas" en lugar de "páginas" en mi url.

+0

Dudo que esto tenga algo que ver con el problema. . – Dennis98

2

php -r "echo php_ini_loaded_file();"

mostrará en el archivo cargado ini CLI actual, buscar allí por su extensión, ruta al mismo es incorrecta.

Cuestiones relacionadas