J'exécute un script PHP et j'obtiens cette erreur:
Avertissement PHP: Démarrage PHP: Impossible de charger la bibliothèque dynamique '/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: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type dans Inconnu à la ligne 0
Qu'est-ce que ça veut dire?
php
dynamic-library
Popolo
la source
la source
Si vous êtes sous Linux, vous pouvez trouver tous les fichiers de configuration chargés en tapant ceci dans le shell:
MISE À JOUR: Comme mentionné dans les commentaires, cela peut être encore plus précis:
la source
php -i | grep ini
devrait fonctionner correctement aussi (pas besoin d'imprimer le phpinfo lorsque vous avez un argument de commande pour cela)phpinfo()
n'ai répertorié aucun fichier ini problématique.php -i | grep ini
comme suggéré par YorickH a fonctionné pour moi. Cela listera les bibliothèques chargées pour la CLI et comme il s'est avéré que le fichier ini qui a provoqué l'avertissement se trouvait dans le répertoire CLI dans mon cas.php --ini
de lister tous les fichiers iniSi vous voulez simplement faire disparaître l'erreur et que vous n'avez pas besoin de l'extension, alors commentez la ligne
php.ini
. Mais si vous souhaitez réellement résoudre le problème, voici quelques informations supplémentaires.Il existe différentes causes à cela en fonction du module exact, mais il existe également des directives générales.
phpinfo()
et recherchezextension_dir
sous laCore
section. C'est là que vos modules doivent être situés.Installation sur * nix (PEAR)
Installation d'extensions sous Windows
la source
perl install <module>
Can't open perl script "install": File or Directory not found
docker-php-ext-install <package>
phpStom avec XAMPP
TL; DR Sauf pour vérifier que les fichiers existent, vous devrez peut-être ajouter la lettre de lecteur à certains enregistrements de votre fichier php.ini
J'ai soudainement commencé à avoir un problème avec phpStorm 7 pour déboguer php avec xampp et xdebug. En essayant de définir l'interperter intellij sur xampps php, j'ai reçu de nombreux avertissements comme celui de la question, par exemple:
Pour une raison quelconque, j'ai dû ajouter ma lettre de lecteur aux enregistrements d'extension_dir et de navigation dans le fichier php.ini:
à
la source
php -r "echo php_ini_loaded_file();"
S'affichera dans le fichier chargé ini actuel de la CLI, recherchez votre extension, le chemin d'accès est incorrect.
la source
Chargement de .dll sous Linux
J'ai rencontré ce message d'avertissement alors que j'essayais d'installer une extension php via le fichier php.ini ;
jusqu'à ce que je comprenne que vous ne pouvez pas charger les extensions .dll sous Linux,
mais vous devez commenter les extensions que vous souhaitez importer
;extension= ... .dll
et l' installer correctement viasudo apt-get install php-...
remarque :
...
est le nom de l'extension que vous souhaitez activer.la source
sudo apt install php-pgsql
spécifiquesudo apt install php7.1-pgsql
à la version php (changer la version 7.1 de votre version php)Notez que vous pouvez également obtenir cette erreur si votre bibliothèque PHP n'a pas l'autorisation d'ouverture de répertoire "autre". Dans mon cas particulier, j'ai remarqué cela lors de l'utilisation
php -l
de la vérification de la syntaxe d'un script dans mon éditeur de texte. Cela signifiait que puisque mon compte s'appelait "volomike", ce compte n'avait pas l'autorisation d'exécuter les bibliothèques sur lesquelles laphp
commande reposait.Par exemple, sur Ubuntu 14.04, j'ai installé PHP5 automatiquement dans le chemin
/usr/lib/php5/20121212+lfs
. Cependant, comme je travaillais en C ++ pour créer des objets partagés, j'ai dérangé les autorisations de répertoire et foiré les choses de telle sorte que les comptes non root n'avaient pas les autorisations d'exécution de répertoire (ouverture de répertoire) pour afficher/usr/lib/php5/20121212+lfs
. J'ai donc tapé la commande suivante pour corriger ce problème:sudo chmod o+x /usr/lib/php5/20121212+lfs
.Maintenant, quand je le fais en
php -l example.php
tant qu'utilisateur non root, cela ne me donne plus ce problème "Impossible de charger la bibliothèque dynamique".la source
J'ai eu le même problème sur XAMPP pour Windows lorsque j'essaye d'installer composer. J'ai fait une
php -v
erreur de lancement de php:Il m'a fallu un certain temps avant de réaliser que je devais configurer mon XAMPP. Alors je cours
setup_xampp.bat
et php retourne au travail comme un charme.la source
J'ai eu le même problème sur XAMPP pour Windows10 lorsque j'essaye d'installer composer.
Suivez ensuite ces étapes
la source
J'ai eu cette erreur sur un certain nombre de modules lorsque j'exécutais différentes versions de PHP côte à côte sur mon serveur. Pour régler ce problème, j'avais besoin d'installer les packages qu'il ne pouvait pas trouver pour cette version PHP spécifique. Donc, par exemple, si je voyais: -
J'installerais spécifiquement la bibliothèque pour la version PHP: -
Et puis redémarrez Apache. J'ai corrigé ça pour moi. Vous pouvez vérifier votre version comme ceci: -
la source
Après
Windows 10 XAMPP
maintenant, j'ai installéLAMPP (XAMPP)
sur Ubuntu.Windows XAMPP
J'avais beaucoup moins à configurer que MAC (iOS) mais maintenant avec Linux Ubuntu j'en avais un peu plus car il y en a plus sous Linux (une bonne chose).J'ai confondu et activé
mysqli.dll
(et mysql.dll: effacez "#" dans/etc/php/7.2/cli/php.ini
J'ai commencé à recevoir le
PHP Warning: PHP Startup: Unable to load dynamic library
message lié àdll
. J'ai commentémysql(and i).dll
dans le même fichier mais le message n'a pas disparu jusqu'à ce que j'aie commenté "" dans/opt/lampp/etc/php.ini
.On dirait XAMPP lit le
php.ini
fichier depuis/etc/php/7.2/cli
et fait modificationphp.ini
de/opt/lampp/etc
. (; extension = php_pdo_mysql.dll après ";" redémarré Apache et plus de message.la source
Dans mon cas, j'ai eu cette erreur parce que j'ai téléchargé une version thread-safe de la dll (infixée avec
-ts-
), mais mon installation php de php était non thread-safe (infixée avec-nts-
). Le téléchargement de la bonne version de la dll, correspondant exactement à ma version d'installation php, a résolu le problème.la source
thread-safety
activé / désactivé. Eu la même erreur à l'envers, téléchargé nts lorsqu'il est configuré pour ts.J'ai rencontré une erreur similaire. L'erreur que j'ai faite a été d'utiliser le nom du "contrôleur" comme "Pages" au lieu de "pages" dans mon URL.
la source
Sous Windows, il peut s'agir d'un chemin erroné dans "Variables d'environnement système". "Chemin" vers le répertoire php.exe doit être le bon.
la source
Recherchez l'extension exacte de votre version PHP ici
la source
Ce que j'ai fait était;
1 - Je découvre d'abord quelle version de PHP j'utilise via la fonction phpinfo ()
2 - De là, vous trouverez l'emplacement de votre fichier de configuration (php.ini)
3 - Ouvrez ce fichier
4 - Commentez la ligne similaire à l'image ci-dessous
la source
«C: /PHP/5.2.13/ext \ php_mcrypt1.dll»
Je dirais qu'il y a une faute de frappe sur votre php.ini (le 1 supplémentaire). Peut-être que vous chargez un php.ini différent de ce que vous attendez (voir la sortie de php.ini pour vous en assurer).
À part cela, assurez-vous que php_mcrypt.dll et PHP:
Ont été liés à la même bibliothèque d'exécution VC (généralement msvcrt.dll pour VC6 ou msvcrt90.dll pour VC9) - utilisez par exemple le navigateur de dépendances pour cela Les deux versions de débogage ou les deux versions de version Les deux ont ZTS activé ou ZTS désactivé Pour les bibliothèques qui dépendent de d'autres bibliothèques (DLL), assurez-vous qu'elles sont disponibles (par exemple dans le même répertoire que l'extension) PHP devrait vous donner des erreurs de signification si l'une des trois premières conditions ci-dessus n'est pas remplie, mais je les ai quand même écrites parce que je ne suis pas sûr pour PHP 5.2.
la source
J'ai eu un problème similaire et voici quelques-uns de tous les avertissements / erreurs.
Si vous consultez les avertissements, vous verrez qu'il recherche des extensions php dans le
C:\php\ext\
fichier, j'ai téléchargé php dans leC:\
répertoire et cela a résolu les problèmes.la source