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.
- Abra
phpinfo()
y busqueextension_dir
en la secciónCore
. Aquí es donde deberían ubicarse sus módulos.
Por ejemplo,
/usr/lib/php/modules
para Unix / Linux.
- Si el archivo existe de hecho, asegúrese de que los permisos sean adecuados.
- 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.
- 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. - Corrija la ruta al archivo o comente la línea correspondiente.