Depuis la mise à jour de PHP 7.1 vers PHP 7.2, je ne peux pas installer oci8. J'ai cette erreur:
root @ 3ab6027c8d95:/var/www # php -v
Avertissement PHP: PHP Démarrage: impossible de charger la bibliothèque dynamique 'oci8.so' (essayé: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so (libmql1. donc: ne peut pas ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so (/ usr/local/lib/php /extensions/no-debug-non-zts-20170718/oci8.so.so: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type)) dans Inconnu sur la ligne 0
PHP 7.2.0 (cli) (build: 12 décembre 2017 05:52:58) (NTS) Copyright (c) 1997-2017 Le groupe PHP Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies avec Zend OPcache v7.2.0, Copyright (c) 1999-2017, par Zend Technologies
J'utilise l'environnement Docker, j'ai créé un dépôt github pour cela, cela fonctionne si j'utilise la version 7.1 de PHP (- shenron/docker-php-fpm: 7.2 ).
Je ne comprends pas pourquoi le script essaie de lancer ce fichier: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so
.
À mon point de vue, il y a deux possibilités; ou le pilote n'est pas compatible, ou pecl ne peut pas aujourd'hui installer oci8.
Quelqu'un at-il le même problème?
Merci de votre aide.
Si vous exécutez ldd /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so
vous donne quelque chose comme ça, avec des fichiers manquants:
ldd /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so
linux-vdso.so.1 (0x00007ffc8bfe7000)
libclntsh.so.12.1 => /usr/local/instantclient/libclntsh.so.12.1 (0x00007fb9919e0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb991641000)
libmql1.so => not found
libipc1.so => not found
libnnz12.so => not found
libons.so => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb99143d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb991139000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb990f1c000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fb990d04000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb990afc000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb994bc8000)
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007fb9908fa000)
libclntshcore.so.12.1 => not found
Vous pouvez ajouter le dossier à votre ldconfig comme ceci (autres lecteurs - votre chemin peut varier):
echo /usr/local/instantclient_12_1/ > /etc/ld.so.conf.d/Oracle-instantclient.conf
Exécutez ensuite ldconfig
pour lire la nouvelle configuration.