short_open_tag off habilitar etiquetas ejemplos cortas bootstrap php dynamic-library

php - habilitar - short_open_tag off



Advertencia de PHP: Inicio de PHP: no se puede cargar la biblioteca dinĂ¡mica (8)

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

Ejecuto un script PHP y obtengo este error:

Advertencia de PHP: Inicio de PHP: no se puede cargar la biblioteca dinámica ''/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: no se puede abrir el archivo de objeto compartido: Ningún archivo o directorio en Desconocido en la línea 0

Qué significa eso?


Si está en Linux, puede encontrar todos los archivos de configuración cargados tipeando esto en shell:

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

ACTUALIZACIÓN: como se menciona en los comentarios, esto puede ser aún más preciso:

php -i | grep ini


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

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

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

Por ejemplo, /usr/lib/php/modules para Unix / Linux.

  1. Si el archivo existe de hecho, asegúrese de que los permisos sean adecuados.
  2. Si el archivo no existe, use los recursos a continuación para instalarlo.

Instalación en * nix (PEAR)
Instalación de extensiones en Windows


Tenga en cuenta que también puede obtener este error si su biblioteca PHP no tiene el permiso de apertura de "otro" directorio. En mi caso particular, noté que al usar php -l en la sintaxis, verificaba un script en mi editor de texto. Esto significaba que, dado que 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 ejecutable (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 el problema de "No se ha podido cargar la biblioteca dinámica".


Tuve el mismo problema en XAMPP para Windows cuando intento instalar el compositor. Hice php -v y php throwing error:

No se ha podido cargar la biblioteca dinámica ''/xampp/php/ext/php_bz2.dll''

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


php -r "echo php_ini_loaded_file();"

Se mostrará en la CLI actual en el archivo cargado, busque su extensión, la ruta a la misma es incorrecta.


phpStom con XAMPP

TL; DR Excepto para verificar que los archivos existen, es posible que deba agregar la letra de la unidad a algunos registros en su archivo php.ini

De repente, comencé a tener un problema al usar phpStorm 7 para depurar php con xampp y xdebug. Al intentar configurar intellij interperter para que sea xampps php, recibí muchas de las advertencias como la de la pregunta, por ejemplo:

No se ha podido cargar la biblioteca dinámica ''/xampp/php/ext/php_bz2.dll''

Por alguna razón, tuve que agregar 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"


Significa que hay una extension=... o zend_extension=... línea en uno de tus archivos de configuración php (php.ini, u otro cercano) que está intentando cargar esa extensión: ixed.5.2.lin

Lamentablemente, ese archivo o ruta de acceso no existe o los permisos son incorrectos.

  1. Intente buscar en los archivos .ini que están cargados por PHP ( phpinfo() puede indicar cuáles son). Uno de ellos debe intentar cargar esa extensión.
  2. Corrija la ruta al archivo o comente la línea correspondiente.