PHP 7.1からPHP 7.2へのアップデート以降、oci8をインストールできません。私はこのエラーがあります:
root @ 3ab6027c8d95:/ var/www#php -v
PHP警告:PHP起動:動的ライブラリ「oci8.so」をロードできません(試行:/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so(libmql1。 so:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません)、/ 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:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません))行0の不明
PHP 7.2.0(cli)(built:Dec 12 2017 05:52:58)(NTS)Copyright(c)1997-2017 The PHP Group Zend Engine v3.2.0、Copyright(c)1998-2017 Zend Zend OPcache v7.2.0を使用するテクノロジー、著作権(c)1999-2017、Zend Technologies
私はDocker環境を使用しています。このためのgithubリポジトリを作成しました。バージョンを使用すると機能します7.1 of PHP( shenron/docker-php-fpm:7.2 )。
スクリプトが次のファイルを起動しようとする理由がわかりません:/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so.so
。
私の見解では、2つの可能性があります。または、ドライバに互換性がないか、peclがoci8をインストールできません。
誰か同じ問題がありますか?
ご協力ありがとうございました。
実行中の場合ldd /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so
は、ファイルが欠落している次のようなものを提供します。
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
次のようにldconfigにフォルダーを追加できます(他のリーダー-パスは異なる場合があります)。
echo /usr/local/instantclient_12_1/ > /etc/ld.so.conf.d/Oracle-instantclient.conf
次に、ldconfig
を実行して新しい構成を読み取ります。